در فریمورک Fastify (یک فریمورک وب برای Node.js)، یک آسیبپذیری امنیتی با شناسه CVE-2026-120216 شناسایی شده است که میتواند منجر به توقف کامل سرویس (DoS) شود.
جزئیات فنی
این مشکل در نسخههای 5.8.0 تا 5.12.7 رخ میدهد. زمانی که سرور با یک مقدار غیرصفر برای handlerTimeout پیکربندی شده باشد و یک مسیر (Route) پاسخی به صورت Streaming برگرداند، اگر درخواستی پس از ارسال Headerها، بیش از زمان تعیین شده در Timeout باز بماند، باعث کرش کردن سرور میشود.
علت وقوع خطا
زمانی که تایماوت فعال میشود، Fastify تلاش میکند یک پاسخ خطای جدید را روی پاسخی ارسال کند که پیش از این شروع شده است. این اقدام منجر به ایجاد خطای ERR_HTTP_HEADERS_SENT میشود که به دلیل عدم مدیریت (Uncaught)، باعث پایان یافتن پردازش Node.js و قطع شدن تمامی درخواستهای در جریان (In-flight requests) میگردد.
توصیهها
- بررسی نسخه مورد استفاده از Fastify در محیطهای عملیاتی.
- بهروزرسانی فریمورک به آخرین نسخه منتشر شده برای رفع این باگ.
- بازبینی پیکربندیهای
handlerTimeoutدر مسیرهایی که از پاسخهای استریمینگ استفاده میکنند.