- شناسه 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
گزارش فنی اثبات آسیبپذیری CVE-2025-29927
اطلاعات آسیبپذیری
محصول آسیبپذیر: Next.js
عنوان: Middleware Infinite Loop Denial-of-Service (DoS)
شناسه آسیبپذیری: CVE-2025-29927
شدت: High
سیستمها و نسخههای متاثر:
نسخههای 12.0.0 تا 12.3.5 و نسخههای 13.0.0 تا 13.5.5
و برنامههایی که از قابلیت middleware در Next.js استفاده میکنند
شرح مسئله
هدر خاصی با نام X-Middleware-Subrequest که توسط Next.js پردازش میشود میتواند حاوی الگوهای بازگشتی crafted باشد. ضعف در بررسی حد عمق بازگشت (recursion) در منطق پردازش middleware منجر به حلقه بازگشتی نامتناهی میشود. یک مهاجم از راه دور میتواند بدون احراز هویت و بدون تعامل کاربر با ارسال درخواستهای HTTP حاوی هدر مخرب، مصرف بیحد و مرز CPU و حافظه سرور را القا کرده و سرویس را از دسترس خارج نماید.
پیشنیازهای PoC
- توانایی ارسال درخواستهای HTTP به برنامه هدف.
- برنامه هدف باید از middleware Next.js استفاده کند و هدرهای ورودی را بدون فیلترِ مناسب بپذیرد.
- احراز هویت یا تعامل کاربر لازم نیست.
اثبات مفهوم (PoC)
برای اجرای PoC نمونهای عمومی موجود است که با ارسال درخواستهای دارای الگوهای بازگشتی هدر X-Middleware-Subrequest موجب اشباع منابع میشود. نمونه دستور نمونه آزمایشگاهی:
python nextjs_CVE_2025_29927.py
هشدار: اجرای PoC تنها در محیط ایزوله و با مجوز قانونی مجاز است.
این اسکریپت یک آزمون ساده و مبتنی بر هدر را اجرا می کند که ابتدا صحت دسترسی به سرویس محلی را چک می کند و سپس چند نوع مقدار برای هدر X-Middleware-Subrequest ارسال می کند تا پاسخ سرور را ارزیابی نماید. منطق تشخیص خیلی سرراست است و می گوید اگر پاسخ کد ۲۰۰ بازگردد و طول بدنه بزرگتر از صفر باشد احتمالا ضعف وجود دارد. نکته مهم این است که این متد تشخیصی ضعیف است چون آسیبپذیری یادشده از جنس ایجاد حلقه نامتناهی و اشباع منابع است و رفتار واقعی ممکن است به صورت تایماوت، قطع اتصال یا افزایش ناگهانی مصرف CPU و حافظه نشان داده شود نه لزوما بازگشت ۲۰۰ با محتوای بزرگ. بنابراین این اسکریپت می تواند هم مثبت کاذب تولید کند و هم موارد واقعی را نادیده بگیرد.
نتیجه مورد انتظار در حالت امن
- پردازش middleware باید محدودیت عمق بازگشتی را اعمال و ورودیهای هدر را قبل از ورود به مسیرهای بازگشتی نرمالایز/اعتبارسنجی نماید.
- درخواستهای دارای الگوهای بازگشتی یا هدرهای malformed باید رد یا نرمالایز شوند.
- منابع اجرای middleware باید توسط محدودیتهای کانتینر و سیستم عامل محدود شوند تا یک درخواست منفرد نتواند CPU یا حافظه کل سرور را اشباع کند.
راهکارهای اصلاحی و کاهش ریسک (Mitigation / Patch Guidance)
- Patch فوری
بلافاصله وصلههای مارس 2025 را اعمال و js را به نسخههای پچشده ارتقا دهید - اگر امکان patch فوری نیست — اقدامات فوری
- موقتا قابلیت middleware را در نمونههای حساس غیرفعال کنید.
- در لایه معکوسپراکسی (nginx, Apache, Cloudflare) هدر X-Middleware-Subrequest را فیلتر یا نرمالایز کنید؛ الگوهای بازگشتی را بلوک نمایید.
- قواعد WAF جهت مسدودسازی هدرهای recursive و الگوهای malformed پیاده کنید.
- محدودیتهای منابع کانتینر/پروسس (CPU quota, memory limit) را اعمال کنید تا blast radius کاهش یابد.
- بهبود بلندمدت (Hardening)
- اعتبارسنجی و نرمالسازی کامل ورودیهای هدر در لایه اپلیکیشن و middleware اعمال شود.
- پیادهسازی تستهای fuzzing و استرستست برای middleware در خط CI/CD.
- مانیتورینگ و autoscaling مناسب برای تحمل موجهای ناگهانی ترافیک و تشخیص زودهنگام.
پاسخ به حادثه (IR)
- در صورت شناسایی بهرهبرداری، بلافاصله نمونههای آسیبدیده را از ترافیک تولیدی جدا کنید.
- جمعآوری لاگهای اپلیکیشن، traces، متریکهای عملکرد و capture شبکه برای تحلیل.
- پس از ایزوله، سرویس را ریاستارت یا مقیاس دهید و اقدامات موقتی اعمالشده را برقرار کنید.
- وصلهها را اعمال، تحلیل فورنزیک را تکمیل و تنظیمات منابع را بررسی کنید تا احتمال تکرار کاهش یابد.
توصیههای عملیاتی برای سازمان
- اعمال فوری وصله و قرار دادن ارتقا در بالاترین اولویت عملیاتی.
- در محیطهای اینترنتی که فوراً قابل وصله نیستند، middleware را غیرفعال یا در پشت شبکه امن قرار دهید.
- در لایه لبه هدرها را نرمالایز و الگوهای مشکوک را فیلتر کنید
- محدودیت منابع و سیاستهای autoscaling را برای کاهش تأثیر حمله پیکربندی کنید.
- تستهای نفوذ و fuzzing منظم برای مولفههای middleware را در برنامه تست خود بگنجانید.
جریان حمله
شکل 1 جریان حمله مربوط به سوءاستفاده از این آسیب پذیری را نشان می دهد

شکل 1: جریان حمله
اجرای POC در محیط ایزوله آزمایشگاه
تیم فنی Vulnerbyte اقدام به بررسی POC مربوط به این آسیب پذیری کرده و بازتولید آن مورد تایید است. در تصویر شماره 2 میتوان نتیجه را مشاهده نمود.

شکل 2: اجرای POC در محیط آزمایشگاه
اکسپلویت (exp.py) دو کار موازی انجام میدهد: اول، درخواستهای crafted که رفتار روتها یا middleware را ناهماهنگ میکنند مثلاً برای HTTP request smuggling، path traversal یا عبور از مکانیزمهای محافظتی Next.js؛ دوم، استخراج یا بیثباتسازی دادههایی که سرور برمیگرداند (مانند توکنهای CSRF یا صفحات رندرشده) تا مرحله بعدی حمله — مثلاً بارگذاری اسکریپت مخرب یا اجرای فرمان. حضور headerهایی حاوی next-auth.csrf-token/ توکنها در پنل راست و وضعیتهای کش نشان میدهد PoC نه تنها به سرور دسترسی داشته بلکه به اطلاعات جلسه/توکن نیز دسترسی یا تأثیر گذاشته است. در مجموع، تصویر سندیت فنیِ تعامل موفق PoC با اپ Next.js را دارد.
منابع (References)
- https://nvd.nist.gov/vuln/detail/CVE-2025-29927
- https://vercel.com/blog/postmortem-on-next-js-middleware-bypass
- https://github.com/vercel/next.js/security/advisories/GHSA-f82v-jwr5-mffw
- https://developers.cloudflare.com/changelog/2025-03-22-next-js-vulnerability-waf/
CVE-2025-29927 – Middleware Infinite Loop Denial-of-Service (DoS)
CVE ID: CVE-2025-29927
Severity: High
Affected Systems:
- Next.js 12.0.0 through 12.3.5
- Next.js 13.0.0 through 13.5.5
- Applications using Next.js middleware functionality
Patched In: Next.js security updates March 2025.
- Upgrade paths: Next.js 12.3.6 or later for 12.x installations, Next.js 13.5.6 or later for 13.x installations, upgrading to Next.js 14.0.0 or later recommended.
References:
- Next.js security updates March 2025 and vendor advisory.
Description
A specially crafted X-Middleware-Subrequest header processed by Next.js can trigger improper recursion handling in middleware processing. Malicious headers with recursive patterns cause infinite middleware recursion, leading to uncontrolled CPU and memory consumption and resulting in remote denial of service without authentication or user interaction. The vulnerability is exploitable over the network and can fully disrupt service availability.
Prerequisites
- Remote attacker ability to send HTTP requests to the target application.
- Target application uses Next.js middleware and accepts headers from untrusted clients.
- No authentication or user interaction required.
Proof of Concept
A public PoC demonstrates how sending requests with recursive header patterns exhausts resources and makes the server unavailable. Example lab command:
python nextjs_CVE_2025_29927.py
Use PoC only in a contained lab environment.
Expected Result
- Middleware processing must enforce recursion depth limits and validate header content before recursing.
- Server-side request handling should reject or sanitize recursive header patterns that can cause unbounded recursion.
- Resource consumption must be bounded by application and container limits so a single request cannot exhaust CPU or memory.
Mitigation / Patch Guidance
- Patch immediately
- Apply the March 2025 Next.js security updates. Upgrade to at least Next.js 12.3.6, 13.5.6, or 14.0.0.
- If you cannot patch immediately
- Temporarily disable Next.js middleware functionality.
- Sanitize and validate headers at the reverse proxy layer. Drop or normalize X-Middleware-Subrequest header values that contain recursive patterns.
- Deploy WAF rules to block recursive header patterns and other malformed middleware headers.
- Enforce container and process resource limits to reduce blast radius.
- Longer-term hardening
- Apply strict input validation for middleware-related headers and implement recursion depth checks in middleware logic.
- Integrate middleware fuzzing and stress tests into CI pipelines.
- Harden monitoring and autoscaling policies to handle anomalous spikes safely.
Detection & Monitoring
- Monitor for sustained or sudden high CPU and memory usage on Next.js servers.
- Log and alert on requests containing X-Middleware-Subrequest or unusual header repetition and recursion patterns.
- Use Application Performance Monitoring to detect repeated middleware invocation chains and excessive call depth.
- Employ EDR and infrastructure monitoring to correlate resource exhaustion with incoming request patterns.
Incident Response
- If exploitation is suspected isolate affected instances from production traffic.
- Collect application logs, request traces, performance metrics, and relevant network captures.
- Restart or scale services to restore availability after isolating the attack vector and applying temporary mitigations.
- Apply vendor patches, perform forensic analysis to confirm impact, and review autoscaling and resource limit settings to prevent recurrence.
Disclaimer
This document is for defensive and operational use only. Do not attempt testing or exploitation on systems without explicit authorization. The author assumes no responsibility for misuse.
بررسی آماری آسیب پذیریCVE-2025-29927 در کشور ایران
محصول آسیب پذیر: Next.js
میزان استفاده در ایران بر اساس سایت های آمار مرتبط با محصول
بر اساس شاخصهای عمومیِ در دسترس، داده مستقیم برای ایران محدود است؛ با این حال BuiltWith در بخش میزبانی Vercel زیرساخت پیشفرض رایج برای Next.js حدود ۱٬۶۳۱ دامنه در ایران را فهرست میکند که میتواند بهعنوان نماینده تقریبی از حضور Next.js در بازار ایران تلقی شود.
میزان استفاده در ایران بر اساس موتورهای جستجو (تعداد ایندکس ها در بخش tool)
| تعداد در زمان نگارش گزارش | دورک | موتور جستجو |
| 83100 | site:.ir ” Next.js” | |
| 83600 | site:.ir ” Next js” | |
| 86500 | site:.ir ” Next.js” | Bing |
وجود نمایندگی در ایران
Next.js یک فریمورک متنباز توسعهیافته توسط Vercel است و هیچ نمایندگی رسمی یا دفتر منطقهای در ایران ندارد.
میزان استفاده بر اساس گزارشات تحقیقات بازار برای این محصول در ایران
گزارش بازارِ رسمیِ داخلی با عدد قطعی برای نفوذ Next.js در ایران منتشر نشده است؛ اما میشود با اتکا به نماگرهای عمومی، یک برآورد مستند ارائه داد. داده WhatCMS سهم Next.js را در دامنه ملی .ir حدود ۰٫۳۷۲٪ نشان میدهد (نمایِ قابلمشاهده، نه کل نصبها). در سمت فهرستهای تکنولوژی، BuiltWith برای وبسایتهای استفادهکننده از Next.js در ایران بیش از ۱۳هزار دامنه را گزارش میکند (روششناسی مالکانه و نتایج کامل پشت حساب کاربری است). منابع ثالثی مثل Aguko نیز برای .ir بین حدود ۱٫۶k تا ۴k دامنه و سهم ۳٫۹–۱۰٪ در سبد فریمورکهای JS عدد میدهند که باید با احتیاط تفسیر شود.
منابع