
PHP telah merilis pembaruan darurat yang memperbaiki dua kelemahan kritis dalam bahasa pemrograman itu sendiri, yang memungkinkan penyerang tanpa akun untuk menjalankan kode di server web. Perbaikan tersebut terdapat pada PHP 8.5.12, 8.4.27, 8.3.36, dan 8.2.35, dan tim PHP mengatakan bahwa hanya pembaruan yang sepenuhnya melindungi server.
PHP telah merilis pembaruan darurat yang memperbaiki dua kelemahan kritis dalam bahasa pemrograman itu sendiri, yang memungkinkan penyerang tanpa akun untuk menjalankan kode di server web. Perbaikan tersebut terdapat pada PHP 8.5.12, 8.4.27, 8.3.36, dan 8.2.35, dan tim PHP mengatakan bahwa hanya pembaruan yang sepenuhnya melindungi server.
Kerentanan tersebut, yang
secara keseluruhan disebut PHP2Shell ,
berada di runtime PHP, bukan di aplikasi mana pun, sehingga situs tetap rentan
meskipun kode situs itu sendiri aman. Risiko tertinggi terjadi pada server yang
menggunakan mod_php Apache, di mana eksploitasi yang berfungsi memicu serangan
sebelum kode aplikasi apa pun dijalankan.
Kedua celah keamanan
tersebut diberi peringkat 9.2 pada skala CVSS v4.0 dan memiliki
pengidentifikasi CVE-2026-109618 dan CVE-2026-109619 . PHP mempublikasikannya sekitar waktu
rilis yang dijadwalkan pukul 14:00 UTC pada tanggal 21 Oktober, sehari setelah
detailnya bocor menjelang pengungkapan yang direncanakan pada tanggal 22
Oktober.
Para peneliti di Wiz, California, dan OpenAI
menemukan dan melaporkan celah keamanan tersebut, yang memengaruhi hampir
setiap versi PHP mulai dari PHP 5.4.
Siapa yang Terdampak?
Setiap instalasi PHP yang
melayani permintaan web berisiko, termasuk PHP-FPM, Apache mod_php, php-cgi,
FrankenPHP, dan LiteSpeed, menurut pemberitahuan
keamanan PHP .
Karena kelemahan tersebut terletak pada mesinnya dan bukan pada kode situs mana pun, bahkan halaman "Hello World" sederhana pada versi PHP yang rentan pun dapat diserang. Peringatan tersebut menyebutkan mod_php sebagai risiko tertinggi, dengan eksploitasi yang telah dibuktikan di mana satu permintaan yang tidak terautentikasi memicu serangan sebelum kode aplikasi apa pun berjalan. PHP-FPM berperilaku berbeda, karena ia mematikan worker ketika permintaan gagal di awal proses pengaturan.
Untuk salah satu dari dua celah keamanan tersebut, analisis PHP sendiri mendukung bahwa FPM rentan tetapi menyatakan bahwa belum ada eksploitasi FPM lengkap yang terbukti; celah keamanan kedua terbukti mencapai eksekusi kode pada mod_php dan PHP-FPM, meskipun jalur FPM di sana bergantung pada operasi di dalam aplikasi yang sedang berjalan.
Penyerang juga dapat
membaca memori dari proses pekerja PHP, yang mungkin menyimpan kata sandi,
token otentikasi, kunci API, dan sertifikat milik permintaan lain, tanpa
terlebih dahulu mendapatkan hak eksekusi kode.
Para peneliti
mendemonstrasikan pembacaan memori pekerja langsung ini terhadap aplikasi yang
tidak mereka kendalikan, sehingga membuatnya independen dari aplikasi yang
berjalan di atas PHP.
Apa yang perlu
diinstal
Perbarui runtime PHP yang
melayani permintaan web, lalu mulai ulang Apache, PHP-FPM, dan semua worker PHP
yang berjalan lama. Memperbarui aplikasi seperti WordPress atau Laravel tidak
memperbarui runtime PHP di bawahnya; itu berasal dari paket server, host, atau
image container.
|
Cabang PHP |
Rentan |
Versi perbaikan
pertama |
|
8.5 |
di bawah 8.5.12 |
8.5.12 |
|
8.4 |
di bawah 8.4.27 |
8.4.27 |
|
8.3 |
di bawah 8.3.36 |
8.3.36 |
|
8.2 |
di bawah 8.2.35 |
8.2.35 |
PHP 8.1 dan versi yang
lebih lama tidak lagi menerima pembaruan dari proyek PHP, dan PHP 8.2 mencapai
akhir masa pakainya pada 31 Desember 2026. Untuk cabang yang lebih lama, tim
keamanan PHP telah menerbitkan backport sumber untuk PHP 7.4 , 8.0 , dan 8.1 untuk membantu orang-orang yang membangun dari sumber
atau menunggu vendor.
Distribusi Linux dan
vendor dukungan jangka panjang telah menerima patch tersebut lebih dulu,
sehingga paket distribusi dapat menyertakan perbaikan tersebut dengan nomor
versi yang tampak lama; periksa changelog paket untuk CVE, seperti yang
disarankan Debian , bukan string versinya.
Jika Anda Belum Dapat
Memperbarui
Hanya pembaruan yang
merupakan solusi lengkap. Langkah-langkah di bawah ini mengurangi paparan
terhadap jalur serangan tertentu dan tidak membuat server aman, menurut
pemberitahuan tersebut.
Untuk CVE-2026-109618,
atur memory_limit=-1 agar aplikasi tidak dapat menimpanya, jaga agar
post_max_size tetap rendah, dan terapkan batasan ukuran permintaan di server
web atau proxy. Jangan gunakan RLIMIT_AS atau RLIMIT_DATA sebagai pengganti,
karena PHP memperingatkan bahwa keduanya dapat memicu jalur kerentanan yang
sama.
Untuk CVE-2026-109619,
atur session.upload_progress.enabled=0 dan mulai ulang setiap worker, dan pada
PHP 8.5 juga atur fatal_error_backtraces=0. Menonaktifkan kemajuan unggahan
sesi memblokir jalur sesi yang dikonfirmasi tetapi tidak varian lain, dan tidak
ada perubahan konfigurasi yang sepenuhnya mengurangi kelemahan ini kecuali
dengan melakukan pembaruan.
Pengaturan tersebut
adalah pengaturan yang beredar sebagai solusi sementara sebelum patch , dan
rilis tersebut mengkonfirmasi bahwa itu bukanlah perbaikan yang lengkap.
Kemajuan unggahan sesi diaktifkan secara default dan dapat mencapai penanganan
sesi sebelum PHP selesai menyiapkan permintaan, itulah sebabnya mengapa hal itu
berperan dalam salah satu jalur serangan yang dikonfirmasi untuk
CVE-2026-109619 dan mengapa menonaktifkannya tidak berpengaruh pada
CVE-2026-109618.
"Satu-satunya yang
bisa saya katakan adalah satu-satunya solusi adalah dengan melakukan
patching/upgrade PHP. Sayangnya, saya tahu terlalu banyak," tulis
pengembang inti PHP, Gina Peter Banyard, sebelum rilis tersebut, menanggapi
seseorang yang menyarankan pengaturan tersebut mungkin sudah cukup.
Setelah melakukan
pembaruan, tinjau pengaturan memori Anda. Perbaikan ini menambahkan batas
memori keras baru, dan jika batas tersebut tercapai, proses akan berakhir dan
penanganan penutupan akan berhenti berjalan, jadi periksa `memory_limit` dan
`post_max_size` sesuai dengan kebutuhan aplikasi Anda.
Jika Anda sudah melakukan
patching tetapi mencurigai adanya pembobolan sebelumnya, para peneliti
menyarankan untuk memperhatikan permintaan multipart yang tidak biasa diikuti
oleh kesalahan batas memori atau respons HTTP 500 yang berulang, cookie respons
PHPSESSID yang sangat besar, dan restart pekerja PHP yang tidak dapat
dijelaskan.
Apakah sedang
diserang?
Sebelum patch dirilis,
Cloudflare mengatakan pihaknya melihat upaya awal untuk mengeksploitasi celah
keamanan tersebut. "Kami melihat serangan awal muncul dan sedang
memperbarui mitigasi seiring munculnya vektor baru," kata CTO Cloudflare, Dane Knecht , menyebut aturan firewall
yang diterapkan Cloudflare sebagai solusi sementara dan mendesak administrator
untuk melakukan patch.
Tidak ada sumber yang
mengkonfirmasi keberhasilan pembobolan. watchTowr , yang mereproduksi CVE-2026-109618, melaporkan
tidak ada eksploitasi di lapangan hingga pukul 11:26 UTC pada 21 Oktober, dan
tidak ada celah keamanan yang tercantum dalam katalog Kerentanan yang
Dieksploitasi milik CISA pada saat itu.
Beberapa organisasi menonaktifkan layanan sebagai tindakan pencegahan, bukan sebagai respons terhadap serangan siber. BambooHR menonaktifkan layanannya di seluruh Amerika Serikat, Kanada, dan Irlandia, memperingatkan bahwa penggajian akan terganggu, dan mengatakan bahwa mereka belum memiliki perkiraan waktu pemulihan.
Di Belanda, MijnOverheid, DigiD, situs majelis rendah parlemen, pusat keamanan siber nasional, dan beberapa sistem pendidikan mengalami gangguan, seperti yang dilaporkan oleh stasiun televisi NOS ; pusat tersebut mengatakan bahwa mereka belum melihat celah keamanan tersebut disalahgunakan tetapi mendesak semua orang untuk melakukan perbaikan.
Bagaimana Hasilnya
Sebuah kebocoran
mempercepat perilisan tersebut. Pada 20 Oktober, seperti yang dilaporkan oleh The Hacker News , sebuah
postingan di Hacker News mengatakan bahwa dua celah keamanan eksekusi kode
jarak jauh PHP, dengan dua pengenal CVE, dijadwalkan untuk diungkapkan pada 22
Oktober, hanya berdasarkan informasi tepercaya.
PHP memposting
pemberitahuan awal pada malam itu dan memindahkan tanggal rilis ke 21 Oktober.
Klaim kebocoran tentang skor CVSS 10.0 bukanlah dari PHP; PHP memberi peringkat
kedua celah keamanan tersebut 9.2.
Kerentanan tersebut
ditemukan oleh Wiz Research, California, dan tim Keamanan Codex dari OpenAI,
yang bekerja sama dengan tim keamanan PHP dan tim Gemini dari Google untuk
memperbaikinya. Kode dasarnya telah ada di PHP selama lebih dari satu dekade.
Para peneliti mengatakan
bahwa model AI membantu mengubah kelemahan yang sudah lama ada ini menjadi
celah keamanan yang berfungsi, memungkinkan seorang peneliti melakukan dalam
waktu sekitar satu minggu apa yang menurut mereka akan memakan waktu berbulan-bulan
bagi sebuah tim jika menggunakan metode lain.
Calif, yang menelusuri
asal usul bug tersebut hingga penelitian PHP dari tahun 2004, mengatakan bahwa
mengetahui sejarah target tetap penting, dan bahwa model saat ini tidak dapat
diandalkan untuk memulai dari primitif yang sudah berusia dua puluh tahun dan
tidak jelas dengan sendirinya.
Update: watchTowr
Melaporkan Upaya Eksploitasi, Namun Belum Ada Konfirmasi Pembobolan
watchTowr, yang
sebelumnya melaporkan tidak melihat adanya serangan, menyatakan dalam pemberitahuan baru pada pukul 14:19 UTC
tanggal 21 Oktober bahwa mereka mengamati "upaya eksploitasi aktif"
terhadap CVE-2026-109618 dan CVE-2026-109619. Cloudflare mengatakan mereka
melihat lalu lintas serangan terhadap pelanggan mereka dan mengamati penyerang mengubah
muatan mereka untuk melewati aturan firewall mereka, yang telah diaktifkan
secara default pada pukul 03:02 UTC, sebelum patch tersebut. Hingga pembaruan
ini, belum ada sumber yang melaporkan pembobolan server tertentu yang
terkonfirmasi.
PHP Foundation mengatakan pengungkapan terkoordinasi tersebut
berantakan sebelum rilis. Sekitar pukul 20:00 UTC pada tanggal 20 Oktober,
perusahaan riset Calif secara keliru memposting video bukti konsep yang sedang
berjalan, dan pada pukul 07:41 UTC pada tanggal 21 Oktober, sekitar enam jam
sebelum perbaikan dirilis, vendor Chainguard menerbitkan image yang berisi
patch tersebut, memungkinkan siapa pun untuk mempelajari perbaikan tersebut
sementara pengguna lain menunggu untuk memperbarui.
Update: PHP Foundation
Menyatakan Audit Tahun 2024 Menemukan Tanda-Tanda Awal Cacat Tersebut
Dalam unggahan yang sama,
PHP Foundation mengatakan bahwa seorang pengembang inti pertama kali menemukan
tanda-tanda celah keamanan kehabisan memori di balik CVE-2026-109618 selama
audit eksternal PHP tahun 2024, tetapi serangan yang berfungsi hanya berupa
teori dan tidak ada jalur konkret untuk eksekusi kode yang ditemukan saat itu.
Berbagai solusi yang
saling bersaing berisiko merusak kompatibilitas, membuka jalur penolakan
layanan (denial-of-service), atau memaksa perubahan pada ekstensi pihak ketiga,
dan tim kecil kesulitan mencapai kesepakatan, sehingga pengerjaan solusi
terhenti selama berbulan-bulan. Yayasan tersebut menyebut penundaan itu sebagai
"kegagalan struktural" dalam proses pengambilan keputusan dan sumber
dayanya.
Laporan tahun 2026 dari
Calif, OpenAI, dan Wiz, yang menggunakan alat AI, menetapkan celah keamanan
yang berfungsi dan memperjelas dampak penuh dari kelemahan tersebut, serta
memprioritaskan perbaikannya. Yayasan tersebut mengatakan bahwa sejak saat itu mereka
telah mengubah cara pengambilan keputusan keamanan dan menambah staf serta
perangkat untuk mendeteksi masalah serupa lebih cepat.
(Berita ini diperbarui
setelah dipublikasikan pada 21 Oktober 2026, untuk menambahkan laporan-laporan
selanjutnya tentang upaya eksploitasi dan penjelasan dari PHP Foundation
mengenai sejarah celah keamanan tersebut.)