Nginxin 18 vuoden lacuna CVE-2026-42945: Periaate PoC Kuntoutus valmis

🚨 Nginx Infiltration 18-year High Risk Gap CVE-2026-42945: Rationale, PoC and Rehabilitation Program
Turvallisuustutkimuslaitos, 13. toukokuuta 2026Syvyys ensinUnited F5.CVE-2026-42945:
- CVSS v4.0 Luokitus 9.2: korkean riskin porsaanreikä
- Puskurivuoto: voi johtaa etäkoodin suorittamiseen (RCE)
- 18 vuoden piilottaminen: Kirjoita koodi vuodesta 2008 Kirjasto
- 975 miljoonaa maailmaan vaikuttavaa aluetta: Kiina yli 2,54 miljoonaa verkkosivustoja vaikuttaa
- PoC julkistaa: Chiansin on onnistunut toipua
Tämä on...NGINX-ydinmoduuliHistoriallinen porsaanreikä, jossa hyökkääjät yksinkertaisesti lähettää erityisesti suunniteltu HTTP pyyntö ottaa palvelimen etäältä.
Yhteenveto puutteista
Perustietoa
| Reiän ominaisuudet | Yksityiskohdat |
|---|---|
| Reiän numero | CVE-2026-42945 |
| CVSS-luokitus | v4.0: 9,2 V3.1: 8,1 |
| Reikätyyppi | Pinopohjainen puskurin ylivuoto |
| Uhkatyyppi | Etäkoodin suoritus (RCE), palvelujen kieltäminen |
| Käyttöehdot | Ei tarvitse todentamista, vain rakentaa HTTP-pyyntöjä |
| Iskukomponentti | ngx http: n uudelleenkirjoitusmoduuli (NGINX: n ytimen sisäänrakennettu moduuli) |
| Discovery Agency | Syvyys ensin. |
Vaikutusten laajuus
- 97,5 miljoonaa kohdetta maailmanlaajuisestiVaikutus
- Kiina 2,54 miljoonaa verkkosivustoaVaikutus
- NGINX isännöi noin 1/3 maailmanlaajuisen sivustonVaikutus on valtava.
- Koodi alkaenVuosi 2008Kirjoittaa, vaanii18 vuotta
...
Kolme ehtoa on täytettävä samanaikaisesti.
Riitta vaaditaanMäärittele erityisedellytykset täyttävät ryhmät:
| Edellytykset | Huomautukset | Esimerkki: |
|---|---|---|
| Nimetön PCRE-sieppaus | Kirjoita komentotallennus uudelleen nimettömällä ryhmällä | Yksi, kaksi, kolme... |
| 2. Korvaa merkkijono kysymysmerkillä | Korvaa merkkijono sisältää ? merkit | /profile.php?id=$1&tab=2 |
| 3. Myöhempi/jos/asetettu | Seuraa muita komentoja ohjeiden jälkeen | {...} |
Esimerkki haavoittuvuudesta
# 易受攻击配置
rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
# 后跟其他指令
if ($arg_debug) {
set $debug_flag 1;
}
Tämä kokoonpano täyttää kolme ehtoa:Nimetön kaappaus $ 1/$2En tiedä.Korvaa merkkijonon sisältö?En tiedä.Tallenna, jos komentoEn tiedä.
Hyvä ajatus.
Kahden vaiheen väliset epäjohdonmukaisuudet
NGINX-moottoriKahden vaiheen käyttö:
- Vaihe I: Laske vaadittu puskurikoko
- Vaihe II: Kopioi tiedot puskuriin
Reiän ydin onon args tagin hallintavirhe:
| Vaihe | on argsin tila | Prosessilogiikka | Tulos |
|---|---|---|---|
| Pituuslaskentavaihe | 0, 0 | Palauta alkuperäinen tallennuspituus | Puskurin koon aliarviointi |
| Tietojen toistovaihe | = 1 | Soita ngx paeta uri kanssa 3 tavua per tavu | Puskurivuoto |
Erityiset prosessit
- Kirjoita komento uudelleenSisällytä nimetön kaappaus $ 1/$2
- Korvaa merkkijonoMukaan lukien? Trigger on args = 1
- Pituuslaskentavaihe: uusi alustettu alamoottori, on args = 0
- Palauttaa alkuperäisen pituuden: Pienet kasat puskurivyöhykkeitä jaettu
- Tietojen toistovaihe: käytä päämoottoria, on args = 1
- Soita ngx paeta uri: laajennettu tavuja, vuotaa ulos puskurivyöhykkeeltä
- Attacker Controlledable URI DataKirjoitetaan roiskealuetta
Käyttö
Cross Feng Shui:
- POST-pyynnön esittäjäJet-reaktorin muisti (koska URI ei voi sisältää nullatavuja)
- TiedotViereisen noutopisteen häiriö ngx pol t
- Väärä ngx allas siivous s, osoittaa järjestelmään()
- Pooli tuhottaessaLaukaiseva järjestelmä()
- Saavuttaa RCE
ASLR-vaikutus
- SLR käytössäMuu järjestäjä
- ASLR Poista käytöstä: etäkoodin suoritus (RCE)
Vaikutusten versio
NGINX Open Source
| Version vaihteluväli | Korjaa versio |
|---|---|
| 0, 6, 27 | 1.31.0, 1.30.1 |
NGINX Plus
| Version vaihteluväli | Korjaa versio |
|---|---|
| R32 R36 | R36 P4, R35 P2, R32 P6 |
Muut vaikuttavat komponentit
- NGINX-instituutin johtaja2, 16 . 21, 1
- NGINX App Production WAF:4.9
- NGINX-tietourakoitsija3.5.0 5.4.1
- NGINX Gateway Fabric: 1.3.0 - 2.5.1
- F5 Dos for NGINX: 4.8.0
🔥PoC Status
PoC julkistaa
- GitHub-versiovarasto:https://github.com/depthFirstDissulations/Nginx-Rift
- Chian Xin on palannut.: Uhkatietokeskuksen turvallisuustutkijoiden onnistunut paluu
- Tekniset yksityiskohdat julkistetaan.Muu järjestäjä
- Käyttö kentällä: Ei löytynyt
PC:n käyttömenetelmä
# 构建容器 ./setup.sh # 启动易受攻击的 NGINX 服务器 docker compose -f env/docker-compose.yml up # 执行 PoC 获取 Shell python3 poc.py --shell
Kuntoutusohjelma
Menetelmä 1: Päivitys
# 升级到修复版本 NGINX Open Source >= 1.31.0 NGINX Open Source >= 1.30.1 NGINX Plus >= R32 P6 NGINX Plus >= R36 P4 # 升级后重启 NGINX nginx -s reload
Menetelmät 2: Konfiguroinnin muuttaminen (rajoittamistoimenpiteet)
WillNimeämätön Capture GroupKorvaaNimi Capture Group:
# 易受攻击配置(未命名捕获) 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;
Nimi Capture GroupSe ei laukaise porsaanreikää.
Menetelmä 3: Tarkistuskokoonpano
Haavoittuvassa asemassa olevan kokoonpanon tarkistaminen:
# 搜索易受攻击的 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/
Hakuprosessi
Automaattinen järjestelmän löytö
Syvyys ensinTurva-analyysijärjestelmä:
- 6 tunnin kuluessaViisi kysymystä löytyi.
- 4 vahvistanut NGINX
- CVE-2026-42945Se on pahin reikä.
- Jo vuonna 2008on olemassa lähes kaikissa standardikoossa versioissa
Muut asiaankuuluvat porsaanreiät
- CVE-2026-42946: muistivauriot
- CVE-2026-40701: muistivauriot
- CVE-2026-42934: muistivauriot
Yhteenveto
CVE-2026-42945Se on NGINX, suuren riskin porsaanreikä historiassa:
- 18 vuotta: kirjallinen koodi vuodesta 2008 Kirjasto
- CVSS 9.2: Puskurivuodot, jotka voivat johtaa RCE:hen
- Trigger ehto: kirjoittaa komento käyttää nimetön tallennus + korvata merkkijonon sisältö? + ja muut komennot
- Vaikutusten laajuus: 9,75 miljoonaa kohdetta maailmanlaajuisesti, 2,54 miljoonaa kohdetta Kiinassa
- PoC julkaistu: GitHub-varasto + Qianqin on jäljennetty
- Kuntoutusohjelma: päivitys tai saalis nimen mukaan Ryhmä
18 vuoden aikana oli mahdollinen vuoto, ja suositeltiin, että konfiguraatiota päivitettäisiin tai muutettaisiin mahdollisimman pian.
Viralliset ilmoitukset:https://my.f5.com/manage/s/article/K000161019
PoC Varasto:https://github.com/depthFirstDissulations/Nginx-Rift
Tekninen analyysi:https://system.com/research/nginx-rift