← Kembali ke senarai

Rehabilitasi Kepala Sekolah PoC selesai

itadol5j

Navinx CVE-2026-42945

🚨 Infiltrasi Nginx 18 tahun Risiko Tinggi Celah CVE-2026-42945: Rasionale, PoC dan Program Rehabilitasi

Institut Riset Keamanan, 13 Mei 2026Kedalaman pertamaJohn F5.CVE-2026-42945KANTOR:

  • CVS CVSS v4.0 Peringkat 9,2Lubang celah berisiko tinggi
  • Tamparan Penimbal: dapat menyebabkan eksekusi kode jauh (RCE)
  • Bersembunyi 18 tahunKode tulis sejak 2008 Library
  • 975 juta situs mempengaruhi duniaCina lebih dari 2,54 juta situs web terpengaruh
  • Kemunculan PoCChiansin telah berhasil pulih

Ini adalah...Modul Inti NGINX NGINXSebuah lubang sejarah dimana para penyerang hanya mengirim permintaan HTTP yang dirancang khusus untuk mengambil alih server dari jarak jauh.

Ringkasan kesenjangan

Informasi dasar

Ciri-ciri Lubang Oles Perincian
Nomor lubang CVE-2026-42945
Penilaian CVS CVS v4.0: 9.2 v3.1: 8.1
Tipe Lubang Ole Buffer berbasis Stack Overflow
Jenis ancaman Eksekusi kode jarak jauh (RCE), penolakan layanan (DoS)
Kondisi untuk pemanfaatan Tidak perlu otentikasi, hanya construct permintaan HTTP
Komponen Impact modul ngx http penulisan ulang modul (built-in core NGINX module)
Agensi Discovery Kedalaman pertama.

Skop dampak

  • 97.5 juta situs globalImpact
  • 2 million4 juta situs webImpact
  • Host NGINX sekitar 1/3 dari situs web globalDampaknya sangat besar.
  • Kode kode dariTahun 2008Menulis, mengintai18 tahun

⚠️ Kondisi pemicu

3 syarat harus dipenuhi secara bersamaan.

Pemicu tikap diperlukanKonfigurasi kelompok yang memenuhi syarat tertentuKANTOR:

Kondisi Anotasi Contoh:
Tangkapan PCRE tak bernama Penulisan ulang tangkapan perintah dengan Kelompok tidak bernama Satu, dua, tiga...
2. Gantikan string dengan tanda tanya Renang Gantian berisi ? aksara /profile.php?id=$1&tab=2
3 3./if/set Ikuti perintah lain setelah instruksi [...]

Contoh kelemahan

# 易受攻击配置
rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
# 后跟其他指令
if ($arg_debug) {
    set $debug_flag 1;
}

Konfigurasi ini memenuhi tiga syarat:Tanpa nama ditangkap $ 1/$2Aku tidak tahu.Gantikan isi senar?Aku tidak tahu.Hujung belakang kota jika perintahAku tidak tahu.

Ini ide yang bagus.

Ketidakkonsistenan antara dua fase

Mesin skrip NGINXPenggunaan dua fase:

  • Phase I:Menghitung ukuran buffer yang diperlukan
  • Phase IISalin data ke buffer

Inti dari lubang adalahNama samaran adalah kesalahan manajemen tag argsKANTOR:

Phase Status args Logika Proses Logika Hasil
Fase perhitungan panjang gundik =0 Kembali panjang tangkapan asli Keanehan terhadap ukuran buffer
Fase reproduksi data =1 Panggil ngx escape uri dengan 3 byte per byte Tamparan Penimbal

Proses yang spesifik

  1. Perintah Penulisan UlangJangan sertakan tangkapan tak disebutkan namanya $ 1/$2
  2. Renang Gantikan RentetanTermasuk? Pemicu adalah args = 1
  3. Fase perhitungan panjang gundik: baru diinisialisasi subengine, adalah args = 0
  4. Panjang asli yang kembaliZona penyangga dibagikan
  5. Fase reproduksi dataGunakan mesin utama, adalah args = 1
  6. Panggil ngx escape uriExtended bytes, keluar dari zona penyangga
  7. Data URI Dapat Dikontrol PenyerangArea Spill Penulisan Hikmah

Utilisasi Air

Cross Feng ShuiKANTOR:

  • POST RequesterMemori reaktor Jet otax (karena URI tidak dapat berisi nullabyte)
  • Data mata-matangx pol t
  • Pembersihan kolam renang ngx palsu, menunjuk ke sistem()
  • Kolam renang ketika dihancurkanPemicu sistem () panggilan
  • Achieve RCE

ASLR Impact

  • ASLR diaktifkanPenyusun:
  • ASLR Dilumpuhkan: Eksekusi kode jauh (RCE)

Versi impact

Sumber Terbuka NGINX

Veron Range Versi Fix Ubuntu
0.6.27 – 1.30. 1.31.0, 1.30.1

NGINX Plus

Veron Range Versi Fix Ubuntu
– R32 – R36 R36 P4, R35 P2, R32 P6

Komponen lain yang terkena dampaknya

  • Pengurus Institut NGINX2 2.16 – 2.21.1
  • WAF Produksi Aplikasi NGINX:4.9 – 5.8.0
  • Kontraktor Informasi NGINX: 3.5.0 – 5.4.1
  • Fabric Gateway NGINX1.3.0 – 2.5.1
  • F5 Dos untuk NGINX4.8.0

Status 🔥PoC

Kemunculan PoC

Metode Penggunaan PC Terminologi

# 构建容器
./setup.sh

# 启动易受攻击的 NGINX 服务器
docker compose -f env/docker-compose.yml up

# 执行 PoC 获取 Shell
python3 poc.py --shell

Program Rehabilitasi Mukjizat

Metode: Meningkatkan

# 升级到修复版本
NGINX Open Source >= 1.31.0
NGINX Open Source >= 1.30.1
NGINX Plus >= R32 P6
NGINX Plus >= R36 P4

# 升级后重启 NGINX
nginx -s reload

Metodeologi: Pengubahan konfigurasi (ukuran mitigasi)

AkanKumpulan Tangkapan Tanpa NamaGantikan denganNama Kelompok TangkapanKANTOR:

# 易受攻击配置(未命名捕获)
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;

Nama Kelompok TangkapanIni tidak akan memicu celah.

Metode 3: Cek konfigurasi

Periksa konfigurasi rentan:

# 搜索易受攻击的 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/

Proses Discovery

Penemuan sistem terautomatik

Kedalaman pertamaSistem analisis astronomi:

  • Dalam 6 jamLima pertanyaan ditemukan.
  • 4 dikonfirmasi oleh NGINX
  • CVE-2026-42945Ini lubang terburuk.
  • Sejauh 2008Tidak ada dalam hampir semua versi build standar

Kelainan celah relevan

  • CVE-2026-42946Kerusakan memori
  • AVE-2026-40701Kerusakan memori
  • CVE-2026-42934Kerusakan memori

Ringkasan

CVE-2026-42945Ini adalah NGINX, sebuah celah berisiko tinggi dalam sejarah:

  • 18 tahun: kode tertulis sejak 2008 Library
  • CVS=HOS 9.2: Tumpahan buffer yang dapat menyebabkan RCE
  • Kondisi Pemicu form: menulis ulang perintah menggunakan tangkapan tidak bernama + ganti isi string? + dan perintah lain
  • Skop dampak: 9,75 juta situs global, 2.54 juta situs di Cina
  • Majalah PoC: Repositori GitHub + Qianqin telah direproduksi
  • Program Rehabilitasi: tatar atau tangkap dengan nama Group

Pada 18 tahun, terdapat potensi kebocoran, dan disarankan konfigurasinya ditingkatkan atau dimodifikasi sesegera mungkin.

Pengumuman resmiKANTOR:https://my.f5.com/manage/s/article/K000161019

Gudang PoCKANTOR:https://github.com/DepthFirstDiscloasures/Nginx-Rift

Analisis teknikalKANTOR:https://depthfirst.com/research/nginx-rift