Dua kerentanan keamanan kritis yang ditemukan pada PHP telah memicu respons keamanan mendesak. Para developer dan administrator sistem diminta untuk segera memperbarui instalasi PHP mereka. Dengan kode identifikasi CVE-2026-109618 dan CVE-2026-109619, kedua kerentanan ini berpotensi memungkinkan penyerang menjalankan kode arbitrer pada server yang rentan tanpa memerlukan autentikasi.

Kedua kerentanan tersebut secara kolektif disebut sebagai PHP2Shell. Kerentanan ini memengaruhi instalasi PHP yang memproses permintaan web dan menimbulkan risiko serius, khususnya bagi aplikasi yang dapat diakses langsung melalui internet. Tim pengembang PHP merilis pembaruan keamanan untuk mengatasi masalah tersebut pada 21 Oktober 2026.

Apa yang Terjadi?

Pada 20 Oktober 2026, tim pengembang PHP mengumumkan perilisan pembaruan keamanan darurat untuk mengatasi dua kerentanan kritis. Pengumuman tersebut mendesak para developer dan administrator sistem untuk bersiap melakukan pembaruan sesegera mungkin.

Sehari kemudian, tim PHP merilis versi PHP yang telah diperbaiki untuk mengatasi kedua masalah tersebut.

Masing-masing kerentanan memperoleh skor CVSS v4.0 sebesar 9,2 dari 10, yang menunjukkan tingkat risiko keamanan kritis.

Kedua kerentanan ini menjadi perhatian serius karena eksploitasi yang berhasil dapat memungkinkan penyerang yang tidak terautentikasi menjalankan kode berbahaya dari jarak jauh. Bergantung pada konfigurasi dan hak akses server, serangan tersebut dapat menyebabkan kebocoran informasi sensitif, kompromi data aplikasi, atau membuka jalan bagi serangan lanjutan.

Tim PHP mengidentifikasi penerapan Apache yang menggunakan mod_php sebagai salah satu konfigurasi yang sangat rentan. Hal ini disebabkan oleh adanya skenario serangan yang dapat memicu kerentanan sebelum kode aplikasi dijalankan. Namun, konfigurasi server PHP lainnya juga terdampak.

Memahami Dua Kerentanan PHP

Meskipun keduanya dapat menyebabkan remote code execution (RCE), kedua kerentanan tersebut berasal dari masalah yang berbeda dalam pengelolaan memori internal PHP.

1. CVE-2026-109618: Eksekusi Kode Jarak Jauh Akibat Kegagalan Alokasi Memori

Kerentanan pertama berkaitan dengan cara PHP menangani kondisi kehabisan memori atau out-of-memory.

Ketika PHP mengalami kegagalan alokasi memori, proses penanganan permintaan dapat terhenti ketika data internal untuk permintaan tersebut baru diinisialisasi sebagian. Saat proses pembersihan berikutnya berlangsung, PHP dapat keliru memperlakukan data yang belum lengkap tersebut seolah-olah sudah valid.

Penyerang yang mampu memicu kondisi ini melalui permintaan yang dirancang secara khusus berpotensi mengeksploitasi kerusakan memori yang terjadi.

Dampak yang mungkin ditimbulkan meliputi:

  • Eksekusi kode jarak jauh pada server yang rentan.
  • Kebocoran data aplikasi yang sensitif.
  • Kompromi terhadap keamanan aplikasi yang terdampak.

Masalah ini sangat serius karena berkaitan dengan mekanisme internal PHP dalam menangani permintaan, bukan sekadar kerentanan yang terbatas pada framework aplikasi tertentu.

2. CVE-2026-109619: Eksekusi Kode Jarak Jauh Akibat Referensi Memori yang Kedaluwarsa

Kerentanan kedua berkaitan dengan status internal yang sudah tidak valid dan memori yang telah dibebaskan.

Dalam kasus ini, status internal yang berkaitan dengan suatu permintaan dapat tetap tersimpan meskipun memori yang mendukungnya sudah dilepaskan. Permintaan berikutnya yang ditangani oleh worker yang sama berpotensi mengakses status lama tersebut sebelum PHP melakukan inisialisasi ulang dengan benar.

Jenis masalah ini umumnya dikenal sebagai kerentanan use-after-free.

Bug use-after-free terjadi ketika perangkat lunak masih mengakses suatu memori setelah memori tersebut dibebaskan. Bergantung pada kondisi eksploitasi, masalah ini dapat menyebabkan aplikasi mengalami crash, kerusakan memori, kebocoran informasi, atau eksekusi kode arbitrer.

Dalam kasus PHP, eksploitasi terhadap kerentanan ini berpotensi memungkinkan penyerang menjalankan kode dari jarak jauh pada server yang terdampak.

Versi PHP Mana yang Terdampak?

Tim keamanan PHP telah merilis perbaikan untuk versi-versi berikut:

  1. Branch: PHP 8.5.x, Fixed Version: 8.5.12
  2. Branch: PHP 8.4.x, ****Fixed Version: 8.4.27
  3. Branch: PHP 8.3.x, Fixed Version: 8.3.36
  4. Branch: PHP 8.2.x, Fixed Version: 8.2.35

Administrator sistem disarankan untuk meningkatkan PHP ke versi yang telah diperbaiki sesuai dengan cabang yang digunakan atau memasang pembaruan keamanan yang sesuai dari penyedia sistem operasi maupun vendor PHP mereka.

PHP 8.1 dan versi yang lebih lama tidak lagi menerima pembaruan keamanan secara langsung dari proyek PHP. Namun, beberapa distribusi Linux dan penyedia dukungan jangka panjang mungkin menyediakan perbaikan yang di-backport ke versi yang lebih lama.

Oleh karena itu, organisasi yang masih menggunakan versi tersebut perlu memeriksa panduan keamanan dari vendor masing-masing.

Kerentanan ini berpotensi memengaruhi berbagai model penerapan PHP, termasuk:

  • PHP-FPM
  • Apache dengan mod_php
  • php-cgi
  • FrankenPHP
  • LiteSpeed

Organisasi juga perlu memeriksa produk pihak ketiga, container, perangkat khusus, dan layanan yang menyertakan PHP, meskipun runtime PHP tersebut tidak terlihat secara langsung oleh developer aplikasi.

Langkah yang Harus Dilakukan Developer dan Administrator Sistem

Tim pengembang PHP merekomendasikan pembaruan segera. Mereka juga menegaskan bahwa perubahan konfigurasi saja tidak dapat menggantikan penerapan patch keamanan.

Organisasi perlu memprioritaskan langkah-langkah berikut.

1. Identifikasi Semua Instalasi PHP

Mulailah dengan mengidentifikasi seluruh sistem yang menjalankan PHP, terutama server yang dapat diakses melalui internet dan aplikasi yang memproses input tidak tepercaya.

Administrator dapat memeriksa versi PHP CLI dengan menjalankan perintah berikut:

php -v

Namun, perintah tersebut hanya menampilkan versi executable PHP CLI. Versi yang digunakan oleh PHP-FPM, Apache, container, atau lingkungan aplikasi lainnya juga harus diperiksa secara terpisah.

2. Terapkan Pembaruan Keamanan

Perbarui PHP ke versi rilis yang telah diperbaiki sesuai dengan cabang yang digunakan.

Sebagai contoh, sistem yang menjalankan PHP 8.4 perlu diperbarui ke PHP 8.4.27 atau versi lebih baru yang telah mencakup perbaikan terkait.

Sebelum menerapkan pembaruan, tim perlu memeriksa repositori paket sistem operasi, lingkungan hosting, serta prosedur deployment yang digunakan.

Setelah pembaruan selesai, mulai ulang worker PHP atau layanan terkait jika diperlukan untuk memastikan bahwa runtime yang telah diperbaiki benar-benar digunakan.

3. Periksa Dependensi dan Infrastruktur Pihak Ketiga

Memperbarui instalasi utama PHP mungkin belum cukup apabila komponen lain menyertakan runtime PHP mereka sendiri.

Tim pengembangan dan infrastruktur perlu memeriksa:

  • Docker image dan container registry.
  • Lingkungan managed hosting.
  • Perangkat aplikasi dan layanan pihak ketiga.
  • Pipeline CI/CD dan konfigurasi deployment.
  • Aplikasi lama yang masih menggunakan versi PHP tanpa dukungan keamanan.

Organisasi juga perlu memastikan bahwa lingkungan produksi menggunakan versi PHP yang diharapkan, bukan hanya mengandalkan versi yang terpasang pada lingkungan pengembangan lokal.

4. Pantau Kemungkinan Kompromi Keamanan

Karena kerentanan ini dapat memungkinkan eksekusi kode jarak jauh, administrator perlu menyelidiki aktivitas mencurigakan yang terjadi selama periode ketika sistem berpotensi terekspos.

Beberapa area yang perlu diperiksa meliputi:

  • Log server web dan aplikasi.
  • Proses tidak dikenal yang dijalankan oleh worker PHP.
  • Koneksi jaringan keluar yang tidak biasa.
  • File mencurigakan atau perubahan tak terduga pada kode aplikasi.
  • Aktivitas autentikasi yang mencurigakan atau akun baru yang tidak dikenal.

Penerapan pembaruan keamanan dapat mencegah eksploitasi melalui kerentanan yang telah diperbaiki, tetapi tidak secara otomatis memulihkan sistem yang mungkin sudah berhasil dikompromikan sebelum pembaruan dilakukan.

Jika patch tidak dapat segera diterapkan, organisasi perlu mempertimbangkan untuk mengisolasi aplikasi yang terekspos dari jaringan publik sampai proses perbaikan selesai.

Mengapa Masalah Ini Penting, Bahkan bagi Mereka yang Bukan Developer PHP?

PHP masih banyak digunakan dalam situs web, sistem manajemen konten, platform e-commerce, dan aplikasi backend.

Akibatnya, kerentanan pada runtime PHP dapat berdampak pada organisasi meskipun kode aplikasi mereka tidak memiliki celah keamanan yang terlihat secara langsung.

Insiden ini juga menyoroti perbedaan penting antara keamanan pada tingkat aplikasi dan keamanan pada tingkat runtime.

Developer umumnya berfokus pada validasi input, autentikasi, otorisasi, dan pembaruan dependensi. Semua praktik tersebut tetap penting. Namun, kerentanan pada runtime yang mendasari aplikasi dapat menimbulkan risiko yang tidak dapat dihilangkan hanya dengan perlindungan di tingkat aplikasi.

Secara khusus, jalur serangan yang melibatkan mod_php menunjukkan mengapa organisasi harus selalu memperbarui runtime bahasa pemrograman dan infrastruktur server mereka. Kode aplikasi yang aman saja tidak cukup untuk menjamin keamanan keseluruhan sistem.

Kesimpulan

Kerentanan PHP2Shell, yaitu CVE-2026-109618 dan CVE-2026-109619, merupakan ancaman keamanan yang serius karena berpotensi memungkinkan eksekusi kode jarak jauh tanpa autentikasi pada server PHP yang rentan.

Tim pengembang PHP telah merilis versi yang berisi perbaikan keamanan. Organisasi perlu memprioritaskan identifikasi instalasi yang terdampak, penerapan pembaruan yang sesuai, serta penyelidikan terhadap indikasi kompromi keamanan.

Bagi developer, pelajaran utamanya cukup jelas: keamanan aplikasi tidak berhenti pada kode aplikasi itu sendiri. Memastikan runtime, infrastruktur, dan dependensi selalu diperbarui merupakan bagian penting dalam melindungi sistem produksi.

Rekomendasi: Periksa imbauan keamanan resmi PHP untuk memperoleh detail teknis terbaru, daftar versi yang telah diperbaiki, dan panduan peningkatan versi.

Referensi

  1. Situs resmi PHP — Imbauan keamanan dan versi yang telah diperbaiki.
  2. Canadian Centre for Cyber Security — Kerentanan kritis yang berdampak pada PHP.
  3. CERT-EU — Imbauan Keamanan 2026-018.