CVE-2026-42533: Kerentanan Kritis NGINX CVSS 9.2 — Heap Buffer Overflow pada Script Engine

CVE-2026-42533 adalah kerentanan kritis NGINX dengan CVSS 9.2 yang memungkinkan heap buffer overflow pada script engine via HTTP request. Patch dirilis 15 Juli 2026 di NGINX 1.30.4/1.31.3. Artikel ini membahas teknis kerentanan, mitigasi, dan langkah upgrade untuk administrator server Indonesia.

Share
CVE-2026-42533: Kerentanan Kritis NGINX CVSS 9.2 — Heap Buffer Overflow pada Script Engine

CVE-2026-42533: Kerentanan Kritis NGINX CVSS 9.2 — Heap Buffer Overflow pada Script Engine

Pada 15 Juli 2026, tim pengembang NGINX merilis patch darurat untuk kerentanan kritis yang memungkinkan attacker tanpa autentikasi memicu heap buffer overflow melalui HTTP request yang dimanipulasi. Kerentanan dengan nomor CVE-2026-42533 ini mendapat skor CVSS v4 sebesar 9.2 dan memengaruhi seluruh versi NGINX dari 0.9.6 hingga 1.31.2 — rentang waktu 15 tahun sejak fitur regex map diperkenalkan.

Bagi administrator server di Indonesia yang menjalankan NGINX sebagai reverse proxy, load balancer, atau web server — termasuk pengguna NGINX Ingress Controller di Kubernetes — kerentanan ini memerlukan tindakan segera.

Akar Masalah: Dua-Pass Evaluation pada Map Regex

CVE-2026-42533 hidup di script engine NGINX, komponen yang merangkai string dari directive pada waktu request. Kerentanan hanya muncul pada konfigurasi spesifik: map berbasis regex yang variable output-nya direferensikan dalam ekspresi string setelah capture dari regex match sebelumnya (seperti $1, $2).

Logika engine menggunakan evaluasi dua-pass. Pass pertama mengukur panjang byte yang dibutuhkan dan mengalokasikan buffer. Pass kedua menulis byte ke buffer. Kedua pass membaca shared capture state yang sama. Masalah muncul ketika evaluasi map regex di antara dua pass tersebut menimpa capture state:

  • Pass 1 (measuring): buffer dialokasikan untuk ukuran original capture ($1 dari location match)
  • Pass 2 (writing): data diisi dari capture yang berbeda — ukurannya dikendalikan attacker — buffer meluap
# Konfigurasi vulnerable: map regex dengan numbered capture
# Asumsi: location ~ ^/api/(.*)$ menangkap $1

map $uri $backend {
    ~^/service/(.+)$    "http://backend/$1";
    default              "http://default/";
}

server {
    listen 80;
    location ~ ^/api/(.*)$ {
        proxy_pass $backend;
    }
}
"Triggering CVE-2026-42533 dapat mem-crash worker process (DoS) atau, pada sistem tanpa ASLR, memungkinkan remote code execution. Dalam pengujian kami, exploit mencapai RCE 10 dari 10 bahkan dengan ASLR aktif."
— Stan Shaw (cyberstan), peneliti yang melaporkan kerentanan ke F5

Dampak dan Versi Terpengaruh

F5 merilis advisori yang mencakup produk-produk berikut:

  • NGINX Open Source: stable 1.x sebelum 1.30.4, mainline sebelum 1.31.3
  • NGINX Plus: sebelum r37.0.3.1
  • NGINX Ingress Controller: semua versi sebelum patch
  • NGINX Gateway Fabric
  • NGINX App Protect WAF
  • NGINX Instance Manager

Skor CVSS v4: 9.2 (Critical). Attack vector: network. Attack complexity: high. Privileges required: none. User interaction: none. Dampak kerahasiaan, integritas, dan ketersediaan: high.

Mitigasi Sementara dan Permanent Fix

Fix permanen: Upgrade ke NGINX 1.30.4 (stable) atau 1.31.3 (mainline), atau NGINX Plus r37.0.3.1.

# Debian/Ubuntu: update dari repo resmi
sudo apt update
sudo apt install nginx=1.30.4-*

# Atau build dari source
wget https://nginx.org/download/nginx-1.30.4.tar.gz
tar xzf nginx-1.30.4.tar.gz
cd nginx-1.30.4/
./configure --with-http_ssl_module --with-http_v2_module
make -j$(nproc)
sudo make install

# Verifikasi versi
nginx -v  # Harus: nginx version: nginx/1.30.4

Mitigasi sementara jika belum bisa upgrade: ubah numbered capture ($1, $2) menjadi named capture (?<name>...) pada map directive.

# Mitigasi: ganti numbered capture dengan named capture
map $uri $backend {
    ~^/service/(?<service_path>.+)$    "http://backend/$service_path";
    default                              "http://default/";
}

Namun perlu dicatat: mitigasi named capture hanya menutup jalur utama. Stan Shaw memperingatkan bahwa masih ada jalur sempit yang bisa mengeksploitasi kerentanan melalui named capture — jika map dan location regex mendefinisikan named group yang sama. Upgrade tetap satu-satunya solusi menyeluruh.

Pola Eksploitasi dan Konteks Keamanan Server

CVE-2026-42533 adalah heap overflow ketiga dalam kode expression-evaluation NGINX dalam dua bulan terakhir, setelah CVE-2026-42945 ("Rift") pada Mei 2026 dan CVE-2026-9256 pada rewrite module. Pola ini menunjukkan bahwa komponen scripting engine NGINX sedang dalam sorotan peneliti keamanan.

Pemeriksaan cepat konfigurasi untuk mengetahui apakah server terpapar:

# Cari konfigurasi yang menggunakan numbered capture di map
# Jalankan dari direktori konfigurasi NGINX
grep -rn "map.*~" /etc/nginx/ | grep -E '"[^"]*\$[0-9]+[^\"]*"'

grep -rn "map\s" /etc/nginx/sites-enabled/ | grep -E '\$[0-9]'

Jika perintah di atas menghasilkan output, kemungkinan server terpapar dan perlu upgrade segera.

Kesimpulan untuk Tim Operasional

CVE-2026-42533 adalah kerentanan serius yang membutuhkan respons cepat. Skor CVSS 9.2, kemampuan Remote Code Execution (meski dengan kompleksitas tinggi), dan cakupan versi yang sangat luas (15 tahun) menjadikannya prioritas tertinggi untuk patch. Administrator NGINX di Indonesia — terutama yang mengelola infrastruktur kritis — harus menjadwalkan upgrade sebelum akhir minggu ini.