- شناسه CVE-2025-29927 :CVE
- CWE-285 :CWE
- yes :Advisory
- منتشر شده: مارس 21, 2025
- به روز شده: آوریل 8, 2025
- امتیاز: 9.1
- نوع حمله: Bypass
- اثر گذاری: Information Disclosure
- حوزه: نرم افزارهای کاربردی
- برند: vercel
- محصول: next.js
- وضعیتPublished :CVE
- Yes :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیبپذیری بحرانی در فریمورک Next.js امکان دور زدن بررسیهای احراز هویت (Authorization Bypass) را در middleware فراهم میکند. این ضعف در 11.1.4 تا 12.3.5، 13.0.0 تا 13.5.9، 14.0.0 تا 14.2.25 و 15.0.0 تا 15.2.3 وجود دارد و به مهاجمان اجازه میدهد با افزودن هدر x-middleware-subrequest به درخواستها، بدون عبور از مکانیزمهای امنیتی، به مسیرهای حساس دسترسی پیدا کنند.
توضیحات
آسیبپذیری CVE-2025-29927 در فریمورک Next.js (فریمورکی برای توسعه وباپلیکیشنهای مبتنی بر React) ناشی از مدیریت نادرست هدر x-middleware-subrequest در middleware (میان افزار) است و مطابق با CWE-285 (عدم احراز هویت مناسب) طبقهبندی میشود.
این ضعف در نسخههای 11.1.4 تا 12.3.5، 13.0.0 تا 13.5.9، 14.0.0 تا 14.2.25 و 15.0.0 تا 15.2.3 وجود دارد.
Next.js از middleware برای انجام وظایفی مانند احراز هویت ، مجوزدهی (Authorization) ، مدیریت خطاها و هدایت درخواستها استفاده میکند. این فریم ورک برای جلوگیری از حلقههای بینهایت در middleware، از هدر داخلی x-middleware-subrequest استفاده میکند تا مشخص کند آیا درخواست باید از زنجیره middleware عبور کند یا خیر. اگر این هدر با مقدار خاصی در درخواست وجود داشته باشد، تابع runMiddleware اجرای زنجیره middleware را دور زده و درخواست مستقیماً به مقصد ارسال میشود.
مهاجم میتواند با افزودن دستی هدر x-middleware-subrequest با مقدار مناسب به درخواست، مکانیزمهای احراز هویت و مجوزدهی را دور زده و به مسیرهای حساس (مانند پنلهای مدیریتی) دسترسی پیدا کند. این آسیبپذیری از طریق شبکه با پیچیدگی پایین و بدون نیاز به احراز هویت یا تعامل کاربر قابل بهرهبرداری است.
پیامدهای این ضعف شامل افشای اطلاعات حساس، تغییر یا افزودن دادهها است. کد اثبات مفهومی (PoC) برای این آسیبپذیری منتشر شده که با استفاده از اسکریپت پایتون، امکان ارسال درخواست با هدر مخرب را فراهم میکند. این اسکریپت میتواند مسیرهای احراز هویتشده را بهصورت خودکار شناسایی کرده یا بهصورت دستی روی مسیر خاصی (مانند domain.com/admin/clients) آزمایش شود.
لازم به ذکر است این آسیبپذیری تنها بر نسخههای Self-Hosted که از دستور next start با تنظیم output: standalone استفاده میکنند، تاثیرگذار است. اپلیکیشن های میزبانیشده روی پلتفرمهایی مانند Vercel یا Netlify یا آنهایی که بهصورت Static Export (خروجی ایستا) مستقر شدهاند، تحت تأثیر قرار نمیگیرند.
شرکت Vercel پچهایی برای نسخههای 12.3.5، 13.5.9، 14.2.25 و 15.2.3 منتشر کرده است. برای نسخههای 11.X که دیگر پشتیبانی نمیشوند، توصیه شده است که درخواستهای حاوی هدر x-middleware-subrequest مسدود شوند.
CVSS
Score | Severity | Version | Vector String |
9.1 | CRITICAL | 3.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
لیست محصولات آسیب پذیر
Versions | Product |
affected at >= 11.1.4, < 12.3.5
affected at >= 14.0.0, < 14.2.25 affected at >= 15.0.0, < 15.2.3 affected at >= 13.0.0, < 13.5.9 |
next.js |
لیست محصولات بروز شده
Versions | Product |
For Next.js 15.x, this issue is fixed in 15.2.3
For Next.js 14.x, this issue is fixed in 14.2.25 For Next.js 13.x, this issue is fixed in 13.5.9 For Next.js 12.x, this issue is fixed in 12.3.5 For Next.js 11.x, consult the below workaround. |
next.js |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که next.js را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
Approx. Usage in .ir Domain via Google
(Total Pages) |
Search Query (Dork) | Product |
70,900 | site:.ir “next.js” | next.js |
نتیجه گیری
این آسیبپذیری در فریمورک Next.js امکان دور زدن مکانیزمهای احراز هویت را از طریق دستکاری هدر x-middleware-subrequest فراهم میکند و میتواند منجر به افشای اطلاعات حساس یا تغییر غیرمجاز دادهها شود. با توجه به شدت بحرانی این ضعف و انتشار کد اثبات مفهومی (PoC)، اجرای فوری اقدامات زیر برای کاهش ریسک ضروری است:
- بهروزرسانی فوری: js را به نسخههای امن 12.3.5، 13.5.9، 14.2.25 یا 15.2.3 به روزرسانی کنید.
- مسدودسازی هدر مخرب: درخواستهای خارجی حاوی هدر x-middleware-subrequest را با استفاده از فایروال یا تنظیمات سرور مسدود کنید.
- اعمال اعتبارسنجی اضافی: در صورت استفاده از middleware برای احراز هویت، بررسیهای امنیتی اضافی در سطح اپلیکیشن (Application-Level) اضافه کنید.
- محدودسازی دسترسی: دسترسی به مسیرهای حساس (مانند پنلهای مدیریتی) را با استفاده از ACL یا VPN محدود کنید.
- نظارت بر ترافیک: از سیستمهای تشخیص و پیشگیری نفوذ (IDS/IPS) برای شناسایی درخواستهای مشکوک با هدر x-middleware-subrequest استفاده کنید.
- تغییر تنظیمات پیشفرض: اطمینان حاصل کنید که تنظیمات پیشفرض سرور تغییر کرده و احراز هویت قوی برای رابطهای مدیریتی اعمال شده است.
- ایزولهسازی اپلیکیشن: js را در محیطهای ایزوله (مانند Docker یا VLAN) اجرا کنید تا تأثیرات احتمالی محدود شود.
- آموزش تیمها: توسعهدهندگان و مدیران سیستم را در مورد ریسکهای مرتبط با middleware و روشهای ایمنسازی آگاه کنید.
اجرای این اقدامات میتواند ریسک بهرهبرداری از این آسیبپذیری را به حداقل رسانده و امنیت اپلیکیشن های وب را بهبود بخشد. برای اپلیکیشن هایی که امکان به روزرسانی به نسخههای امن ندارند، مسدودسازی هدر x-middleware-subrequest و نظارت دقیق بر ترافیک شبکه حیاتی است.
امکان استفاده در تاکتیک های Mitra Attack
Initial Access TA0001
مهاجم با ارسال درخواست HTTP حاوی هدر x-middleware-subrequest crafted میتواند بررسیهای middleware را دور زده و به مسیرهای محافظتشده دسترسی اولیه پیدا کند
Persistence TA0003
پس از دسترسی مهاجم ممکن است توکن یا نشست جعلی ثبت کند تا دسترسی ماندگار ایجاد نماید
Privilege Escalation TA0004
دور زدن مکانیزمهای مجوزدهی میتواند دسترسی به endpointهای مدیریتی با سطح بالاتر را امکانپذیر سازد
Credential Access TA0006
با عبور از Authorization مهاجم میتواند به توکنها، کوکیها یا سایر منابع احراز هویت دسترسی یابد
Discovery TA0007
مهاجم پس از دسترسی میتواند APIهای اطلاعاتی و ساختار حسابها را کاوش کند تا اهداف بعدی را شناسایی نماید
Lateral Movement TA0008
اعتبارهای بهدستآمده ممکن است برای دسترسی به سرویسهای دیگر یا پنلهای مرتبط در اکوسیستم مورد استفاده قرار گیرند
Collection TA0009
دادههای حساس کاربران یا پیکربندی میتواند توسط مهاجم جمعآوری و برای سوءاستفادههای بعدی ذخیره شود
Exfiltration TA0010
دادههای جمعآوریشده امکان انتقال به میزبانهای خارجی را دارند و میتوانند از شبکه خارج شوند
Impact TA0040
پیامد نهایی شامل افشای اطلاعات حساس، تغییر غیرمجاز دادهها و احتمال دستیابی مدیریتی کامل است
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-29927
- https://www.cvedetails.com/cve/CVE-2025-29927/
- https://github.com/vercel/next.js/security/advisories/GHSA-f82v-jwr5-mffw
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-29927
- https://vuldb.com/?id.300596
- https://github.com/vercel/next.js/commit/52a078da3884efe6501613c7834a3d02a91676d2
- https://github.com/vercel/next.js/commit/5fd3ae8f8542677c6294f32d18022731eab6fe48
- https://github.com/vercel/next.js/releases/tag/v12.3.5
- https://github.com/vercel/next.js/releases/tag/v13.5.9
- http://www.openwall.com/lists/oss-security/2025/03/23/3
- http://www.openwall.com/lists/oss-security/2025/03/23/4
- https://security.netapp.com/advisory/ntap-20250328-0002/
- https://github.com/websecnl/CVE-2025-29927-PoC-Exploit
- https://www.bleepingcomputer.com/news/security/critical-flaw-in-nextjs-lets-hackers-bypass-authorization/
- https://nvd.nist.gov/vuln/detail/CVE-2025-29927
- https://cwe.mitre.org/data/definitions/285.html