NGINX Rift — Remote Code Execution in NGINX Rewrite Module
- شناسه CVE: CVE-2026-42945
- شدت: بحرانی
- امتیاز CVSS: 8.1
- فروشنده/سازنده: F5 Networks / NGINX Inc.
RCENGINXHeap OverflowRewrite ModulePCRERemote Code ExecutionUnauthenticated
NGINX Rift یک آسیبپذیری Heap Buffer Overflow با قدمت ۱۸ سال در ماژول ngx_http_rewrite_module هسته NGINX است که امکان Remote Code Execution بدون احراز هویت را فراهم میکند.
## بررسی آسیبپذیری
NGINX Rift در ماژول ngx_http_rewrite_module قرار دارد و زمانی فعال میشود که directives خاصی (rewrite، if، set) با unnamed PCRE captures و کاراکتر ? استفاده شوند.
## علت ریشهای
هنگام پردازش directives مانند rewrite، if یا set که از unnamed PCRE captures ($1، $2) همراه با کاراکتر ? استفاده میکنند، مکانیزم پردازش regex در NGINX بهدرستی حافظه را مدیریت نمیکند و منجر به Heap Buffer Overflow میشود.
## شرایط Exploitation
برای بهرهبرداری موفق از این آسیبپذیری، شرایط زیر لازم است:
### پیشنیازها:
1. **Configuration آسیبپذیر**: استفاده از rewrite/if/set با unnamed captures و ?
2. **ASLR ضعیف**: برای RCE قابل اعتماد، ASLR باید ضعیف یا غیرفعال باشد
3. **شرایط خارج از کنترل مهاجم**: مهاجم نیاز به شرایطی دارد که خارج از کنترل مستقیم او هستند
### مثال Configuration آسیبپذیر:
```nginx
location /api {
if ($arg_redirect ~* "^(https?)://(.+)quot;) {
return 302 $1://$2?;
}
}
```
### Attack Vector:
مهاجم با ارسال درخواست HTTP با پارامترهای دستکاریشده میتواند Heap Overflow را trigger کند.
## ارزیابی تأثیر
این آسیبپذیری تأثیرات زیر را دارد:
### تأثیرات فنی:
- **Denial of Service (DoS)**: کرش و ریستارت NGINX worker process
- **Remote Code Execution (RCE)**: اجرای کد دلخواه با سطح دسترسی NGINX worker (فقط در سیستمهای با ASLR غیرفعال)
- **Memory Disclosure**: افشای اطلاعات حساس از حافظه
### داراییهای در معرض خطر:
- **Private Keys**: کلیدهای خصوصی SSL/TLS
- **Upstream Credentials**: اعتبارنامههای backend
- **Session Data**: دادههای نشست کاربران
- **Network Access**: دسترسی به شبکه داخلی
## محیطهای پرخطر
- **Internet-Facing Reverse Proxies**: پروکسیهای معکوس روبهاینترنت
- **API Gateways**: دروازههای API
- **Kubernetes Ingress Controllers**: کنترلرهای Ingress در Kubernetes
- **Load Balancers**: توزیعکنندههای بار
## Configuration Patterns پرخطر
- استفاده از rewrite با unnamed captures و ?
- استفاده از if با regex matching و ?
- استفاده از set با variable substitution و ?
## نسخههای آسیبپذیر
- **NGINX Open Source**: 0.6.27 تا 1.30.0
- **NGINX Plus**: R1 تا R34
- **توجه**: نسخههایی که به End of Technical Support (EoTS) رسیدهاند ارزیابی نشدهاند
## راهکارهای Mitigation
### اقدامات فوری:
1. **Patch**: آپدیت به NGINX 1.30.1+ یا 1.31.0+
2. **Configuration Audit**: بررسی و حذف patterns آسیبپذیر
3. **Workaround**: استفاده از named captures بهجای unnamed
### Detection & Monitoring:
- مانیتورینگ کرشهای NGINX worker
- بررسی لاگها برای الگوهای مشکوک
- استفاده از WAF برای فیلتر درخواستهای مخرب
### Defense in Depth:
- فعالسازی ASLR کامل
- محدودسازی دسترسی NGINX worker
- Segmentation شبکه
- استفاده از Container Security
## تست و Validation
برای بررسی آسیبپذیری:
1. بررسی نسخه NGINX: `nginx -v`
2. Audit فایلهای configuration برای patterns خطرناک
3. تست با ابزارهای امنیتی
## Timeline
- **قدمت آسیبپذیری**: ۱۸ سال (از NGINX 0.6.27)
- **تاریخ انتشار NVD**: 13 می 2026 (1405/02/23)
- **تاریخ آخرین بهروزرسانی**: 13 می 2026 (1405/02/23)
- **منبع**: F5 Networks
## CVSS v4.0 Metrics
- **Attack Vector**: Network
- **Attack Complexity**: High
- **Attack Requirements**: None
- **Privileges Required**: None
- **User Interaction**: None
- **Vulnerable System Impact**: High (Confidentiality, Integrity, Availability)
- **Subsequent System Impact**: None
- **Vector String**: CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
## بررسی آسیبپذیری
NGINX Rift در ماژول ngx_http_rewrite_module قرار دارد و زمانی فعال میشود که directives خاصی (rewrite، if، set) با unnamed PCRE captures و کاراکتر ? استفاده شوند.
## علت ریشهای
هنگام پردازش directives مانند rewrite، if یا set که از unnamed PCRE captures ($1، $2) همراه با کاراکتر ? استفاده میکنند، مکانیزم پردازش regex در NGINX بهدرستی حافظه را مدیریت نمیکند و منجر به Heap Buffer Overflow میشود.
## شرایط Exploitation
برای بهرهبرداری موفق از این آسیبپذیری، شرایط زیر لازم است:
### پیشنیازها:
1. **Configuration آسیبپذیر**: استفاده از rewrite/if/set با unnamed captures و ?
2. **ASLR ضعیف**: برای RCE قابل اعتماد، ASLR باید ضعیف یا غیرفعال باشد
3. **شرایط خارج از کنترل مهاجم**: مهاجم نیاز به شرایطی دارد که خارج از کنترل مستقیم او هستند
### مثال Configuration آسیبپذیر:
```nginx
location /api {
if ($arg_redirect ~* "^(https?)://(.+)quot;) {
return 302 $1://$2?;
}
}
```
### Attack Vector:
مهاجم با ارسال درخواست HTTP با پارامترهای دستکاریشده میتواند Heap Overflow را trigger کند.
## ارزیابی تأثیر
این آسیبپذیری تأثیرات زیر را دارد:
### تأثیرات فنی:
- **Denial of Service (DoS)**: کرش و ریستارت NGINX worker process
- **Remote Code Execution (RCE)**: اجرای کد دلخواه با سطح دسترسی NGINX worker (فقط در سیستمهای با ASLR غیرفعال)
- **Memory Disclosure**: افشای اطلاعات حساس از حافظه
### داراییهای در معرض خطر:
- **Private Keys**: کلیدهای خصوصی SSL/TLS
- **Upstream Credentials**: اعتبارنامههای backend
- **Session Data**: دادههای نشست کاربران
- **Network Access**: دسترسی به شبکه داخلی
## محیطهای پرخطر
- **Internet-Facing Reverse Proxies**: پروکسیهای معکوس روبهاینترنت
- **API Gateways**: دروازههای API
- **Kubernetes Ingress Controllers**: کنترلرهای Ingress در Kubernetes
- **Load Balancers**: توزیعکنندههای بار
## Configuration Patterns پرخطر
- استفاده از rewrite با unnamed captures و ?
- استفاده از if با regex matching و ?
- استفاده از set با variable substitution و ?
## نسخههای آسیبپذیر
- **NGINX Open Source**: 0.6.27 تا 1.30.0
- **NGINX Plus**: R1 تا R34
- **توجه**: نسخههایی که به End of Technical Support (EoTS) رسیدهاند ارزیابی نشدهاند
## راهکارهای Mitigation
### اقدامات فوری:
1. **Patch**: آپدیت به NGINX 1.30.1+ یا 1.31.0+
2. **Configuration Audit**: بررسی و حذف patterns آسیبپذیر
3. **Workaround**: استفاده از named captures بهجای unnamed
### Detection & Monitoring:
- مانیتورینگ کرشهای NGINX worker
- بررسی لاگها برای الگوهای مشکوک
- استفاده از WAF برای فیلتر درخواستهای مخرب
### Defense in Depth:
- فعالسازی ASLR کامل
- محدودسازی دسترسی NGINX worker
- Segmentation شبکه
- استفاده از Container Security
## تست و Validation
برای بررسی آسیبپذیری:
1. بررسی نسخه NGINX: `nginx -v`
2. Audit فایلهای configuration برای patterns خطرناک
3. تست با ابزارهای امنیتی
## Timeline
- **قدمت آسیبپذیری**: ۱۸ سال (از NGINX 0.6.27)
- **تاریخ انتشار NVD**: 13 می 2026 (1405/02/23)
- **تاریخ آخرین بهروزرسانی**: 13 می 2026 (1405/02/23)
- **منبع**: F5 Networks
## CVSS v4.0 Metrics
- **Attack Vector**: Network
- **Attack Complexity**: High
- **Attack Requirements**: None
- **Privileges Required**: None
- **User Interaction**: None
- **Vulnerable System Impact**: High (Confidentiality, Integrity, Availability)
- **Subsequent System Impact**: None
- **Vector String**: CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
نرمافزارهای تحت تأثیر
- NGINX Open Source 0.6.27 - 1.30.0
- NGINX Plus R1 - R34