PHP2Shell adalah nama populer dua celah kritis di mesin PHP, CVE-2026-109618 dan CVE-2026-109619, yang memungkinkan eksekusi kode jarak jauh tanpa autentikasi. Patch dirilis pada 21 Oktober 2026 dan CISA memasukkan keduanya ke katalog KEV pada 26 Oktober 2026. Semua server yang menjalankan PHP untuk melayani web perlu diperiksa dan diperbarui sekarang.
Ringkasan PHP2Shell
- CVE: CVE-2026-109618 (korupsi memori saat kondisi kehabisan memori mengganggu penyiapan request) dan CVE-2026-109619 (status internal request yang sudah dibebaskan masih dipakai kembali, sejenis use-after-free).
- Produk terdampak: PHP yang melayani permintaan web, baik lewat Apache mod_php, PHP-FPM, php-cgi, FrankenPHP maupun LiteSpeed. Risiko tertinggi ada pada mod_php.
- Versi terdampak dan perbaikan: cabang 8.2 sebelum 8.2.35, 8.3 sebelum 8.3.36, 8.4 sebelum 8.4.27, dan 8.5 sebelum 8.5.12. PHP 8.1 dan yang lebih lama tidak lagi menerima pembaruan dari proyek PHP, sehingga tidak ada rilis resmi untuk 7.4, 8.0 dan 8.1. Karena tingkat keparahannya, tim keamanan PHP hanya menyediakan backport source minimal untuk ketiga cabang itu bagi yang membangun PHP dari source; paket siap pakai untuk cabang ini datang dari distribusi Linux atau vendor LTS. PHP 5.4 sampai 7.3 juga terdampak dan tidak punya perbaikan dari proyek PHP.
- Jenis: eksekusi kode jarak jauh (RCE) tanpa autentikasi melalui kerusakan memori.
- Skor: CVSS v4.0 9.2 (Critical) untuk keduanya, dinilai oleh tim keamanan PHP sebagai CNA. NVD memberi CVSS v3.1 9.8 untuk CVE-2026-109618 dan 8.1 untuk CVE-2026-109619, sedangkan Red Hat menilai keduanya Important (CVSS v3.1 8.1) dengan alasan eksploitasi yang andal butuh kondisi memori yang presisi. Pengenal yang sempat beredar sebelum rilis membawa skor 10.0 yang keliru, menurut PHP Foundation yang dikutip Tenable.
- Status eksploitasi: dieksploitasi di dunia nyata. Masuk CISA KEV pada 26 Oktober 2026, dengan tenggat perbaikan bagi instansi federal AS 29 Oktober 2026.
Apa yang terjadi pada PHP2Shell
Dua celah ini berada di mesin PHP itu sendiri, bukan di aplikasi atau plugin tertentu. Yang pertama muncul ketika PHP kehabisan memori di tengah menyiapkan data request, sehingga data yang baru setengah terinisialisasi diperlakukan seolah valid. Yang kedua membuat sisa status milik satu request masih bisa dipakai oleh request berikutnya pada worker yang sama setelah dibebaskan. Keduanya adalah kelas bug memori yang bisa berujung pada eksekusi kode dengan hak akun worker web. Menurut advisori PHP, pada mod_php serangan dapat berhasil sebelum kode aplikasi dijalankan sama sekali.
Akibatnya, memperbarui WordPress, Drupal, Joomla atau framework di atas PHP tidak menyelesaikan masalah. Yang harus diperbarui adalah runtime PHP-nya. Silakan baca juga penjelasan dasar tentang remote code execution (RCE) bila istilah ini masih baru bagi Anda.
Kronologi singkat (per 29 Oktober 2026)
- 17 Oktober: Amazon Threat Intelligence mencatat satu percobaan eksploitasi pada honeypot MadPot miliknya, empat hari sebelum pengungkapan publik.
- 20 Oktober: pengenal CVE beredar di internet sebelum waktunya. Tim PHP mengumumkan rilis keamanan untuk 21 Oktober pukul 14:00 UTC.
- 21 Oktober: patch dan advisori dirilis sekitar pukul 14:00 UTC. Menurut PHP Foundation yang dikutip Tenable, jadwal ini dimajukan sehari dari rencana semula 22 Oktober setelah pengenal CVE bocor. CISA dan NCSC Inggris menerbitkan peringatan. watchTowr menyatakan mengamati eksploitasi kedua celah di jaringan honeypot-nya.
- 23 Oktober: PHP menerbitkan advisori informasi tentang jalur RCE lain di fitur session upload progress (CVE-2026-115560) yang dinilai kecil kemungkinannya karena butuh kombinasi konfigurasi dan kode aplikasi yang tidak lazim. PHP menyarankan session.upload_progress.enabled=0 sampai rilis perbaikan reguler berikutnya.
- 24 Oktober: peneliti Adel Karimi melaporkan eksploitasi berhasil terhadap honeypot Apache mod_php dengan PHP 8.4.26, konsisten dengan CVE-2026-109618.
- 26 Oktober: CISA menambahkan CVE-2026-109618 dan CVE-2026-109619 ke katalog KEV.
Siapa yang terdampak dan mengapa penting
PHP menjalankan sebagian besar situs yang bahasa server-side-nya bisa dikenali, sekitar 69 persen menurut data W3Techs yang dikutip Tenable. Karena itu cakupannya sangat luas: situs perusahaan, toko online, portal instansi, sistem jurnal, hingga panel hosting. Perangkat jaringan yang menyematkan PHP juga ikut dinilai. Per 22 Oktober, Palo Alto Networks menyatakan semua versi PAN-OS dan Panorama terdampak dan belum ada rilis perbaikan, sementara Fortinet dan Cisco masih memeriksa produk mereka. Status vendor bisa berubah, jadi cek advisori terbaru.
Perlu dicatat bahwa laporan keberhasilan eksploitasi yang dirinci secara publik paling kuat mengarah ke CVE-2026-109618 pada Apache mod_php. Klaim Dream Research bahwa celah ini dirangkai dengan celah kernel Linux Fragnesia (CVE-2026-46300) untuk mendapatkan akses root pada sejumlah firewall belum dikonfirmasi pihak independen, dan vendornya tidak disebutkan. Skor CVSS juga bisa berbeda antar penilai. Panduan membaca skor CVSS menjelaskan mengapa angka saja tidak cukup untuk menentukan prioritas, dan katalog CISA KEV memberi sinyal yang lebih tegas: celah ini sudah dipakai menyerang.
Cara mengamankan server dari PHP2Shell
Urutannya: inventarisasi, patch, restart, lalu verifikasi.
- Inventarisasi semua PHP. Cari setiap runtime PHP, termasuk yang tertanam di panel hosting, image container, dan aplikasi pihak ketiga. Versi pada binary CLI bisa berbeda dari versi yang dipakai PHP-FPM atau Apache, jadi periksa keduanya.
- Perbarui ke versi perbaikan: 8.5.12, 8.4.27, 8.3.36 atau 8.2.35, atau paket backport dari distribusi Anda. Untuk 7.4 sampai 8.1, gunakan paket dari distribusi atau vendor LTS, bangun dari backport source resmi PHP bila Anda memang mengompilasi sendiri, atau pindah ke cabang yang didukung. Ingat juga bahwa PHP 8.2 berakhir masa dukungannya pada 31 Desember 2026.
- Restart semua worker PHP. Paket baru tidak menambal proses yang sedang berjalan. Bangun ulang image container yang membawa PHP.
- Jika belum bisa diperbarui, batasi akses internet ke sistem tersebut. CISA meminta sistem berbasis PHP yang belum bisa diperbarui, termasuk yang masih memakai PHP 8.1 atau lebih lama, dimatikan sampai diperbarui, dan NCSC Inggris menyarankan hal serupa. WAF, termasuk aturan Cloudflare, hanya penahan sementara dan hanya melindungi lalu lintas yang melewatinya.
- Pengaturan sementara. Advisori PHP menyebut memory_limit=-1 (dikunci agar tidak bisa diubah aplikasi) serta post_max_size yang rendah untuk CVE-2026-109618, dan session.upload_progress.enabled=0 (pada PHP 8.5 ditambah fatal_error_backtraces=0) untuk CVE-2026-109619, lalu restart semua worker. PHP menegaskan langkah ini hanya mengurangi jalur serangan tertentu dan tidak ada perubahan konfigurasi yang menutup celah sepenuhnya.
Satu catatan stabilitas: menurut Tenable, PHP 8.4.27 dan 8.5.12 bisa membuat sebagian aplikasi yang memakai SimpleXML crash akibat perbaikan garbage collector yang terpisah dari patch keamanan. Perbaikannya sudah digabung ke source tetapi belum dirilis per 26 Oktober. Jangan turun versi karena itu membuka kembali PHP2Shell. Tetap pakai versi baru dan pantau log. Langkah pemeriksaan yang lebih rinci ada di panduan cek server terdampak PHP2Shell.
Deteksi: apa yang dicari di log
Pada tingkat tinggi, perhatikan request multipart yang sangat besar atau bersarang dalam, error PHP kehabisan memori, worker atau child process Apache yang berulang kali crash, worker PHP yang menjalankan shell atau membuat koneksi keluar, file baru di web root yang tidak Anda kenal, akun atau cron job baru. CISA juga mengarahkan ke repositori aturan SIGMA miliknya untuk membantu deteksi. Sebelum me-restart server yang dicurigai, simpan log, konfigurasi, dan jika memungkinkan memori worker seperti disarankan Google Cloud dan Mandiant, karena restart menghapus bukti. Patch tidak membersihkan web shell yang sudah ada, jadi server yang sempat terbuka di internet sejak 17 Oktober perlu diperiksa kompromi, bukan hanya diperbarui.
Baca juga: Celah Kritis VMware vCenter VMSA-2026-0006.
Pertanyaan yang Sering Diajukan
Apakah menyembunyikan versi PHP cukup?
Tidak. Menyembunyikan header versi hanya menyulitkan pemindaian sederhana, tidak menutup celah. Satu-satunya perbaikan lengkap adalah memperbarui PHP.
Apakah hosting bersama (shared hosting) ikut terdampak?
Ya, jika penyedia hosting menjalankan PHP yang belum diperbarui. Pengguna biasanya tidak bisa menambal sendiri, jadi tanyakan kepada penyedia hosting versi PHP dan status patch-nya.
Apakah PHP2Shell hanya soal WordPress?
Bukan. Celahnya ada di mesin PHP, sehingga semua aplikasi PHP ikut terpapar, dari CMS populer sampai aplikasi buatan sendiri.
Kesimpulan
PHP2Shell adalah contoh bahwa celah di lapisan runtime tidak bisa diselesaikan dengan memperbarui aplikasi di atasnya. Inventarisasi PHP, patch, restart worker, dan periksa tanda kompromi adalah urutan kerja yang masuk akal. Bila organisasi Anda membutuhkan bantuan menilai paparan atau memverifikasi hasil patch, tim Linuxhackingid melayani asesmen keamanan lewat halaman layanan kami. Akses hanya ke sistem milik Anda atau yang Anda punya izin tertulis untuk menguji, karena akses ilegal dapat dipidana berdasarkan Pasal 332 KUHP yang berlaku sejak 2 Januari 2026.
Every article is reviewed by the practice lead who ran the work before it is published.
