PHP2Shell: Dua RCE Kritis pada PHP dan Checklist Mitigasi Server

PHP2Shell dan urgensi pembaruan PHP

PHP2Shell adalah sebutan untuk dua kerentanan kritis pada runtime PHP, yaitu CVE-2026-109618 dan CVE-2026-109619. Keduanya dapat berdampak pada eksekusi kode jarak jauh (RCE) tanpa autentikasi pada konfigurasi dan jalur pemrosesan tertentu. Karena PHP-FPM, mod_php, php-cgi, FrankenPHP, LiteSpeed, container, dan hosting bersama dapat menjalankan runtime yang rentan, pemeriksaan versi harus dilakukan pada server yang benar-benar melayani request.

Apa yang perlu dipahami developer dan operator

CVE-2026-109618 berkaitan dengan kondisi out-of-memory yang dapat meninggalkan state internal request dalam keadaan tidak valid sebelum proses cleanup selesai. CVE-2026-109619 berkaitan dengan state global yang masih menunjuk ke memori request setelah memori tersebut dilepas. Keduanya merupakan use-after-free di level runtime, sehingga validasi aplikasi saja bukan pengganti patch PHP.

Risikonya mencakup crash, kebocoran data dari memori proses, dan RCE. Eksploitasi tidak boleh diuji pada server produksi menggunakan PoC yang beredar. Pengujian sembarangan dapat merusak worker PHP, meninggalkan file atau proses asing, serta menghilangkan bukti forensik.

Versi PHP yang perlu diperbarui

  • PHP 8.5: perbarui ke 8.5.12 atau yang lebih baru.
  • PHP 8.4: perbarui ke 8.4.27 atau yang lebih baru.
  • PHP 8.3: perbarui ke 8.3.36 atau yang lebih baru.
  • PHP 8.2: perbarui ke 8.2.35 atau yang lebih baru.

PHP 8.1 dan versi lebih lama sudah berstatus EOL dari proyek PHP. Jika vendor distribusi menyediakan backport keamanan, verifikasi nomor paket dan advisory vendor; jika tidak, rencanakan migrasi ke cabang yang masih didukung.

Checklist mitigasi

  1. Inventarisasi semua binary PHP, PHP-FPM pool, container image, VM, panel hosting, dan appliance yang menerima trafik web.
  2. Catat versi runtime dari environment yang berjalan, bukan hanya versi package manager atau image lokal.
  3. Prioritaskan domain publik dan endpoint yang menerima multipart/form-data atau input tidak tepercaya.
  4. Upgrade ke release yang sudah diperbaiki, restart worker secara terencana, lalu verifikasi versi dan kesehatan aplikasi.
  5. Untuk container, rebuild image dari base image yang sudah dipatch dan lakukan redeploy; jangan hanya mengubah tag tanpa memeriksa digest.
  6. Untuk PHP-FPM dan mod_php, pastikan seluruh pool/worker memakai binary baru dan tidak ada service lama yang masih listen.
  7. Jika patch belum tersedia, isolasi layanan yang rentan, batasi akses jaringan, dan koordinasikan mitigasi dengan vendor hosting. WAF hanya lapisan tambahan, bukan pengganti patch.
  8. Review log web server, PHP-FPM, autentikasi, proses, file baru, akun, dan koneksi keluar untuk indikator kompromi.
  9. Setelah upgrade, rotasi credential yang mungkin terbaca dari proses atau filesystem jika ditemukan indikasi kompromi.

Penutup

Prioritas praktisnya adalah mengetahui runtime yang benar-benar aktif, memperbarui cabang PHP yang didukung, dan memeriksa sistem internet-facing terlebih dahulu. Jangan mengandalkan framework, CMS, atau WAF untuk menutup kerentanan di runtime PHP.

Sumber resmi dan referensi

Transparansi: Artikel ini disusun bersama Codekop AI berdasarkan sumber yang tercantum, lalu ditinjau dan disunting oleh Fauzan Falah. AI dapat keliru, jadi silakan cek kembali sumber asli.

Komentar