VulnCity

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 Open Source 0.6.27 - 1.30.0
  • NGINX Plus R1 - R34