Sains & Teknologi

Cara Mengatasi PHP2Shell di Ubuntu, aaPanel & cPanel

Cara Mengatasi PHP2Shell di Ubuntu, aaPanel & cPanel

Cara Mengecek dan Mengatasi PHP2Shell di Ubuntu, aaPanel, cPanel, dan Shared Hosting

Cara mengatasi PHP2Shell perlu diketahui oleh administrator server dan pemilik website yang menggunakan PHP. Pada 21 Oktober 2026, proyek PHP merilis pembaruan darurat untuk dua kerentanan kritis yang dikenal sebagai CVE-2026-109618 dan CVE-2026-109619.

Kedua celah tersebut memiliki tingkat keparahan CVSS 9,2 dan dapat memungkinkan Remote Code Execution (RCE) tanpa autentikasi pada kondisi tertentu.

Masalahnya berada di dalam mesin PHP, sehingga aplikasi berbasis WordPress, Laravel, CodeIgniter, Drupal, Joomla, serta aplikasi PHP lainnya perlu diperiksa apabila menggunakan runtime yang belum mendapatkan patch.

Dalam panduan ini, Nugasin menjelaskan cara mengecek versi PHP, memperbarui paket melalui Ubuntu, aaPanel, cPanel, dan shared hosting, serta memverifikasi keamanan server setelah pembaruan.

Perhatian: lakukan backup sebelum memperbarui server produksi. Langkah pengelolaan PHP dapat berbeda menurut sistem operasi, repositori, konfigurasi, dan panel hosting.

Apa Itu PHP2Shell?

PHP2Shell merupakan nama yang diberikan oleh Wiz Research untuk serangkaian kerentanan keamanan pada inti PHP yang dapat menyebabkan kerusakan memori, pengungkapan informasi sensitif, dan eksekusi kode dari jarak jauh.

Dua identitas kerentanan yang diumumkan adalah:

  • CVE-2026-109618: berkaitan dengan kesalahan penanganan kondisi kehabisan memori.
  • CVE-2026-109619: berkaitan dengan keadaan internal PHP yang tidak dibersihkan dengan benar setelah suatu request.

Keduanya dapat berdampak pada server yang menjalankan PHP untuk memproses permintaan web.

Kerentanan ini tidak berarti seluruh server PHP sudah diretas. Namun, server yang belum menerima perbaikan perlu dianggap berisiko sampai status patch-nya dapat dipastikan.

Untuk mengetahui bagaimana peneliti menemukan kerentanan tersebut dengan bantuan AI, baca juga artikel Nugasin tentang penelitian PHP2Shell dari Wiz Research.

Versi PHP yang Sudah Mendapatkan Patch PHP2Shell

Proyek PHP merilis empat versi perbaikan resmi pada 21 Oktober 2026.

Cabang PHPVersi Perbaikan Resmi
PHP 8.28.2.35
PHP 8.38.3.36
PHP 8.48.4.27
PHP 8.58.5.12

Versi PHP yang berada di bawah rilis perbaikan pada masing-masing cabang perlu diperbarui, kecuali penyedia sistem operasi atau vendor enterprise telah memasang backport keamanan yang setara.

Backport berarti perbaikan keamanan diterapkan pada paket dengan nomor versi dasar yang lebih lama.

PHP 8.1 dan cabang sebelumnya sudah tidak memperoleh pembaruan reguler dari proyek PHP, sehingga migrasi ke versi yang masih didukung tetap direkomendasikan.

Referensi: PHP.net — Security Advisory 21 Oktober 2026.

1. Cara Mengecek Versi PHP melalui SSH

Jika mempunyai akses SSH, masuk ke server terlebih dahulu.

Jalankan perintah berikut:

php -v

Perintah tersebut akan menampilkan versi PHP CLI atau Command Line Interface.

Namun, PHP CLI belum tentu menggunakan versi yang sama dengan website. Server dapat menjalankan beberapa versi PHP secara bersamaan melalui PHP-FPM atau panel hosting.

Melihat Paket PHP yang Terpasang di Ubuntu

Untuk server Ubuntu berbasis paket APT, gunakan:

dpkg -l | grep -E '^ii  (php[0-9.]|libapache2-mod-php)'

Perintah tersebut membantu menampilkan paket PHP yang telah terpasang.

Anda juga dapat memeriksa service PHP-FPM:

systemctl list-units --type=service --all | grep php

Jika menggunakan container atau instalasi PHP khusus dari panel, perintah tersebut belum tentu menampilkan semua runtime PHP yang digunakan.

2. Cara Mengatasi PHP2Shell di Ubuntu Server

Ubuntu telah merilis pembaruan keamanan untuk versi sistem operasi yang masih mendapat dukungan.

Pada Ubuntu 24.04 LTS, misalnya, patch PHP2Shell disediakan melalui paket keamanan PHP 8.3 dengan nomor build vendor tertentu.

Artinya, administrator tidak selalu harus meningkatkan PHP 8.3 ke cabang PHP 8.4 atau 8.5 hanya untuk mendapatkan perbaikan PHP2Shell.

Langkah 1: Periksa Versi Ubuntu

lsb_release -a

Atau:

cat /etc/os-release

Langkah 2: Periksa Paket PHP

php -v
apt list --installed 'php*'

Periksa paket PHP CLI, PHP-FPM, serta modul yang digunakan web server.

Langkah 3: Lakukan Backup

Pastikan data aplikasi, database, dan konfigurasi server sudah dicadangkan sebelum pembaruan.

Jika menggunakan VPS pada penyedia cloud, pertimbangkan snapshot server sebelum melakukan perubahan penting.

Langkah 4: Perbarui Informasi Repositori

sudo apt update

Langkah 5: Perbarui Paket Keamanan

Ubuntu merekomendasikan pembaruan paket sistem menggunakan:

sudo apt upgrade

Periksa daftar paket yang akan berubah sebelum memberikan persetujuan, khususnya pada server produksi.

Jika server menggunakan repositori pihak ketiga, seperti paket PHP yang tidak berasal dari Ubuntu, periksa advisory penyedia repositori tersebut. Patch Ubuntu tidak otomatis memperbaiki instalasi PHP dari sumber lain.

Langkah 6: Restart PHP-FPM atau Apache

Setelah pembaruan, lakukan restart service yang menggunakan PHP sesuai konfigurasi server.

Contoh untuk Ubuntu 24.04 dengan PHP-FPM 8.3:

sudo systemctl restart php8.3-fpm

Jika PHP dijalankan melalui modul Apache, restart Apache sesuai kebutuhan:

sudo systemctl restart apache2

Gunakan nama service yang benar-benar tersedia. Perintah tersebut hanya contoh untuk lingkungan tertentu.

Langkah 7: Periksa Status Service

systemctl status php8.3-fpm --no-pager

Jika memakai Apache:

systemctl status apache2 --no-pager

Setelah itu, uji login, upload, API, dan fitur penting pada website.

3. Cara Memastikan PHP Ubuntu Sudah Mendapat Patch

Jangan hanya melihat versi yang muncul dari php -v.

Pada Ubuntu 24.04 LTS, Canonical mencantumkan perbaikan PHP2Shell pada paket PHP 8.3 berikut:

8.3.6-0ubuntu0.24.04.13

Nomor paket tersebut berbeda dari rilis upstream PHP 8.3.36, tetapi sudah memuat perbaikan keamanan yang disediakan Canonical.

Untuk memeriksa versi paket:

apt-cache policy php8.3-fpm

Atau:

dpkg-query -W php8.3-fpm

Pastikan versi paket yang terpasang sesuai atau lebih baru daripada versi perbaikan yang berlaku pada repositori Ubuntu Anda.

Untuk PHP 8.3 pada Ubuntu 24.04, bandingkan dengan Ubuntu Security Notice USN-8948-1.

4. Cara Update PHP2Shell di aaPanel

Pengguna aaPanel dapat melakukan pembaruan PHP melalui antarmuka App Store yang tersedia pada panel.

Tim aaPanel telah menerbitkan pengumuman keamanan terkait PHP2Shell pada 21 Oktober 2026 dan menyediakan petunjuk pembaruan untuk pengguna panel.

Langkah 1: Login ke aaPanel

Masuk ke panel server menggunakan akun administrator.

Langkah 2: Buka App Store

Pilih menu App Store untuk melihat perangkat lunak yang sudah terpasang.

Langkah 3: Refresh Daftar Aplikasi

Klik opsi Update App List jika tersedia agar panel mendapatkan informasi paket terbaru.

Langkah 4: Cari Instalasi PHP

Temukan PHP yang digunakan website Anda, misalnya PHP 8.2, 8.3, 8.4, atau 8.5.

Jika server menggunakan beberapa versi PHP, periksa semuanya karena setiap website mungkin memakai runtime yang berbeda.

Langkah 5: Jalankan Update

Klik tombol Update pada versi PHP yang memiliki pembaruan keamanan.

Pastikan Anda telah membuat snapshot atau backup sebelum pembaruan.

Langkah 6: Restart PHP

Setelah proses selesai, gunakan menu pengelolaan PHP untuk merestart service yang diperbarui.

Langkah 7: Uji Website

Periksa kembali versi PHP aktif dan jalankan pengujian fungsi website.

Pengumuman aaPanel juga menjelaskan ketersediaan beberapa backport untuk versi PHP yang lebih lama. Namun, administrator sebaiknya memastikan build yang digunakan benar-benar memuat patch PHP2Shell dan tetap merencanakan migrasi ke cabang PHP yang didukung.

Referensi: aaPanel — Critical PHP Security Update.

5. Cara Mengatasi PHP2Shell di cPanel

Jika menggunakan hosting cPanel, Anda dapat memeriksa versi PHP melalui fitur MultiPHP Manager.

Langkah 1: Login ke cPanel

Masuk ke dashboard cPanel hosting.

Langkah 2: Buka MultiPHP Manager

Pilih menu MultiPHP Manager di bagian Software, jika fitur tersebut tersedia untuk akun Anda.

Langkah 3: Pilih Domain

Perhatikan versi PHP yang digunakan oleh domain atau subdomain.

Langkah 4: Periksa Pilihan PHP yang Tersedia

Pilih cabang PHP yang masih didukung dan telah memperoleh patch keamanan dari penyedia hosting.

Perlu diketahui bahwa MultiPHP Manager sering menampilkan cabang PHP, bukan detail seluruh nomor patch dan build vendor.

Langkah 5: Terapkan Perubahan Jika Diperlukan

Jika perlu mengganti versi PHP, pilih versi yang sesuai dan klik Apply.

Namun, jika cabang PHP sudah didukung dan penyedia hosting telah memasang patch, mengganti cabang PHP mungkin tidak diperlukan.

Langkah 6: Uji Website

Pastikan CMS, plugin, framework, serta ekstensi PHP tetap bekerja dengan baik.

Jika tidak yakin mengenai nomor patch, hubungi penyedia hosting dan minta konfirmasi apakah CVE-2026-109618 dan CVE-2026-109619 sudah diperbaiki.

Referensi: Dokumentasi resmi cPanel MultiPHP Manager.

6. Cara Mengatasi PHP2Shell di Shared Hosting

Pengguna shared hosting biasanya tidak mempunyai akses root untuk memperbarui paket PHP server.

Karena itu, tindakan paling penting adalah menghubungi penyedia hosting untuk memastikan runtime PHP yang digunakan domain telah menerima patch.

Informasi yang Perlu Ditanyakan

  • Apakah PHP hosting sudah menerima patch PHP2Shell?
  • Apakah CVE-2026-109618 sudah diperbaiki?
  • Apakah CVE-2026-109619 sudah diperbaiki?
  • Versi dan nomor build PHP apa yang digunakan?
  • Apakah pembaruan sudah diterapkan pada seluruh worker?
  • Apakah pengguna perlu mengubah versi PHP melalui panel?

Contoh Pesan ke Penyedia Hosting

Halo Tim Support,

Saya ingin memastikan keamanan hosting terhadap kerentanan kritis PHP2Shell, yaitu CVE-2026-109618 dan CVE-2026-109619.

Mohon informasi apakah runtime PHP yang melayani domain saya telah menerima patch keamanan resmi atau backport dari vendor.

Mohon juga diinformasikan versi PHP dan nomor build aktif, serta apakah diperlukan tindakan tambahan dari sisi pengguna.

Terima kasih.

Jika hosting menggunakan PHP versi lama, tanyakan jadwal migrasi ke versi yang masih mendapat dukungan keamanan.

7. Bagaimana dengan WordPress, Laravel, dan CodeIgniter?

PHP2Shell berkaitan dengan runtime PHP, bukan hanya kode aplikasi tertentu.

Karena itu, memperbarui WordPress, Laravel, atau CodeIgniter saja tidak menggantikan kebutuhan patch PHP.

Untuk website yang menggunakan CMS atau framework, lakukan dua jenis pembaruan:

  • Pembaruan PHP pada server sesuai advisory keamanan.
  • Pembaruan aplikasi, plugin, dependensi, dan framework sesuai dukungan masing-masing.

Uji aplikasi setelah PHP diperbarui, karena perpindahan antar cabang PHP dapat memengaruhi kompatibilitas kode maupun ekstensi.

8. Mitigasi Sementara Jika PHP Belum Bisa Diperbarui

Proyek PHP telah menerbitkan beberapa mitigasi sementara bagi administrator yang belum dapat memasang patch.

Namun, mitigasi ini tidak membuat runtime rentan menjadi sepenuhnya aman. Pembaruan resmi tetap diperlukan.

Nonaktifkan Session Upload Progress Jika Tidak Dibutuhkan

Salah satu jalur eksploitasi dapat dikurangi dengan menonaktifkan fitur session upload progress melalui konfigurasi PHP yang berlaku sebelum pemrosesan request.

session.upload_progress.enabled=0

Perubahan harus dilakukan melalui php.ini atau konfigurasi tingkat server yang sesuai, bukan mengandalkan pengaturan di dalam kode aplikasi setelah request mulai diproses.

Restart seluruh worker PHP setelah perubahan.

Batasi Ukuran Request

Pembatasan request body dapat membantu mengurangi paparan terhadap sejumlah jalur eksploitasi yang berkaitan dengan pemrosesan data besar.

Tetapkan batas sesuai kebutuhan aplikasi dan pastikan batas tersebut diterapkan oleh web server atau reverse proxy yang digunakan.

Jangan menggunakan angka pembatasan secara sembarangan jika website perlu menangani upload file besar.

Gunakan Perlindungan Tambahan

WAF, monitoring log, pembatasan resource, dan segmentasi layanan dapat menambah lapisan pertahanan.

Namun, fitur-fitur tersebut bukan pengganti patch PHP2Shell.

9. Cara Memeriksa Indikasi Serangan PHP2Shell

Setelah pembaruan, administrator sebaiknya meninjau log dan aktivitas server untuk menemukan perilaku yang tidak biasa.

Contoh indikator yang perlu diperiksa:

  • Error 500 yang meningkat secara tidak wajar.
  • Proses PHP-FPM yang sering mengalami crash.
  • Kesalahan memori berulang.
  • Permintaan HTTP multipart yang tidak biasa.
  • Perubahan file aplikasi tanpa izin.
  • Aktivitas proses atau koneksi yang mencurigakan.

Indikator tersebut tidak secara otomatis membuktikan PHP2Shell telah dieksploitasi.

Jika ditemukan dugaan kompromi, pertimbangkan mengisolasi sistem, menyimpan bukti log, dan melakukan investigasi sebelum menghapus file atau melakukan instalasi ulang.

10. Checklist Keamanan PHP2Shell

  • Identifikasi semua website dan runtime PHP.
  • Periksa versi serta nomor build PHP.
  • Baca advisory PHP atau vendor sistem operasi.
  • Lakukan backup.
  • Pasang patch keamanan resmi.
  • Restart worker PHP yang terdampak.
  • Verifikasi versi atau nomor paket perbaikan.
  • Uji fungsi website.
  • Periksa log jika terdapat aktivitas mencurigakan.
  • Rencanakan migrasi dari versi PHP lama yang tidak didukung.

FAQ Cara Mengatasi PHP2Shell

Bagaimana cara mengatasi PHP2Shell?

Solusi utamanya adalah memasang pembaruan PHP resmi atau paket vendor yang sudah mencakup patch CVE-2026-109618 dan CVE-2026-109619.

Apakah PHP 8.3.6 di Ubuntu 24.04 pasti rentan?

Tidak dapat dinilai dari nomor versi dasar saja. Ubuntu menyediakan backport keamanan. Periksa nomor build lengkap dan bandingkan dengan Ubuntu Security Notice USN-8948-1.

Apakah aaPanel menyediakan patch PHP2Shell?

aaPanel telah mengumumkan pembaruan keamanan serta petunjuk melalui App Store. Pengguna perlu memperbarui versi PHP yang terpasang dan memverifikasi status patch.

Apakah cPanel otomatis memperbarui PHP?

cPanel dapat memperbarui paket PHP yang sudah terpasang melalui sistem pembaruan, tetapi tidak otomatis mengganti seluruh instalasi ke cabang PHP mayor yang baru. Status patch tetap perlu diperiksa.

Apakah shared hosting bisa terkena PHP2Shell?

Bisa jika runtime PHP yang digunakan belum diperbaiki. Pengguna shared hosting sebaiknya meminta konfirmasi patch dari penyedia layanan.

Apakah mengganti versi WordPress cukup?

Tidak. Karena kerentanan berada pada mesin PHP, runtime PHP juga harus mendapatkan patch keamanan.

Apakah menggunakan Cloudflare sudah aman?

Cloudflare atau layanan WAF lainnya dapat memberikan perlindungan tambahan terhadap sejumlah pola serangan, tetapi tidak menggantikan pembaruan runtime PHP.

Apakah perintah php -v cukup untuk memastikan keamanan?

Tidak selalu. Perintah tersebut menampilkan versi PHP CLI yang mungkin berbeda dari PHP website. Selain itu, paket vendor dapat menyertakan backport tanpa mengubah nomor versi dasar.

Apakah harus upgrade ke PHP 8.5?

Tidak wajib. Cabang PHP yang masih didukung dan sudah mendapatkan patch sesuai advisory dapat digunakan. Pilih versi berdasarkan dukungan keamanan serta kompatibilitas aplikasi.

Kesimpulan

PHP2Shell merupakan ancaman keamanan serius bagi website yang menjalankan PHP tanpa pembaruan yang sesuai.

Untuk pengguna Ubuntu, pemeriksaan paket vendor dan instalasi security update merupakan langkah utama. Pengguna aaPanel dapat menggunakan App Store, sementara pengguna cPanel perlu memeriksa MultiPHP Manager dan status patch dari penyedia hosting.

Pengguna shared hosting juga perlu memastikan bahwa perusahaan hosting sudah memperbarui runtime yang melayani website.

Ingat, versi PHP yang terlihat lama tidak selalu berarti belum aman jika vendor telah menerapkan backport. Sebaliknya, mengganti cabang PHP tanpa memverifikasi patch juga bukan pendekatan yang tepat.

Prioritaskan pembaruan resmi, restart worker, verifikasi status patch, dan lakukan pengujian aplikasi setelah perubahan.

Referensi Resmi