Tim pengembang PHP telah menyusun ulang paket distribusi resmi Windows untuk versi PHP 8.2 hingga 8.5 guna mengatasi CVE-2026-111497, sebuah kerentanan kritis pada pustaka kompresi Brotli bawaan paket tersebut. Celah keamanan ini dapat memungkinkan peretas merusak memori sistem dan berpotensi mengeksekusi kode secara acak.
Pihak PHP menjelaskan bahwa celah ini dapat dieksploitasi melalui ekstensi cURL ketika ekstensi tersebut menjalankan dekompresi otomatis pada respons HTTP. Secara bawaan, cURL sebenarnya menonaktifkan fitur ini, namun berbagai aplikasi maupun pustaka klien HTTP pihak ketiga dapat mengaktifkannya sewaktu-waktu.
Paket hasil kompilasi ulang yang diberi nomor 8.5.12-1, 8.4.27-1, 8.3.36-1, serta 8.2.35-1 ini diluncurkan berselang lima hari seusai pembaruan 21 Oktober yang membenahi dua kerentanan eksekusi kode jarak jauh PHP2Shell. Paket terbaru memakai sumber kode dasar PHP yang serupa sehingga perbaikan terdahulu tetap terlindungi, dan kini menyertakan Brotli 1.2.1 yang telah diperbaiki.
PHP senantiasa menyertakan Software Bill of Materials (SBOM) berisi daftar komponen internal dalam tiap distribusinya. Berdasarkan daftar paket x64 Non Thread Safe pekan lalu pada keempat lini rilis tersebut, tercatat penggunaan Brotli 1.2.0 yang memang rentan terhadap eksploitasi.
Pengguna sistem operasi Windows sangat dianjurkan mengunduh paket mutakhir melalui situs unduhan resmi PHP. Berhubung versi dasar PHP tidak berganti, perintah php -v akan memperlihatkan angka yang identik sebelum dan setelah pembaruan. Penambahan sufiks -1 pada berkas, misalnya php-8.5.12-1-nts-Win32-vs17-x64.zip, bersama nilai hash SHA-256 pada laman web unduhan menjadi pembeda fisik instalasi baru.
Mekanisme dekompresi otomatis membuat cURL meminta konten terkompresi ke server lalu membongkarnya langsung. Pada kode PHP, parameter CURLOPT_ENCODING dipakai untuk menghidupkan fungsi ini, dan pengisian nilai string kosong berarti menerima semua tipe enkripsi yang didukung cURL.
Pustaka HTTP populer Guzzle menyetel nilai kosong tersebut secara otomatis pada permintaan via cURL, seperti tampak pada rilis 7.16.1 maupun 8.3.1. Merujuk kode pustaka tersebut serta laporan PHP, program yang membiarkan konfigurasi standar Guzzle otomatis memenuhi kriteria eksploitasi pada paket Windows edisi pekan lalu. Pihak The Hacker News sendiri belum menguji skenario ini di Windows.
Aksi penyerangan dapat terjadi saat aplikasi PHP berinteraksi dan mengunduh muatan respons kompresi termanipulasi dari peladen web berbahaya.
Pihak Google menyematkan nilai keparahan 9.2 dari 10 (Kritis) pada metrik standar CVSS 4.0. Sementara itu, Red Hat memberi peringkat risiko 8.1 (Penting) mengacu pada standar CVSS 3.1.
Peneliti keamanan Imperva sukses melancarkan eksekusi kode lewat celah ini pada salah satu distribusi resmi Node.js setelah menempuh beberapa kali percobaan. Laporan PHP tidak mencantumkan adanya insiden peretasan aktif. Penilaian CISA per 23 Oktober juga tidak menemukan bukti penyalahgunaan di lapangan, sehingga belum dimasukkan ke katalog Known Exploited Vulnerabilities pada pembaruan tanggal tersebut.
Temuan celah ini pertama kali dilaporkan oleh para peneliti OpenAI. Menyusul pengumuman resmi 21 Oktober, Google langsung memublikasikan perbaikan pada pustaka Brotli 1.2.1, 1.1.1, serta 1.0.10. Ekosistem perangkat lunak lain yang menyematkan paket Brotli mandiri seperti Node.js dan Bun juga telah merilis tambalan.
Rilis PHP tidak memuat panduan mitigasi sementara bagi server yang belum bisa diperbarui. OpenAI menyarankan penonaktifan proses dekompresi Brotli mandiri pada klien HTTP sampai sistem ditambal, seraya memperingatkan bahwa menghapus penanda br pada header Accept-Encoding semata “tidak mencegah server mengirimkannya secara sepihak.”
Penerapan anjuran tersebut pada kode PHP berarti menghindari pengaturan opsi CURLOPT_ENCODING, sebab cURL tidak akan mengurai respons tanpa konfigurasi itu. Di lingkungan Guzzle, langkah ini setara dengan menyetel opsi permintaan decode_content menjadi false, yang menghentikan pembongkaran konten otomatis secara menyeluruh termasuk untuk format gzip.



