Node.js 26.13.1؛ انتشار امنیتی با اصلاحات HTTP/2 و TLS

چرا مهم است

اگر با Node.js کار می‌کنی، این انتشار را به‌عنوان یک به‌روزرسانی امنیتی بشناس. اصلاحات آن چند مشکل با شدت بالا را پوشش می‌دهد، از جمله سرور که از راه دور قابل تحریک بوده است.

قبل از خواندن، این‌ها را بدان۵ مفهوم
crash

توقف غیرمنتظره اجرای برنامه بر اثر خطایی که برنامه نمی‌تواند آن را مدیریت کند.

در حال نگارش: crash

dependency

یک package یا بخش نرم‌افزاری که نرم‌افزار دیگری برای ساخت یا اجرا به آن وابسته است.

در حال نگارش: dependency

TLS

پروتکلی برای محافظت از ارتباط شبکه با رمزنگاری داده و بررسی هویت طرف ارتباط.

در حال نگارش: TLS

HTTP/2

نسخه‌ای از پروتکل HTTP که امکان تبادل چند stream روی یک اتصال را فراهم می‌کند.

در حال نگارش: HTTP/2

permission

مجوزی که مشخص می‌کند یک برنامه اجازه دسترسی به کدام منابع یا انجام کدام عملیات را دارد.

در حال نگارش: permission

Node.js نسخه 26.13.1 از شاخه LTS با نام Lithium را در ۱۱ نوامبر ۲۰۲۶ منتشر کرد. این انتشار امنیتی شامل اصلاحاتی با شدت بالا، متوسط و پایین است؛ بخش مهمی از تغییرات به HTTP/2 و TLS مربوط می‌شود.

در HTTP/2،؜ اصلاحات با شدت بالا شامل آزادکردن header‌ها هنگام حذف stream،؜ تشخیص stream‌های رهاشده توسط nghttp2،؜ نگه‌داشتن buffer‌ها تا پایان نوشتن روی socket و حفظ stream‌ها هنگام نوشتن‌های در انتظار است. همچنین در بخش مشترک tls و http،؜ از اجرای تودرتوی parser بر اثر نوشتن داده خالی جلوگیری شده است.

در TLS،؜ مشکل crash سرور که از راه دور قابل تحریک بود، با شناسه CVE-2026-126051 و شدت بالا برطرف شده است. سه اصلاح دیگر با شناسه CVE-2026-123872 ثبت شده‌اند: غیرفعال‌کردن session resumption برای mTLS بدون session id context،؜ جلوگیری از تغییر SNI هنگام renegotiation یا HRR و جلوگیری از تغییر SNI هنگام TLS resumption.

اصلاحات با شدت متوسط در HTTP/2 شامل جلوگیری از سرریز buffer‌های ALTSVC،؜ محاسبه DATA ورودی نگه‌داشته‌شده توسط stream‌ها در maxSessionMemory و بررسی درخواست نوشتن null برای stream لغوشده است. در TLS نیز اعمال CA مربوط به SNI context‌های بدون certificate اصلاح شده است. بخش http حالا اطلاعات احراز هویت Proxy را در خطاهای مربوط به URL نامعتبر آن پنهان می‌کند؛ در https هم کلیدهای سیاست TLS مربوط به Agent از یکدیگر جدا شده‌اند.

در سطح شدت پایین، دو اصلاح به permission مربوط‌اند: جلوگیری از افشای موارد زیرمجموعه‌ای که دسترسی به آن‌ها رد شده، هنگام استفاده از fs.watch به‌صورت recursive،؜ و بررسی مقصد heap snapshot. در zlib نیز رسیدگی به callback مربوط به params پس از destroy اصلاح شده است.

این انتشار همچنین brotli را به 1.2.1،؜ llhttp را به 9.4.4،؜ sqlite را به 3.54.1 و undici را به 8.12.4 به‌روزرسانی می‌کند. در فهرست commit‌ها، اصلاح ساخت با نسخه‌های قدیمی‌تر OpenSSL 3.0 و رعایت سطح API تنظیم‌شده OpenSSL نیز آمده است.

نکته کلیدی

هنگام بررسی این نسخه، فقط به تغییر ‌ها توجه نکن؛ اصلاحات هم بخش مهمی از آن هستند. به خاطر بسپار که چند اصلاح متفاوت درباره ادامه اتصال و تغییر نام سرور، زیر یک شناسه امنیتی مشترک آمده‌اند.

خواندن مقاله اصلی (در زبانه‌ی جدید باز می‌شود)
برچسب‌ها (۴)