Ang 18-year lacuna CVE-2026-42945 ni Nginx: Simulain PoC Rehabilitation na kumpleto

🚨 Nginx Infiction 18-year High Risk Gap CVE-2026-42945: Rationale, PoC and Rehabilitation Program
Institute for Security Research, 13 Mayo 2026Unang PaglubogNagkakaisang F5.CVE-2026-42945:
- CVSS v4.0 Rating 9.2: Mataas-risk loophole
- Natapong basura: maaaring humantong sa paglalapat ng remote code (RCE)
- Pagtatago ng 18 taon: Sumulat ng kodigo mula noong 2008 Library
- 975 milyong lugar na nakaaapekto sa daigdig: Ang Tsina ay mahigit 2.54 milyong website na apektado
- Ipinahayag ng PoC: Matagumpay na gumaling ang Chiansin
Ito ay...MALUNGKOT na PagkainIsang makasaysayang butas kung saan ang mga sumasalakay ay basta nagpapadala ng isang pantanging idinisenyong HTTP na kahilingan na pangasiwaan ang server nang malayo.
Sumaryo ng mga puwang
Pangunahing impormasyon
| Tamang mga Butas | Mga Detalye |
|---|---|
| Bilang ng mga Hukay | CVE-2026-42945 |
| Pag - abuso sa CVSS | v4.0: 9.2° v3.1: 8.1 |
| Uri ng manok | Lagusan ng Back-based Buffer |
| Uri ng banta | Liblib na paglalapat ng kodigo (RCE), pagkakait ng mga serbisyo (DOS) |
| Mga Kalagayan sa Paggamit | Huwag mangailangan ng katiyakan, magtayo lamang ng mga kahilingan ng HTTP |
| Epekto | Ang ngx http rewrite module (NGINX core na ginawa-in module) |
| Pagtuklas sa Ahensiya | Laguna. |
Malaking epekto
- 97.5 milyong lugar sa buong daigdigEpekto
- Tsina 2.54 milyong websiteEpekto
- MGA 1/3 ng pangglobong website ang host ng NGINXNapakalaki ng epekto nito.
- Kodigo mula saTaon 2008Pagsulat, pag-aabang18 taon
⚠️ gger gger
Tatlong kondisyon ang dapat matugunan nang sabay - sabay.
Kailangan ang taliMga grupo ng configure na nakatutugon sa espesipikong mga kalagayan:
| Mga Kalagayan | Mga Pahiwatig | Halimbawa: |
|---|---|---|
| Walang Pangalang Pagbihag sa PCRE | Muling isinulat na pagbihag ng utos kasama ng hindi binanggit ang pangalan na Grupo | Isa, dalawa, tatlo... |
| 2. Palitan ang string ng tanungan | Naglalaman ng ? mga karakter | /profile.php?id=$1&tab=2 |
| 3. Pagkatapos/if/set | Sundin ang iba pang utos pagkatapos ng mga tagubilin | {... |
Halimbawa ng Pagiging Mahina
# 易受攻击配置
rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
# 后跟其他指令
if ($arg_debug) {
set $debug_flag 1;
}
Ang kaayusang ito ay nakatutugon sa tatlong kalagayan:Walang pangalan na nakuha $ 1/$2Hindi ko alam.Palitan ang strandong nilalaman?Hindi ko alam.Umatras kung mag - uutosHindi ko alam.
Magandang ideya ito.
Mga pagkakaiba sa pagitan ng dalawang yugto
ANG makinang script ng GAINXPaggamit ng dalawang yugto:
- Phase I: Ang mga kalkulasyon ay nangangailangan ng neutral na sukat
- Phase II: Kopyahin ang impormasyon upang maging neutral
Ang pinakapusod ng butas ayay error sa pamamahala ng args tag:
| Bilis | ay args status | Proseso ng lohika | Resulta |
|---|---|---|---|
| Mahabang yugto ng pagkalkula | =0 | Ibalik ang orihinal na haba ng huli | Hindi sapat na dami ng neutral |
| Bahagi ng pagpaparami ng Data | =1 | Tawagin ang ngx escape uri na may 3 byte sa bawat byte | Natapong basura |
Espesipikong mga proseso
- Muling Sulat na UtosIsama ang hindi pinangalanang paghuli $ 1/$2
- Palitan ang StringIsama? Ang trigger ay args = 1
- Mahabang yugto ng pagkalkula: bagong panimulang subengine, ay args = 0
- Nagbabalik sa orihinal na haba: Maliliit na salansan ng neutral na mga sona na ipinamamahagi
- Bahagi ng pagpaparami ng Data: gumamit ng pangunahing makina, ay args = 1
- Tawag na ngx escape uri: malayo pa sa hangganan, na lumalabas mula sa neutral na sona
- Nakasusupil na URI DataIsinulat ang Natapong Dako
Pagtidalisay
Cross Feng Shui:
- PAGTANGGAP NG POST" Jet reactor memory " (sapagkat ang URI ay hindi maaaring maglaman ng mga nullabyte)
- Natapong datosDisrupsyon ng katabing meatup pointer na singx pol t
- Huwad na "gx pool cleaning s ", itinuturo ang sistema()
- Tubig kapag nawasakTrigger system() tumawag
- Nakamit na RCE
Epekto ng ASLR
- Nagagawa ng ASLRIba Pang Organiser
- Hindi Maaaring Ihambing: remote code bitay (RCE)
Impact na bersiyon
GAINX Buksan ang Pinagmulan
| Bersiyon Range | Fix Version |
|---|---|
| 0.6.27 – 1.30.0 | 1.31.0, 1.30.1 |
PAMBIHIG NA MGA Plus
| Bersiyon Range | Fix Version |
|---|---|
| R32 – R36 | R36 P4, R35 P2, R32 P6 |
Iba pang apektadong sangkap
- SINGINX Institute Managing2.16 – 2.21.1
- ANINX App Production WAF:4.9 – 5.8.0
- Kontraktor ng UNX Information: 3.5.0 – 5.4.1
- NAINX Gateway Fabric: 1.3.0 – 2.5.1
- F5 Dos Para sa NGINX: 4.8.0
Kalagayan ng 🔥PoC
Ipinahayag ng PoC
- Repositoryo ng GitHub:Mga http://github.com/Depth First Disclosures/Nginx-Rift
- Bumalik na si Chian Xin.: Matagumpay na muling-emerhensiya ng mga mananaliksik sa seguridad sa Threat Information Centre
- Ang teknikal na mga detalye ay ginagawang publiko.Iba Pang Organiser
- Gamitin sa larangan: Walang nasumpungan
Paraan ng Paggamit ng PC
# 构建容器 ./setup.sh # 启动易受攻击的 NGINX 服务器 docker compose -f env/docker-compose.yml up # 执行 PoC 获取 Shell python3 poc.py --shell
Rehabilitasyon ng programa
Pamamaraan 1: Upgrade
# 升级到修复版本 NGINX Open Source >= 1.31.0 NGINX Open Source >= 1.30.1 NGINX Plus >= R32 P6 NGINX Plus >= R36 P4 # 升级后重启 NGINX nginx -s reload
Mga Pamamaraan 2: Modipikasyon ng pagsasaayos (mga hakbang sa pagsasaayos)
KaloobanHindi Napangalanang Grupo ng CapturePalitan ngGrupong May Capture:
# 易受攻击配置(未命名捕获) rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last; # 修复后配置(命名捕获) rewrite ^/users/(?[0-9]+)/profile/(?.*)$ /profile.php?id=$user_id&tab=$section last;
Grupong May CaptureHindi ito mag-uudyok ng isang loophole.
Pamamaraan 3: Suriin ang kaayusan
Tingnan kung kailan ito mahina:
# 搜索易受攻击的 rewrite 指令 grep -E "rewrite.*\$[0-9]+.*\?.*(rewrite|if|set)" /etc/nginx/nginx.conf grep -rE "rewrite.*\$[0-9]+.*\?.*(rewrite|if|set)" /etc/nginx/conf.d/
Pagtuklas
Natuklasan ang sistemang automated
Unang PaglubogSistema ng pagsusuri sa seguridad:
- Sa loob ng 6 na orasLimang tanong ang nasumpungan.
- 4 na pinatutunayan ng NGINX
- CVE-2026-42945Ito ang pinakamalubhang butas.
- Noon pa mang 2008Umiiral sa halos lahat ng pamantayang mga bersiyon sa pagtatayo
Iba Pang Kaugnay na mga Hadlang
- CVE-2026-42946: pinsala sa memorya
- CVE-2026-40701: pinsala sa memorya
- CVE-2026-42934: pinsala sa memorya
Sumaryo
CVE-2026-42945Ito ay NGINX, isang high-risk loophole sa kasaysayan:
- 18 taon: nakasulat na code mula noong 2008 Library
- CVSS 9.2: Mga natapong basura na maaaring humantong sa RCE
- Kalagayan ng trigger: gumagamit ng hindi pinangalanang paghuli + palitan ang mga nilalaman ng strando? + at iba pang mga utos
- Scope ng epekto: 9.75 milyong lugar sa buong daigdig, 2.54 milyong lugar sa Tsina
- Ginawang publiko ang PoC: Ginawang restoran ng GitHub + Qianqin
- Rehabilitation programme: upgrade o huli sa pamamagitan ng pangalang Grupo
Sa loob ng 18 taon, nagkaroon ng isang potensiyal na tagas, at inirekomenda na ang pagsasaayos ay i-upgrade o baguhin sa lalong madaling panahon.
Opisyal na mga patalastas:Mga http://my.f5.com/manage/s/article/K000161019
POC Warehouse:Mga http://github.com/Depth First Disclosures/Nginx-Rift
Technical analysis:Mga http://depthfirst.com/research/nginx-rift