PHP2Shell: Kerentanan Kritis PHP yang Menghantam 70% Website
Penjelasan tentang CVE-2026-109618 dan CVE-2026-109619, dampaknya terhadap website berbasis PHP, dan cara melindungi server kamu.
Pada Oktober 2026, dua kerentanan kritis ditemukan di PHP itu sendiri (bukan di framework atau CMS tertentu). Karena PHP menggerakkan sekitar 70% website di dunia, dampaknya luar biasa luas.
Dua CVE ini dikenal sebagai PHP2Shell:
- CVE-2026-109618: Exploit melalui multipart request dengan form fields bersarang 12+ level atau lebih dari 50 file parts, yang menghabiskan memori PHP saat parsing input
- CVE-2026-109619: Exploit melalui field
php_session_upload_progressdi multipart request yang memicu bug stale-state
Seberapa serius?
Dalam 24 jam pertama setelah eksploitasi terdeteksi, CrowdSec mencatat 450+ penyerang aktif yang memanfaatkan PHP2Shell. Ini bukan teori, ini sudah terjadi di lapangan.
Siapa yang terdampak?
Semua website yang menjalankan PHP, terlepas dari framework atau CMS yang digunakan.
Ketersediaan patch tergantung versi PHP yang kamu pakai:
- PHP 8.2 - 8.5: Patch resmi tersedia (8.2.35, 8.3.36, 8.4.27, 8.5.12). Upgrade sekarang
- PHP 7.4, 8.0, 8.1: Hanya source backport minimal. Perlu build dari source atau tunggu distro/vendor
- PHP 5.4 - 7.3: Tidak ada patch dari PHP project. Harus upgrade versi mayor atau tunggu vendor
Data W3Techs menunjukkan sekitar 48% website PHP tidak punya patch resmi yang bisa langsung di-install. Mereka harus menunggu vendor, rebuild, atau migrasi.
Cara melindungi server
1. Upgrade PHP (solusi permanen)
Kalau kamu pakai PHP 8.2+, langsung upgrade:
sudo apt update && sudo apt upgrade php
Atau untuk versi spesifik:
sudo apt install php8.4=8.4.27-*
2. Virtual patching dengan WAF (solusi sementara)
Kalau belum bisa upgrade (testing compatibility, menunggu vendor, atau pakai PHP lama), pasang WAF sebagai layer tambahan.
CrowdSec menyediakan virtual patch gratis dan open-source:
sudo cscli collections install crowdsecurity/appsec-virtual-patching crowdsecurity/appsec-generic-rules
Virtual patch ini bekerja di level reverse proxy (Nginx, Apache, HAProxy, Traefik) dan memblokir request yang cocok dengan pola exploit sebelum sampai ke PHP.
Penting: Virtual patching bukan pengganti upgrade PHP. Ini hanya membeli waktu sampai kamu bisa menerapkan patch permanen.
3. Blokir IP penyerang yang sudah diketahui
CrowdSec mempublikasikan blocklist IP yang sudah terkonfirmasi menjalankan exploit PHP2Shell. Ini bisa ditambahkan ke firewall untuk memblokir penyerang sebelum mereka mencoba.
Kalau pakai Docker
Kalau PHP kamu jalan di container Docker, kamu tidak perlu rebuild image sekarang juga. Pasang CrowdSec WAF di reverse proxy di depan container sebagai solusi sementara. Tapi tetap rebuild image dengan PHP yang sudah dipatch sesegera mungkin.
Yang harus dilakukan sekarang
- Cek versi PHP:
php -v - Kalau 8.2+: Upgrade sekarang
- Kalau di bawah 8.2: Pasang WAF virtual patch sebagai perlindungan sementara
- Periksa log akses: Cari request multipart yang mencurigakan
- Rencanakan migrasi kalau masih pakai PHP 7 atau lebih lama