Pada 15 Julai 2026, nginx mengeluarkan versi 1.30.4 (stable) dan 1.31.3 (mainline) untuk membaiki CVE-2026-42533, satu limpahan penimbal heap dengan skor CVSS 9.2. Ia tidak memerlukan pengesahan langsung: satu permintaan HTTP yang direka khas sudah memadai. Pada binaan lalai, akibatnya ialah proses worker ranap dan dimulakan semula — satu penafian perkhidmatan — dan apabila ASLR dimatikan atau boleh dipintas, pelaksanaan kod jarak jauh menjadi mungkin.
Pencetusnya: map + regex + kumpulan tangkapan
Puncanya bukan penghurai HTTP, tetapi penilaian skrip dua laluan dalam nginx: laluan yang mengira panjang dan laluan yang menulis nilai berkongsi keadaan tangkapan PCRE yang sama. Apabila arahan map yang mengandungi regex dinilai antara dua rujukan kepada kumpulan tangkapan yang sama (contohnya $1), keadaan berkongsi itu ditulis ganti secara senyap, kedua-dua laluan tidak sependapat tentang saiz penimbal, dan penulisan melepasi sempadan.
Dengan kata lain, bukan setiap nginx boleh dieksploitasi, tetapi julat versi terjejas amat luas: 0.9.6 hingga 1.30.3 (stable) dan 1.31.2 (mainline) — hampir semua binaan sejak 2011. Di sebelah komersial, NGINX Plus R33–R36 terjejas (dibaiki dalam R36 P7) dan 37.0.0.1–37.0.2.1 dibaiki dalam 37.0.3.1.
Mengapa ini tidak boleh ditangguh
Penyelidik sengaja menahan penulisan penuh dan PoC selama 21 hari selepas tampalan untuk memberi ruang kepada pentadbir menaik taraf. Tempoh itu sudah berlalu. Satu lagi kes pada tahun yang sama menunjukkan kelajuan eksploitasi: CVE-2026-42945 — limpahan heap "Nginx Rift" dalam ngx_http_rewrite_module yang ditampal pada Mei 2026 — dieksploitasi secara nyata kira-kira seminggu selepas pembaikan, dengan anggaran 5.7 juta pelayan nginx terdedah di Internet menjalankan versi yang berpotensi terjejas. Dua pepijat serupa dalam enam bulan ialah hujah kukuh menentang pelayan web yang "dipasang sekali dan tidak pernah disentuh".
Semakan tiga langkah
- Semak versi, tetapi jangan percaya
nginx -vsahaja: Debian dan Ubuntu memindahkan tampalan keselamatan ke nombor versi lama, jadi binaan yang masih melaporkan 1.24.0 mungkin sudah ditampal. Bagi pakej distribusi, baca revisi pakej melaluiapt policy nginxdan sahkan CVE tersebut dalamapt changelog nginx. Hanya binaan dari repositori rasmi nginx atau yang dikompil sendiri boleh dibandingkan terus dengan 1.30.4 / 1.31.3. - Semak sama ada konfigurasi anda menggunakan
mapdengan regex:grep -rn "map " /etc/nginx/dan cari entri padanan yang bermula dengan~, bersama rujukan berulang kepada kumpulan tangkapan seperti$1pada laluan permintaan yang sama. Tanpa gabungan itu, pendedahan anda jauh lebih kecil. - Semak sama ada worker dimulakan semula secara senyap:
grep -i "worker process.*exited on signal" /var/log/nginx/error.log. Keluar berulang dengan signal 11 ialah gejala klasik — dan dari sudut pelawat, ia kelihatan seperti 502 sekali-sekala sahaja, sebab itulah ia sering dianggap masalah rangkaian.
Cara menaik taraf
Pakej distribusi: sudo apt update && sudo apt install --only-upgrade nginx, kemudian sudo nginx -t && sudo systemctl reload nginx. Repositori rasmi atau kompil sendiri: naik taraf ke 1.30.4 / 1.31.3 atau lebih baharu, sahkan dengan nginx -t, kemudian reload. Reload tidak memutuskan sambungan sedia ada, jadi tiada tetingkap penyelenggaraan diperlukan. Perlu diingat: keluaran yang sama turut membaiki CVE-2026-60005 (pendedahan memori dalam ngx_http_slice_module) dan CVE-2026-56434 (use-after-free dalam ngx_http_ssi_module) — tiga isu selesai dalam satu naik taraf.
Jadikan "saya boleh menampal sendiri" sebagai kriteria pemilihan
Kelajuan anda bertindak atas satu nasihat keselamatan bergantung pada sama ada anda mempunyai akses root dan boleh memilih masa untuk reload. Pada pengehosan berkongsi, anda menunggu jadual penyedia dan biasanya tidak dapat membaca error.log penuh. Pada VPS sendiri, sepuluh minit memadai dari nasihat hingga reload. Nod SharkCloud di Jepun, Singapura, Hong Kong dan Amerika Syarikat semuanya instance bebas dengan versi sistem dan pelayan web di bawah kawalan anda — jadi satu nasihat keselamatan diuruskan pada hari ia keluar, bukan pada tetingkap penyelenggaraan berikutnya.