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

چرا مهم است

اگر از Node.js 22 استفاده می‌کنی، این نسخه به اصلاح مشکلات امنیتی اختصاص دارد. بخشی از اصلاحات و شدت High دارند؛ پس موضوع این انتشار، رفع آسیب‌پذیری است، نه معرفی قابلیت تازه.

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

واسطی که درخواست را از یک طرف دریافت می‌کند و به مقصد دیگر می‌فرستد.

بیشتر: Proxy

HTTP/2

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

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

TLS

پروتکلی برای رمزنگاری ارتباط و بررسی هویت طرف‌های اتصال با استفاده از certificate.

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

stream

جریانی از داده که به‌تدریج دریافت یا ارسال می‌شود؛ در HTTP/2 هر تبادل درخواست و پاسخ در یک stream انجام می‌شود.

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

Node.js نسخهٔ 22.23.5 را از شاخهٔ LTS با نام Jod در ۱۱ نوامبر ۲۰۲۶ منتشر کرد. این نسخه یک انتشار امنیتی است و اصلاحاتی با شدت High،؜ Medium و Low در بخش‌های http2،؜ tls،؜ http،؜ https،؜ permission و zlib دارد.

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

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

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

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

در کنار این اصلاحات، dependency‌های llhttp و sqlite به‌ترتیب به نسخه‌های 9.4.4 و 3.54.1 به‌روزرسانی شده‌اند.

نکته کلیدی

نسخهٔ 22.23.5 را به‌عنوان انتشار امنیتی شاخهٔ 22 به خاطر بسپار. هنگام مرور تغییرات، فقط به موارد High توجه نکن؛ اصلاحات این نسخه بررسی مجوز دسترسی و حذف اطلاعات ورود از پیام خطا را هم پوشش می‌دهند.

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