PHP2Shell: Celah RCE Kritis di PHP, Segera Update Server Anda

By Last updated on October 22, 2026

Kalau Anda mengelola server yang menjalankan PHP, termasuk WordPress, Drupal, Joomla, atau MediaWiki, ada kabar yang tidak bisa ditunda: PHP2Shell. Ini adalah dua celah Remote Code Execution (RCE) kritis yang bisa dieksploitasi tanpa login. Patch resminya baru dirilis tanggal 21 Oktober 2026.

Artikel ini merangkum apa yang terjadi, siapa yang terdampak, dan apa yang harus Anda lakukan sekarang.

PHP2Shell: celah RCE kritis di PHP

PHP2Shell: celah RCE kritis di PHP

Apa Itu PHP2Shell?

PHP2Shell adalah nama populer untuk dua kerentanan di PHP:

CVEJenis bugCVSS
CVE-2026-109618Use-after-free pada unserializer upload-progress9.2 (Critical)
CVE-2026-109619Use-after-free pada backtrace fatal error + type confusion di OPcache9.2 (Critical)

Dampaknya serius:

  • Eksekusi kode jarak jauh tanpa autentikasi, yang berarti server bisa diambil alih penuh.
  • Kebocoran memori proses (CVE-2026-109618), yang bisa membocorkan password, token autentikasi, API key, dan sertifikat yang sedang ada di memori worker.

Tim peneliti Wiz mendemonstrasikan RCE tanpa autentikasi terhadap image container terbaru WordPress, Drupal, dan Joomla.

Kenapa Bisa Terjadi?

Akar masalahnya ada di penanganan fatal error di PHP, terutama saat kondisi out-of-memory. Setelah memori dibebaskan (freed), ada data internal yang tertinggal dan masih bisa dipakai oleh request berikutnya di worker process yang sama. Dalam dunia keamanan ini disebut use-after-free.

Penyerang memanfaatkan “sisa” data itu untuk merusak memori, lalu mengarahkan alur eksekusi ke kode buatan mereka.

Alur serangan PHP2Shell (disederhanakan)

Alur serangan PHP2Shell (disederhanakan)

Ada satu hal yang bikin kasus ini menarik. Kode yang bermasalah sudah ada lebih dari satu dekade. Menurut Wiz, model AI generasi terbaru mempercepat proses analisis memori dan penyesuaian exploit, yang sebelumnya butuh “berbulan-bulan” kerja tim spesialis. Jadi jangan heran kalau celah lama bisa tiba-tiba jadi praktis dieksploitasi.

Siapa yang Terdampak?

Hampir semua. Berikut status versinya:

Cabang PHPStatusVersi aman
8.5Rentan jika di bawah 8.5.128.5.12
8.4Rentan jika di bawah 8.4.278.4.27
8.3Rentan jika di bawah 8.3.368.3.36
8.2Rentan jika di bawah 8.2.358.2.35
8.1 dan lebih lama (termasuk 7.x dan 5.x)RentanTidak ada patch
Versi PHP minimal yang sudah aman dari PHP2Shell

Versi PHP minimal yang sudah aman dari PHP2Shell

Beberapa catatan penting:

  • PHP 8.1 ke bawah sudah end-of-life. Tidak ada patch resmi. Satu-satunya jalan adalah pindah ke versi yang masih didukung.
  • Semua SAPI terdampak: PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, dan LiteSpeed.
  • Risiko paling tinggi ada di Apache mod_php, karena serangan bisa berhasil sebelum kode aplikasi Anda sempat berjalan.
  • Prasyarat konfigurasinya adalah fitur Session Upload Progress, yang aktif secara default.

Apakah Sudah Dieksploitasi?

Ya. watchTowr melaporkan sudah melihat percobaan eksploitasi aktif terhadap kedua CVE. Proof-of-concept juga sudah tersedia untuk publik. Embargo sempat bocor tanggal 20 Oktober, sehari sebelum patch resmi keluar.

Artinya, kita tidak punya waktu santai. Server yang mengekspos PHP ke internet sebaiknya dianggap sedang diincar.

Cara Mengecek Versi PHP

Cek versi PHP di server Anda:

php -v

Kalau server memakai PHP-FPM, versinya bisa berbeda dengan CLI. Cek juga service-nya:

php-fpm8.3 -v
# atau lihat service yang aktif
systemctl list-units | grep php

Di shared hosting atau cPanel, cek versi lewat menu MultiPHP Manager atau Select PHP Version.

Cara Update PHP

Contoh untuk Ubuntu/Debian yang memakai paket PHP dari repository. Sesuaikan nomor versinya dengan yang Anda pakai:

sudo apt update
sudo apt install --only-upgrade php8.3 php8.3-fpm php8.3-cli php8.3-common

Atau upgrade semua paket yang tertunda:

sudo apt update && sudo apt upgrade

Setelah itu restart service dan pastikan versinya sudah naik:

sudo systemctl restart php8.3-fpm
# jika memakai Apache mod_php
sudo systemctl restart apache2

php -v

Pastikan hasilnya minimal 8.5.12, 8.4.27, 8.3.36, atau 8.2.35. Perlu diingat bahwa repository distro kadang butuh waktu sebelum paket terbarunya tersedia. Kalau belum muncul, cek lagi dalam beberapa jam atau pantau advisory dari distro Anda.

Untuk Docker, tarik ulang image PHP terbaru lalu build dan deploy ulang container-nya. Restart container saja tidak cukup kalau image-nya masih versi lama.

Bagaimana Kalau Belum Bisa Update?

Ada langkah sementara untuk mengurangi paparan, misalnya mematikan fitur Session Upload Progress lewat php.ini:

session.upload_progress.enabled = 0

Tapi baca baik-baik: ini bukan solusi lengkap. watchTowr menegaskan bahwa satu-satunya perbaikan menyeluruh adalah update ke versi yang sudah dipatch, dan perubahan konfigurasi saja tidak cukup. PHP Foundation juga menyebut langkah sementara hanya mengurangi paparan. Anggap ini sekadar penahan sampai Anda sempat update.

Langkah tambahan yang masuk akal selama masa transisi:

  • Batasi akses publik ke endpoint yang tidak perlu, dan pertimbangkan WAF.
  • Pantau log akses dan log error PHP, terutama lonjakan fatal error atau out of memory.
  • Pastikan backup terbaru tersedia dan bisa direstore.

Kalau Server Anda PHP 8.1 atau Lebih Lama

Jangan menunggu patch yang tidak akan datang. Rencanakan migrasi ke PHP 8.2 atau lebih baru, lalu uji kompatibilitas plugin, tema, dan aplikasi Anda. Untuk WordPress, cek dulu kompatibilitas plugin sebelum naik versi, dan lakukan di staging, bukan langsung di produksi.

Checklist Cepat

  1. Cek versi PHP di semua server, termasuk PHP-FPM dan container.
  2. Update ke 8.5.12, 8.4.27, 8.3.36, atau 8.2.35.
  3. Restart PHP-FPM, Apache, atau container, lalu verifikasi versinya.
  4. Kalau masih di PHP 8.1 ke bawah, rencanakan migrasi sekarang.
  5. Sementara menunggu, nonaktifkan session.upload_progress.enabled dan perketat monitoring.
  6. Rotasi password, API key, dan token kalau ada indikasi server pernah diserang, mengingat celah ini bisa membocorkan isi memori.

Penutup

PHP2Shell mengingatkan kita bahwa celah yang tidur bertahun-tahun bisa tiba-tiba jadi masalah besar, apalagi sekarang proses mencari dan memanfaatkan celah makin cepat. Update PHP rutin, jangan biarkan versi end-of-life tetap hidup di produksi, dan punya prosedur patch yang jelas.

Kalau Anda butuh bantuan mengecek atau mengupdate PHP di server, atau mengamankan WordPress dari serangan seperti ini, silakan hubungi saya.

Sumber

About The Author

About image

Founder Gegeriyadi.com, layanan yang sudah 10 tahun bergerak di bidang Web Development & WordPress Security Services yang juga intens update seputar SEO dan juga Web Optimization...