Pengelola Website Wajib Siaga! PHP2Shell Picu Ancaman Serius bagi Server yang Belum Di-update
Dua celah keamanan PHP yang diumumkan 21 Oktober 2026 memungkinkan orang asing mengambil alih server website tanpa password. Apa risikonya, website mana yang terdampak, termasuk pengguna PHP 8.1, dan bagaimana saya menutupnya.
Dua celah keamanan serius ditemukan pada PHP, bahasa pemrograman yang digunakan oleh berbagai website di internet, termasuk WordPress. Kerentanan yang dijuluki PHP2Shell ini berpotensi memungkinkan penyerang menjalankan perintah dari jarak jauh di server tanpa harus mengetahui kata sandi atau memiliki akun administrator.
Kerentanan tersebut menjadi perhatian bagi pemilik website, developer, administrator server, dan penyedia hosting. Jika PHP yang digunakan belum mendapatkan pembaruan keamanan, celah ini berpotensi dimanfaatkan untuk mencuri data, mengubah konten website, hingga mengambil alih sebagian kendali server.
Artikel ini membahas kronologi pengumuman PHP2Shell, risiko yang ditimbulkan, daftar versi yang perlu diperiksa, serta langkah pembaruan dan pengamanan server untuk pemilik website maupun tim teknis.
Kapan Celah Keamanan PHP2Shell Diumumkan?
- 21 Oktober 2026: dua kerentanan PHP diumumkan dengan kode CVE-2026-109618 dan CVE-2026-109619. Ubuntu juga menerbitkan pembaruan keamanan terkait dan mengategorikan ancaman tersebut sebagai Critical.
- 22 Oktober 2026, sekitar pukul 11.20 WIB: pembaruan keamanan diterapkan pada sebuah server Ubuntu 24.04 yang menjalankan PHP 8.3. Proses pembaruan dilaporkan berlangsung sekitar dua menit, sementara website tetap beroperasi normal.
Pengumuman kerentanan keamanan dapat diikuti oleh peningkatan aktivitas pemindaian internet yang dilakukan penyerang untuk menemukan server yang belum diperbarui. Karena itu, jeda antara publikasi informasi kerentanan dan pemasangan patch sebaiknya dibuat sesingkat mungkin.
Apa Itu PHP2Shell?
Bayangkan sebuah website seperti restoran yang memiliki dapur bersama. PHP bertugas memproses permintaan pengunjung dan menyiapkan halaman yang diminta. Agar pelayanan berlangsung cepat, satu sistem dapat menangani banyak permintaan secara bergantian.
PHP2Shell berkaitan dengan kelemahan dalam pengelolaan memori dan kondisi pemrosesan permintaan. Dalam keadaan tertentu, masalah tersebut dapat menyebabkan data atau kondisi internal yang seharusnya terisolasi tidak ditangani dengan benar.
Situasi ini dapat dianalogikan seperti sisa bahan dari pesanan sebelumnya yang tertinggal dan memengaruhi pesanan berikutnya. Jika penyerang berhasil memanfaatkan kondisi tersebut, kelemahan pengelolaan data internal dapat membuka jalan bagi eksekusi perintah yang tidak semestinya di server.
Secara teknis, kedua kerentanan tersebut berkaitan dengan kondisi pemrosesan PHP yang dapat berujung pada eksekusi kode jarak jauh atau remote code execution (RCE). Dampaknya bergantung pada konfigurasi sistem, hak akses proses PHP, serta kemampuan penyerang mengeksploitasi kelemahan yang ada.
Apa Risiko PHP2Shell bagi Website?
Ancaman utama dari kerentanan ini adalah kemungkinan eksploitasi dari jarak jauh tanpa autentikasi. Artinya, penyerang tidak selalu perlu memiliki akun administrator atau mengetahui kata sandi untuk mencoba memanfaatkan celah tersebut.
Jika eksploitasi berhasil, penyerang berpotensi melakukan tindakan yang dapat dijalankan oleh proses PHP atau akun sistem yang berhasil dikuasainya. Beberapa risiko yang perlu diwaspadai meliputi:
- Pencurian data. Penyerang dapat mencoba mengakses database yang berisi data pengguna, alamat email, nomor telepon, informasi transaksi, atau artikel yang belum diterbitkan apabila sumber daya tersebut dapat dijangkau.
- Perubahan tampilan website. Halaman utama dapat dimodifikasi, artikel bisa disisipi konten berbahaya, atau informasi pada website diganti tanpa izin.
- Penyisipan halaman judi online dan spam. Website yang berhasil dibobol dapat dimanfaatkan untuk menampilkan halaman judi online, tautan spam, atau konten tersembunyi yang merusak reputasi SEO.
- Pengalihan pengunjung ke situs berbahaya. Penyerang dapat mencoba mengarahkan pengunjung ke halaman phishing, penipuan, atau file yang mengandung malware.
- Pemasangan backdoor. File atau mekanisme akses tersembunyi dapat ditanam agar penyerang bisa kembali masuk meskipun kerentanan awal sudah ditutup.
- Perambatan ke website lain. Situs yang berada di server yang sama juga berpotensi terancam apabila pemisahan akun, izin file, dan isolasi antaraplikasi tidak diterapkan dengan baik.
Dampak serangan tidak berhenti pada kerusakan teknis. Website dapat kehilangan peringkat di Google, ditandai sebagai berbahaya oleh browser, kehilangan kepercayaan pembaca atau pelanggan, hingga menghadapi konsekuensi hukum apabila terjadi kebocoran data pribadi.
Website Apa Saja yang Terdampak PHP2Shell?
Website yang menggunakan PHP dengan versi atau paket yang belum mendapatkan perbaikan terkait berpotensi terdampak. Ini termasuk situs berbasis WordPress, Laravel, CodeIgniter, Joomla, dan berbagai aplikasi PHP yang dikembangkan secara khusus.
Website yang benar-benar tidak menggunakan PHP tidak terdampak secara langsung oleh kerentanan pada PHP ini. Meski demikian, komponen perangkat lunak lainnya tetap perlu diperiksa untuk memastikan keamanan sistem secara menyeluruh.
Pemilik website yang menggunakan layanan hosting sebaiknya meminta konfirmasi kepada penyedia layanan mengenai status pembaruan PHP. Pastikan jawaban tersebut merujuk pada versi yang benar-benar digunakan oleh website, bukan hanya versi PHP yang tersedia pada server secara umum.
Bagaimana Jika Website Masih Menggunakan PHP 8.1?
PHP memiliki siklus dukungan untuk setiap versi utamanya. PHP 8.1 telah mengakhiri dukungan resmi dari proyek PHP pada 31 Desember 2025 sehingga tidak lagi menerima pembaruan keamanan reguler dari upstream PHP.
Namun, pengguna PHP 8.1 pada Ubuntu 22.04 masih dapat memperoleh perbaikan tertentu melalui pemeliharaan paket oleh Ubuntu. Patch dari distribusi Linux tersebut berbeda dengan pembaruan yang diterbitkan langsung oleh proyek PHP.
- PHP 8.1 dari repositori Ubuntu 22.04: periksa apakah paket sudah diperbarui ke revisi yang mencakup perbaikan PHP2Shell.
- PHP 8.1 dari sumber lain: pastikan penyedia paket telah menyediakan patch yang sesuai. Jika tidak tersedia, pertimbangkan migrasi ke PHP 8.2 atau versi yang lebih baru dan masih didukung.
- Hosting dengan control panel atau container: hubungi penyedia layanan atau administrator untuk memastikan image, paket, dan layanan PHP telah diperbarui.
Patch yang disediakan Ubuntu dapat membantu melindungi sistem dari kerentanan tertentu, tetapi bukan pengganti migrasi jangka panjang. Penggunaan PHP 8.1 sebaiknya diakhiri melalui proses upgrade yang mempertimbangkan kompatibilitas aplikasi, plugin, tema, dan framework.
Versi PHP yang Sudah Mendapat Perbaikan
Versi PHP upstream yang disebut telah memuat perbaikan terkait adalah PHP 8.5.12, 8.4.27, 8.3.36, dan 8.2.35, atau versi lebih baru yang mencakup patch tersebut. Administrator perlu memastikan kembali versi perbaikan yang berlaku melalui sumber resmi PHP dan distribusi paket yang digunakan.
Ubuntu menggunakan nomor revisi paket tersendiri. Karena itu, nomor versi yang terlihat pada sistem dapat berbeda dari nomor rilis upstream PHP meskipun patch keamanan telah diterapkan.
Berdasarkan pemberitahuan keamanan Ubuntu USN-8948-1, revisi paket yang disebut telah diperbaiki adalah sebagai berikut:
| Versi Ubuntu | Versi PHP | Revisi Paket yang Diperbaiki |
|---|---|---|
| Ubuntu 26.10 | PHP 8.5 | 8.5.9-0ubuntu2.1 |
| Ubuntu 26.04 LTS | PHP 8.5 | 8.5.4-0ubuntu1.5 |
| Ubuntu 24.04 LTS | PHP 8.3 | 8.3.6-0ubuntu0.24.04.13 |
| Ubuntu 22.04 LTS | PHP 8.1 | 8.1.2-1ubuntu2.28 |
Nomor paket tersebut perlu dicocokkan dengan pemberitahuan resmi sesuai versi Ubuntu yang digunakan. Jangan hanya mengandalkan angka versi utama PHP ketika menilai apakah server telah mendapatkan patch.
Sebagai contoh, server Ubuntu 24.04 dapat tetap menampilkan PHP 8.3.6 karena nomor versi dasarnya tidak berubah, sementara revisi paketnya sudah mencakup perbaikan keamanan. Pemindai yang tidak mengenali mekanisme backport patch dari Ubuntu berpotensi salah menyimpulkan bahwa server masih rentan.
Langkah yang Harus Dilakukan Pemilik Website
- Identifikasi pengelola server. Pastikan apakah pembaruan ditangani sendiri, oleh developer, administrator sistem, atau penyedia hosting.
- Periksa versi PHP yang digunakan. Pastikan versi dan sumber paket sesuai dengan pembaruan keamanan yang tersedia.
- Pasang pembaruan resmi. Gunakan repositori tepercaya dan ikuti petunjuk yang sesuai dengan sistem operasi server.
- Restart layanan PHP. Pastikan proses PHP-FPM atau layanan terkait telah dimulai ulang sehingga menggunakan paket yang sudah diperbarui.
- Uji seluruh website. Periksa halaman utama, dashboard, login, formulir, API, dan fungsi penting lainnya setelah pembaruan.
- Periksa indikasi kompromi. Jika server sebelumnya rentan, tinjau file asing, akun administrator baru, perubahan konten, log akses, dan halaman spam yang tidak dikenal.
- Rencanakan upgrade PHP. Website yang masih menggunakan PHP 8.1 perlu memiliki rencana migrasi ke versi yang masih didukung.
Lapisan Keamanan Tambahan untuk Server
Memasang patch merupakan langkah utama untuk menutup kerentanan yang sudah diketahui. Namun, pembaruan tersebut tidak otomatis menghilangkan backdoor yang mungkin telah dipasang sebelumnya atau mencegah serangan melalui kelemahan lain.
Administrator dapat memperkuat perlindungan dengan menerapkan sejumlah langkah tambahan untuk membatasi dampak jika sebuah aplikasi berhasil disusupi.
- Memisahkan website pada server yang sama. Gunakan akun sistem dan izin akses berbeda untuk mengurangi risiko perambatan dari satu website ke website lainnya.
- Membatasi fungsi PHP. Konfigurasi
disable_functionsdapat digunakan untuk menonaktifkan fungsi sistem yang tidak diperlukan aplikasi. Pengaturan ini harus diuji karena dapat mengganggu fitur tertentu dan tidak menggantikan patch keamanan. - Membatasi akses file. Gunakan izin filesystem dan, jika sesuai, konfigurasi
open_basediruntuk membatasi akses PHP terhadap direktori yang tidak diperlukan. - Memperkuat konfigurasi web server. Terapkan header keamanan yang relevan dan minimalkan informasi versi perangkat lunak yang ditampilkan kepada publik.
- Memantau aktivitas server. Periksa log Nginx, PHP-FPM, dan sistem operasi untuk mendeteksi aktivitas mencurigakan serta menyiapkan proses pemulihan.
- Menyiapkan backup. Simpan salinan cadangan secara terpisah dan pastikan proses pemulihan dapat dijalankan ketika terjadi insiden.
Panduan Teknis: Memperbarui PHP 8.3 di Ubuntu 24.04
Administrator server Ubuntu 24.04 yang menjalankan PHP 8.3 dapat melakukan pembaruan secara bertahap untuk memperkecil risiko gangguan. Pada salah satu implementasi, server yang melayani 17 website PHP diperbarui dengan memprioritaskan paket PHP, menguji konfigurasi, lalu memeriksa kembali seluruh website.
Perintah berikut merupakan contoh prosedur. Sesuaikan daftar paket, nama layanan, dan nomor revisi dengan kondisi server. Pastikan paket target benar-benar tersedia di repositori resmi sebelum menjalankan pembaruan.
1. Periksa pembaruan yang tersedia.
sudo apt-get update
apt list --upgradable 2>/dev/null | grep -i php
dpkg -l | awk '/^ii +php/{print $2, $3}'
Langkah tersebut menampilkan paket PHP yang dapat diperbarui sekaligus versi paket yang sedang terpasang. Catat hasilnya sebagai pembanding setelah proses upgrade.
2. Verifikasi pembaruan keamanan.
Cocokkan revisi paket yang tersedia dengan USN-8948-1 dan informasi CVE terkait. Jangan hanya mengandalkan nomor versi utama PHP untuk menentukan status keamanan.
3. Perbarui paket PHP, uji konfigurasi, lalu restart layanan.
PKGS=$(apt list --upgradable 2>/dev/null \
| grep -o '^php8\.3-[a-z0-9-]*' \
| sort -u)
if [ -n "$PKGS" ]; then
sudo env DEBIAN_FRONTEND=noninteractive
apt-get install -y --only-upgrade
-o Dpkg::Options::=--force-confold $PKGS
fi
sudo php-fpm8.3 -t
sudo systemctl restart php8.3-fpm
systemctl is-active php8.3-fpm
Perintah tersebut membatasi pembaruan pada paket PHP 8.3 yang terdeteksi dapat ditingkatkan. Opsi --force-confold mempertahankan konfigurasi lokal saat terjadi konflik file konfigurasi paket, tetapi hasil pembaruan tetap harus diperiksa.
Pengujian php-fpm8.3 -t dilakukan sebelum restart untuk membantu mendeteksi konfigurasi yang tidak valid. Jika server menjalankan beberapa versi PHP, periksa dan perbarui setiap versi yang benar-benar digunakan oleh website.
4. Verifikasi versi paket dan proses PHP-FPM.
dpkg -l | awk '/^ii +php8\.3-/{print $2, $3}'
ps -o pid,lstart,cmd -C php-fpm8.3 | head -2
zcat /usr/share/doc/php8.3-fpm/changelog.Debian.gz | head -10
Pastikan paket terkait telah mencapai revisi yang memuat patch keamanan sesuai rilis Ubuntu. Periksa pula waktu mulai proses PHP-FPM sebagai salah satu indikator bahwa layanan telah dimulai ulang.
5. Uji seluruh website setelah pembaruan.
Pengujian dapat dilakukan langsung ke server origin untuk mengurangi kemungkinan respons CDN menutupi masalah pada server:
for h in example.com blog.example.com admin.example.com; do
printf "%-28s %s\n" "$h" \
"$(curl -sk --max-time 10 \
--resolve "$h:443:127.0.0.1" \
-o /dev/null \
-w '%{http_code} %{size_download}B' \
"https://$h/")"
done
Ganti domain contoh dengan domain yang benar-benar dihosting pada server tersebut. Respons HTTP 200 atau pengalihan yang sesuai merupakan indikator awal bahwa website merespons, tetapi belum menjamin semua fitur aplikasi berfungsi normal.
Periksa log Nginx dan PHP-FPM untuk memastikan tidak muncul error 5xx setelah restart. Pada server yang mengelola banyak website, seluruh domain perlu diuji, termasuk halaman login, dashboard, API, dan fungsi penting lainnya.
Catatan teknis:
- Pembaruan paket secara selektif dapat memperkecil ruang lingkup perubahan, tetapi pastikan seluruh paket yang relevan telah tercakup.
- Restart harus dilakukan pada layanan yang benar-benar digunakan website. Pembaruan paket saja tidak cukup apabila proses lama masih berjalan.
- Jangan menganggap hasil pemeriksaan HTTP sebagai bukti bahwa server tidak pernah disusupi. Pemeriksaan file, akun, log, dan mekanisme akses tersembunyi tetap diperlukan jika terdapat indikasi serangan.
- Untuk Ubuntu 22.04, gunakan nama layanan dan revisi paket yang sesuai dengan PHP 8.1 serta repositori yang digunakan.
Sumber: USN-8948-1 (Ubuntu), CVE-2026-109618, CVE-2026-109619, dan Techdows tentang pembaruan keamanan PHP 8.1 di Ubuntu 22.04.