Tim pengembang PHP telah menerbitkan patch untuk kerentanan yang dijuluki PHP2Shell, sebuah celah yang memungkinkan penyerang meningkatkan akses dari level eksekusi skrip di aplikasi menjadi perintah sistem operasi alias shell. Perbaikan disebar melalui rilis pemeliharaan pada cabang PHP yang masih didukung, dan pengelola server diminta melakukan pembaruan sesegera mungkin karena celah ini dapat dieksploitasi dari jarak jauh tanpa memerlukan kredensial apa pun.
PHP2Shell menjadi perhatian karena sifatnya yang berantai. Penyerang tidak perlu menembus lapisan keamanan hosting secara langsung. Cukup menemukan jalur masuk pada aplikasi berbasis PHP, lalu memanfaatkan kelemahan pada pemrosesan masukan di mesin PHP untuk melompat ke lingkungan sistem. Begitu lompatan itu berhasil, penyerang dapat membaca berkas konfigurasi, mengambil kredensial basis data, hingga menanam web shell yang bertahan lama di server.
Mengapa Kerentanan Ini Dianggap Serius
Yang membuat PHP2Shell menonjol adalah posisinya di lapisan fondasi. Sebagian besar aplikasi web populer, mulai dari sistem manajemen konten hingga kerangka kerja kustom, berjalan di atas PHP. Ketika celah berada di mesin PHP, dampaknya tidak terbatas pada satu aplikasi saja, melainkan menyebar ke seluruh situs yang berbagi runtime yang sama pada satu server.
Risiko bertambah pada lingkungan shared hosting, tempat banyak akun pengguna menempati satu mesin. Jika satu akun berhasil dieksploitasi, penyerang berpotensi bergerak menyamping ke akun lain, terutama bila konfigurasi pemisahan hak akses antar pengguna tidak ketat. Pada server yang menjalankan PHP dalam mode modul Apache atau PHP-FPM dengan pengaturan izin berkas yang longgar, pergerakan lateral semacam ini relatif mudah dilakukan.
Karena itu, pakar keamanan menempatkan pembaruan PHP2Shell sebagai prioritas tinggi, bukan pekerjaan pemeliharaan rutin yang bisa ditunda ke jadwal maintenance bulanan. Server yang belum diperbarui sebaiknya dianggap berisiko sampai patch diterapkan dan proses layanan PHP dijalankan ulang.
Versi Aman yang Perlu Dipakai
Acuan utama bukan nomor versi tertentu yang beredar di daftar pesan singkat, melainkan rilis pemeliharaan terbaru pada setiap cabang yang masih menerima dukungan keamanan. Pengelola server disarankan memastikan instalasi berada pada cabang PHP 8.2, 8.3, atau 8.4 dengan patch terbaru, sementara instalasi yang masih bertahan di cabang lama perlu segera dinaikkan karena cabang tersebut sudah tidak lagi menerima perbaikan keamanan.
Langkah pertama adalah memastikan versi yang benar-benar berjalan, bukan versi yang tertulis di dokumentasi internal. Perintah php -v pada baris perintah menampilkan versi untuk antarmuka CLI, sedangkan versi yang dipakai server web bisa berbeda. Berkas phpinfo() atau keluaran php -i pada lingkungan FPM memberikan gambaran yang lebih akurat mengenai binary yang sedang melayani permintaan pengunjung.
Perlu dicatat bahwa banyak distribusi Linux menambal paket PHP mereka secara mandiri tanpa mengubah nomor versi utama. Artinya, versi yang tampak lama belum tentu rentan, dan versi yang tampak baru belum tentu sudah ditambal. Cara paling aman adalah mengikuti kanal pembaruan distribusi masing-masing dan membaca catatan perubahan paket yang disediakan vendor.
Cara Melakukan Pembaruan
Debian dan Ubuntu
Jalankan sudo apt update kemudian sudo apt upgrade untuk menarik paket PHP terbaru dari repositori resmi. Jika instalasi memakai PPA pihak ketiga, pastikan PPA tersebut sudah menyediakan paket yang diperbarui sebelum melanjutkan. Setelah paket terpasang, jalankan ulang layanan dengan sudo systemctl restart php8.3-fpm atau nama layanan yang sesuai, lalu muat ulang Apache atau Nginx agar konfigurasi baru terbaca.
RHEL, AlmaLinux, dan Rocky Linux
Gunakan sudo dnf update php\* untuk memperbarui seluruh paket PHP sekaligus. Pada sistem yang memakai repositori Remi untuk mendapatkan versi lebih baru, aktifkan modul stream yang diinginkan lalu ulangi pembaruan. Setelah itu jalankan sudo systemctl restart php-fpm dan periksa kembali versi yang aktif.
Windows dan IIS
Unduh paket PHP terbaru dari situs resmi PHP untuk Windows, hentikan layanan web, ganti berkas pada direktori instalasi, lalu sesuaikan kembali php.ini bila ada perubahan format konfigurasi. Setelah layanan dijalankan kembali, uji aplikasi untuk memastikan tidak ada ekstensi yang gagal dimuat.
Kontainer Docker
Perbarui tag citra PHP ke rilis pemeliharaan terbaru, bangun ulang citra aplikasi, lalu jalankan ulang kontainer. Hindari penggunaan tag mengambang seperti latest tanpa penguncian versi, karena menyulitkan pelacakan versi yang benar-benar berjalan di produksi.
Mitigasi Sementara
Jika pembaruan belum dapat dilakukan, beberapa langkah pengurangan risiko bisa diterapkan. Batasi akses ke berkas konfigurasi dan kredensial, nonaktifkan fungsi PHP yang tidak dibutuhkan seperti eksekusi perintah sistem, terapkan aturan web application firewall untuk menyaring permintaan mencurigakan, serta jalankan PHP dengan pengguna sistem berhak akses minimum. Mitigasi ini bersifat sementara dan tidak menggantikan patch.
Verifikasi dan Pemantauan
Setelah pembaruan, verifikasi versi yang berjalan, uji fungsi utama aplikasi, dan periksa log server web untuk aktivitas tidak wajar. Pengelola server juga dianjurkan memeriksa berkas yang berubah dalam beberapa hari terakhir, mencari tanda-tanda web shell atau akun tak dikenal. Pembaruan hanya menutup celah ke depan, sementara kompromi yang sudah terjadi tetap harus diselidiki secara terpisah.
Bagi penyedia hosting dan pengelola layanan bersama, koordinasi menjadi kunci. Pengguna perlu diberi tahu jadwal pembaruan, dampak potensial terhadap aplikasi mereka, serta tenggat waktu yang jelas. Tanpa komunikasi yang baik, pembaruan keamanan sering tertunda karena kekhawatiran akan gangguan layanan, padahal penundaan itulah yang memperbesar risiko.
Komentar (0)