۱۴۰۵ مهر ۶, دوشنبه
دلار آمریکا۲۴۳٬۴۱۵▲ ۳٫۵۸٪یورو۲۷۷٬۰۰۰▲ ۳٫۳۹٪درهم امارات۶۶٬۳۰۵▲ ۳٫۶۱٪سکه امامی۲۴۴٬۵۰۵٬۰۰۰▲ ۱٫۶۶٪طلای ۱۸ عیار (گرم)۲۴٬۳۱۹٬۰۰۰▲ ۱٫۷۵٪انس طلا۴٬۱۵۰ $▼ ۳٫۲۶٪تتر۲۴۴٬۴۵۶▲ ۳٫۲۴٪بیت‌کوین۸۲٬۶۵۳ $▼ ۲٫۴۱٪اتریوم۲٬۶۴۰ $▼ ۱٫۸۹٪سولانا۱۱۷٫۸۴ $▼ ۴٫۳۴٪اپل۳۴۱٫۰۷ $▲ ۱٫۵۳٪انویدیا۲۲۵٫۰۷ $▲ ۰٫۲۲٪مایکروسافت۵۱۶٫۱۷ $▲ ۳٫۶۶٪آلفابت (گوگل)۳۴۳٫۹۲ $▲ ۰٫۴۶٪تسلا۳۷۲٫۱۱ $▼ ۱٫۵۴٪شاخص نزدک۲۷٬۰۶۹ $▲ ۰٫۴۸٪
نرخ ارز

به‌روزرسانی امنیتی Next.js؛ نسخه 16.3.6 را همین حالا نصب کنید

به‌روزرسانی امنیتی Next.js برای یک آسیب‌پذیری بحرانی اجرای کد از راه دور در ImageResponse منتشر شد و ۹ آسیب‌پذیری دیگر ۳۰ سپتامبر وصله می‌شوند.

توسعه وب۳ دقیقه مطالعه
به‌روزرسانی امنیتی Next.js؛ نسخه 16.3.6 را همین حالا نصب کنید
فهرست مطالب
  1. ماجرای آسیب‌پذیری بحرانی چیست؟
  2. به‌روزرسانی امنیتی Next.js روی کدام نسخه‌ها اثر دارد؟
  3. همین حالا چه کار کنیم؟
  4. ۳۰ سپتامبر: ۹ وصله امنیتی دیگر
  5. جمع‌بندی برای تیم‌های فرانت‌اند

به‌روزرسانی امنیتی Next.js این بار فوری است. تیم Next.js روز ۲۲ سپتامبر ۲۰۲۶ (۳۱ شهریور ۱۴۰۵) نسخه‌های 16.3.6 و 15.5.26 را خارج از برنامه معمول منتشر کرد تا یک آسیب‌پذیری با شدت بحرانی را ببندد؛ مشکلی که می‌تواند به اجرای کد از راه دور (RCE) منجر شود. اگر اپلیکیشن شما روی Next.js 16.2 یا بالاتر است، ارتقا را عقب نیندازید.

و این پایان ماجرا نیست: تیم Next.js برای ۳۰ سپتامبر یک انتشار امنیتی زمان‌بندی‌شده با ۹ وصله دیگر اعلام کرده است.

ماجرای آسیب‌پذیری بحرانی چیست؟

طبق اطلاعیه رسمی، مشکل در پیاده‌سازی Node.js کلاس ImageResponse در ماژول next/og است؛ همان ابزاری که بسیاری از سایت‌ها برای ساخت خودکار تصاویر Open Graph از آن استفاده می‌کنند. ImageResponse برای تبدیل JSX به تصویر از کتابخانه Satori کمک می‌گیرد که خروجی SVG تولید می‌کند.

به گفته تیم Next.js، در شرایط خاص، escape نشدن درست در خروجی SVG ساخته‌شده توسط Satori می‌تواند به‌خاطر آسیب‌پذیری‌هایی در دیگر وابستگی‌های بالادستی، به اجرای کد از راه دور برسد. راه‌حل هم ارتقای همین وابستگی‌هاست.

جزئیات فنی در دو اطلاعیه منتشر شده است:

  • GHSA-vcvr-r3jv-pc5j برای Next.js
  • GHSA-wx4j-mvgx-mqwp برای Satori

به‌روزرسانی امنیتی Next.js روی کدام نسخه‌ها اثر دارد؟

شاخه وضعیت پشتیبانی نسخه‌های آسیب‌پذیر نسخه وصله‌شده
16.x Active LTS >=16.2.0 <16.3.6 16.3.6
15.x Maintenance LTS تحت تأثیر RCE نیست 15.5.26 (مقاوم‌سازی)

دو نکته مهم در اطلاعیه آمده است. اول، اپلیکیشن‌هایی که از پیاده‌سازی Edge کلاس ImageResponse استفاده می‌کنند، آسیب‌پذیر نیستند. دوم، شاخه 15.x تحت تأثیر مشکل اجرای کد نیست، اما نسخه 15.5.26 تغییرات مقاوم‌سازی مرتبط را دارد و نصبش توصیه شده است.

همین حالا چه کار کنیم؟

دستور ارتقا طبق اطلاعیه رسمی:

npm install next@16.3.6   # for 16.3
npm install next@15.5.26  # for 15.5 (hardening only)

اگر از pnpm یا yarn استفاده می‌کنید، معادل همین دستور را اجرا کنید و بعد از ارتقا، فایل قفل وابستگی‌ها را هم کامیت کنید. برای اطمینان از نسخه نصب‌شده:

npm ls next

برای اولویت‌بندی، ببینید آیا در پروژه‌تان از next/og استفاده می‌شود یا نه. فایل‌های opengraph-image و Route Handlerهایی که ImageResponse را روی رانتایم Node.js اجرا می‌کنند، مستقیم‌ترین نقاط در معرض خطرند:

grep -rn "next/og" app/ src/ 2>/dev/null

حتی اگر نتیجه‌ای پیدا نکردید، ارتقا را انجام دهید؛ هزینه‌اش کم و ریسک ماندن روی نسخه آسیب‌پذیر زیاد است. اگر خط لوله CI/CD دارید، این بهترین زمان برای افزودن بررسی خودکار وابستگی‌هاست؛ در آموزش CI/CD با GitHub Actions نمونه‌اش را ساخته‌ایم.

۳۰ سپتامبر: ۹ وصله امنیتی دیگر

تیم Next.js یک روز بعد، یعنی ۲۳ سپتامبر، اعلام کرد که روز ۳۰ سپتامبر ۲۰۲۶ (۸ مهر ۱۴۰۵) نسخه‌های 16.3.7 و 15.5.27 را منتشر می‌کند. این انتشار ۹ آسیب‌پذیری را برطرف می‌کند:

  • یک آسیب‌پذیری با شدت بحرانی
  • دو آسیب‌پذیری با شدت بالا
  • پنج آسیب‌پذیری با شدت متوسط
  • یک آسیب‌پذیری با شدت پایین

جزئیات این آسیب‌پذیری‌ها، از جمله نسخه‌های تحت تأثیر، هم‌زمان با انتشار وصله‌ها اعلام می‌شود. هدف از این اعلام پیشاپیش این است که تیم‌ها فرصت داشته باشند برای ارتقا برنامه‌ریزی کنند.

جمع‌بندی برای تیم‌های فرانت‌اند

توصیه عملی ما ساده است: امروز به 16.3.6 یا 15.5.26 بروید و برای ۸ مهر هم یک پنجره ارتقای دیگر در تقویم تیم رزرو کنید. اگر هنوز روی نسخه‌های قدیمی‌تر از شاخه‌های پشتیبانی‌شده هستید، این دو انتشار پشت سر هم دلیل خوبی برای به‌روز شدن است.

اگر تازه سراغ Next.js آمده‌اید، آموزش Next.js App Router از صفر نقطه شروع خوبی است. سؤال‌ها و گزارش‌های امنیتی مربوط به Next.js را هم می‌توانید از طریق برنامه باگ‌بانتی متن‌باز Vercel یا ایمیل security@vercel.com مطرح کنید.

مطالب مرتبط