Security

Tim Pengembang PHP Rilis Patch Darurat untuk Atasi Celah Kritis PHP2Shell (CVE-2026-109618 & CVE-2026-109619)

Tim keamanan PHP secara resmi merilis pembaruan keamanan darurat untuk menambal dua kerentanan eksekusi kode jarak jauh (remote code execution / RCE) tingkat kritikal yang dilacak secara kolektif dengan sebutan PHP2Shell.

Kedua celah tanpa otentikasi ini diidentifikasi sebagai CVE-2026-109618 dan CVE-2026-109619. Berdasarkan temuan yang dikonfirmasi oleh pengembang bersama tim riset OpenAI dan pihak ketiga, celah ini berdampak luas pada seluruh instalasi PHP yang memproses permintaan web (web requests), termasuk PHP-FPM, Apache dengan mod_php, php-cgi, FrankenPHP, hingga LiteSpeed.

“Kami menilai risiko tertinggi berada pada mod_php, dengan eksploitasi terbukti di mana permintaan tanpa otentikasi dapat memicu serangan bahkan sebelum kode aplikasi apa pun berjalan,” ungkap tim keamanan PHP dalam buletin resminya.

Kedua kerentanan tersebut berakar dari masalah mendasar yang serupa: PHP dapat meninggalkan memori dalam kondisi rusak (corrupted state) ketika sebuah permintaan berakhir secara tidak normal (abnormally). Celah CVE-2026-109618 memungkinkan penyerang mendapatkan akses RCE dengan hak istimewa pekerja web (web worker account) melalui rantai kelemahan yang memicu korupsi kehabisan memori (out-of-memory corruption). Sementara itu, CVE-2026-109619 memanfaatkan status global basi (stale global state) yang memicu kerentanan heap use-after-free, pengungkapan memori, hingga RCE tanpa otentikasi.

Segera Perbarui ke Versi PHP Terbaru

Mengingat PHP digunakan sebagai fondasi bagi 75% hingga 80% situs web di seluruh dunia—termasuk platform CMS populer seperti WordPress, Joomla, dan Drupal—serta estimasi VirusTotal yang menunjukkan lebih dari 5,1 juta hos PHP terekspos secara daring, para administrator sistem didesak untuk bergerak cepat.

Pengguna yang menjalankan PHP versi 8.x dianjurkan untuk segera memasang pembaruan ke versi berikut sesegera mungkin:

  • PHP 8.5.12
  • PHP 8.4.27
  • PHP 8.3.36
  • PHP 8.2.35

Bagi server yang masih menjalankan PHP 7 atau versi yang lebih lama—yang secara resmi tidak lagi mendapatkan dukungan pembaruan dari proyek PHP—administrator disarankan untuk segera bermigrasi ke versi yang didukung atau menghubungi vendor distribusi/LTS guna mendapatkan backported fixes. Mengingat tingkat keparahan ancaman ini, tim keamanan PHP secara luar biasa turut menyediakan source-backports minimal untuk PHP 7.4, PHP 8.0, dan PHP 8.1 bagi pihak yang membangun dari kode sumber (source) secara mandiri.

Sebelum perilisan resmi ini, Badan Keamanan Siber Nasional Inggris (NCSC) bahkan telah mengeluarkan peringatan darurat bagi organisasi di wilayahnya untuk segera memperbarui sistem berbasis PHP atau mengambil tindakan mematikan server (offline) sementara waktu hingga proses penambalan selesai dilakukan. CTO Cloudflare, Dane Knecht, juga mengonfirmasi bahwa pihaknya telah mendeteksi gelombang serangan awal yang menyasar kedua celah ini meskipun aturan WAF pencegahan telah diterapkan sebelumnya.

Langkah Mitigasi Sementara (Workaround)

Core developer PHP, Gina Peter Banyard, menegaskan bahwa tidak ada mitigasi selain pemasangan patch resmi yang dapat sepenuhnya memblokir potensi serangan PHP2Shell. Kendati demikian, bagi administrator yang belum dapat melakukan pembaruan secara langsung, tim keamanan PHP merinci sejumlah langkah mitigasi parsial untuk meredam risiko:

  • Untuk CVE-2026-109618:
    • Tetapkan memory_limit=-1, sebaiknya dikonfigurasi sedemikian rupa sehingga aplikasi tidak dapat mengambil alih (misalnya menggunakan php_admin_value pada pool FPM atau konfigurasi Apache).
    • Atur nilai post_max_size seminimal mungkin: 8M untuk aplikasi yang tidak memerlukan unggahan berkas, atau 32M jika fitur unggahan memang dibutuhkan.
    • Gunakan wadah (container) atau batasan cgroup sebagai pembatas ketersediaan sumber daya (availability boundary).
  • Untuk CVE-2026-109619:
    • Nonaktifkan pelacakan unggahan dengan mengatur session.upload_progress.enabled=0 lalu restart setiap pekerja.
    • Pada PHP 8.5, atur fatal_error_backtraces=0 dan restart pekerja.
    • Hapus pengaturan tidak valid atau usang yang diterapkan per permintaan yang memancarkan diagnostik sebelum inisialisasi. Perlu dicatat bahwa menyembunyikan diagnostik menggunakan error_reporting, display_errors, atau tanda @ tidak membantu menyelesaikan masalah.
    • Perbaiki fatal errors dan execution timeouts yang dapat dijangkau penyerang.

Sumber: PHP Security Advisory

Leave a Reply

Your email address will not be published. Required fields are marked *


Back to top button