تیم Next.js دو آسیبپذیری RCE بحرانی را در نسخهی 16.4.1 بست
حدود ۳ دقیقه مطالعه
تیم Next.js روز ۱۴ اکتبر ۲۰۲۶ نسخهی 16.4.1 و 15.5.28 را منتشر کرد تا دو آسیبپذیری critical از نوع اجرای کد از راه دور (RCE) بدون نیاز به احراز هویت و یک آسیبپذیری high از نوع منع سرویس (DoS) را برطرف کند. یک روز بعد هم نسخهی 16.4.2 برای رفع چند باگ Turbopack آمد.
چه آسیبپذیریهایی رفع شد؟
مورد اول در Image Optimization API است و وقتی فایل SVG پردازش میشود فعال میشود. طبق advisory رسمی (GHSA-2464-fhr4-w9xw) یک باگ مربوط به حافظه در یک کتابخانهی upstream میتواند به RCE برسد، آن هم وقتی Next.js روی لینوکس مبتنی بر glibc اجرا شود. نسخههای 10.0.0 تا 15.5.27 و 16.0.0 تا 16.4.0 آسیبپذیر بودند و رفع آن در 15.5.28 و 16.4.1 آمده. به نوشتهی سایت The Hacker News مشکل از librsvg است که از راه sharp در دسترس Next.js قرار میگیرد و رفعش بالا بردن sharp به 0.35.5 است؛ همین منبع میگوید Next.js بهصورت پیشفرض SVG را بهینه نمیکند. شناسهی CVE-2026-96889 را فقط در منابع ثانویه دیدم و در صفحهی advisory رسمی چیزی دربارهاش پیدا نکردم.
مورد دوم (GHSA-673q-mjm6-r5xr) فقط نسخههای 16.0.0 تا 16.4.0 را درگیر میکند و فقط در 16.4.1 رفع شده. شرطش این است که اپ از App Router با Cache Components استفاده کند و یک تابع use cache داشته باشد که چند typed array برگرداند. امتیاز CVSS 4.0 این مورد طبق advisory برابر 9.5 است و راهحل موقتی ندارد؛ advisory میگوید حتی اگر چنین تابعی نداری هم باید فوراً آپگرید کنی.
مورد سوم (GHSA-p3m5-59mp-jv5r) از نوع high با امتیاز 8.2 است. درخواستهای دستکاریشده به اپهای App Router که حداقل یک Server Action دارند میتوانند CPU را درگیر کنند و پردازش بقیهی درخواستها در همان process را بلاک کنند. نسخههای 13.0.0 تا 15.5.27 و 16.0.0 تا 16.4.0 آسیبپذیرند. اپهایی که Pages Router دارند یا Server Action ندارند در معرض این مشکل نیستند و راهی جز آپگرید وجود ندارد.
آپگرید و نسخهی 16.4.2
برای آپگرید، بسته به خط نسخهای که استفاده میکنی یکی از این دو دستور کافی است و بعد از آن باید دوباره build و deploy کنی:
npm install next@16.4.1
npm install next@15.5.28
نسخهی 16.4.2 روز ۱۵ اکتبر منتشر شد و در فهرست تغییرات رسمیاش مورد امنیتی نیست. این نسخه چند اصلاح Turbopack را backport میکند: زنجیرهی module graph در حالت dev برای Pages Router، سازگاری snapshot در turbo-tasks، دو مسیر GC که لبههای وابستگی نیمهپاکشده باقی میگذاشتند، برخورد chunk-list در dynamic import های lazy و نادیده گرفتن خطاهای realpath هنگام module resolution. اصلاح پنجرهی نمایش next-code-frame روی مرز کاراکترها هم در همین نسخه آمده است.
منابع:
