Celah Kerentanan PHP Mengancam website di dunia, Update PHP versi sekarang!

Web Security •

Pada 21 Oktober 2026, tim PHP merilis pembaruan keamanan untuk mengatasi dua kerentanan kritis, CVE-2026-109618 dan CVE-2026-109619, dengan skor CVSS v4.0 sebesar 9,2 dari 10. Kedua celah ini berpotensi memungkinkan penyerang menjalankan kode berbahaya dari jarak jauh tanpa autentikasi (unauthenticated remote code execution).

Kerentanan tersebut berkaitan dengan pengelolaan memori dan data internal PHP saat memproses permintaan pengguna. Pengguna PHP disarankan segera memperbarui versi PHP ke versi yang telah diperbaiki untuk mengurangi risiko keamanan server.

Apa Kerentanan CVE-2026-109618 & CVE-2026-109619?

Kedua kerentanan ditemukan pada inti PHP (PHP runtime) dan berkaitan dengan pengelolaan memori serta status internal ketika PHP memproses HTTP request. Meskipun mekanisme pemicunya berbeda, keduanya dapat membuka peluang bagi penyerang untuk menjalankan kode berbahaya pada server dalam kondisi tertentu.

CVE-2026-109618 (RCE via OOM Corruption)

CVE-2026-109618 terjadi ketika PHP kehabisan memori (out-of-memory atau OOM) saat memproses request. Pada versi yang rentan, kondisi ini dapat menghentikan proses sebelum data internal selesai disiapkan, sehingga data yang belum siap digunakan bisa salah ditangani saat proses pembersihan memori (cleanup).

Kondisi tersebut dapat dimanfaatkan untuk menjalankan kode dari jarak jauh (Remote Code Execution atau RCE). Menurut advisory resmi PHP, dampak ini telah dikonfirmasi pada konfigurasi Apache mod_php tertentu, termasuk melalui request tanpa autentikasi sebelum kode aplikasi dijalankan.

CVE-2026-109619 (RCE via Stale Global State)

CVE-2026-109619 terjadi ketika PHP masih menyimpan status internal dari request sebelumnya, meskipun memori yang digunakan sudah dibebaskan. Jika request berikutnya menggunakan status tersebut sebelum PHP memperbaruinya, sistem dapat mengakses data yang sudah tidak valid.

Kondisi ini berpotensi dimanfaatkan untuk menjalankan kode dari jarak jauh pada server. Salah satu jalur serangan berkaitan dengan fitur session.upload_progress, tetapi menonaktifkan fitur tersebut saja belum cukup untuk mengatasi seluruh risiko kerentanan ini.

Siapa yang Berisiko Terkena Dampaknya?

php error

Kerentanan ini akan memengaruhi instalasi PHP yang melayani request web, termasuk pada lingkungan berikut:

  • Apache mod_php, yaitu integrasi PHP yang berjalan sebagai modul Apache.
  • PHP-FPM, yang umum digunakan bersama Nginx atau Apache.
  • php-cgi, yaitu PHP yang berjalan melalui antarmuka CGI.
  • LiteSpeed, termasuk konfigurasi yang menjalankan aplikasi PHP.
  • FrankenPHP, yaitu server aplikasi yang mendukung PHP.

Tingkat risiko dan jalur eksploitasi dapat berbeda berdasarkan konfigurasi server. PHP menyebut Apache mod_php sebagai lingkungan dengan risiko tertinggi karena eksploitasi telah didemonstrasikan sebelum kode aplikasi dijalankan. Hal ini berarti perlindungan pada tingkat aplikasi saja tidak cukup untuk mengatasi masalah tersebut.

Dari sisi aplikasi, website berbasis WordPress, Laravel, CodeIgniter, dan sistem lain yang menggunakan PHP perlu memeriksa versi runtime yang digunakan. Kerentanan ini berada pada implementasi PHP, bukan hanya pada satu CMS atau framework. Karena itu, mengganti plugin atau memperbarui kode aplikasi saja tidak otomatis memperbaikinya apabila runtime PHP yang digunakan masih rentan.

Apa Saja Risiko yang Ditimbulkan?

Kedua kerentanan ini perlu diprioritaskan karena berpotensi menimbulkan beberapa dampak keamanan.

Eksekusi Kode dari Jarak Jauh

Penyerang dapat berpotensi menjalankan kode berbahaya melalui request yang dibuat secara khusus tanpa harus login terlebih dahulu. Jika berhasil, kode tersebut berjalan dengan hak akses proses PHP yang dieksploitasi.

Kebocoran dan Manipulasi Data

Jika proses PHP berhasil diambil alih, penyerang berpotensi mengakses atau memanipulasi data yang dapat dijangkau oleh akun layanan tersebut. Dampaknya bergantung pada hak akses proses, konfigurasi server, dan pemisahan antaraplikasi.

Gangguan Layanan Website

Kondisi kehabisan memori dan kesalahan pemrosesan dapat mengganggu stabilitas worker PHP. Dalam skenario tertentu, proses dapat berhenti atau layanan website mengalami gangguan.

Risiko terhadap Lingkungan Server

Jika proses PHP memiliki akses luas ke file, kredensial, atau layanan lain, eksploitasi dapat memperbesar dampak insiden. Karena itu, pembatasan hak akses dan isolasi antaraplikasi tetap penting sebagai bagian dari pertahanan berlapis. Keberadaan kerentanan tidak otomatis berarti sebuah server telah diserang. Namun, karena dampaknya dapat serius, administrator perlu segera memeriksa versi PHP dan menerapkan pembaruan keamanan.

Baca juga: Tips Tuning PHP-FPM untuk Performa Server Website Lebih Stabil

Versi PHP Terdampak dan Pembaruan yang Tersedia

Tim PHP telah merilis versi yang memperbaiki kedua kerentanan tersebut. Berikut versi perbaikannya.

Versi PHP
Versi dengan perbaikan
PHP 8.5
8.5.12
PHP 8.4
8.4.27
PHP 8.3
8.3.36
PHP 8.2
8.2.35

Pengguna perlu memperbarui PHP ke versi perbaikan yang sesuai dengan cabang versi yang digunakan. Jika menggunakan paket dari distribusi Linux atau vendor dukungan jangka panjang, periksa advisory vendor karena perbaikan dapat didistribusikan melalui paket yang dikelola vendor.

PHP 8.1 dan versi lebih lama tidak lagi menerima pembaruan rutin dari proyek PHP. Meski demikian, beberapa distribusi dan vendor dukungan jangka panjang dapat menyediakan perbaikan backport. Tim PHP juga menyebutkan tersedianya minimal source-backports untuk PHP 7.4, 8.0, dan 8.1. Status perbaikan harus dikonfirmasi kepada vendor atau pengelola paket yang digunakan.

Langkah Mitigasi yang Harus Dilakukan

Pembaruan PHP merupakan satu-satunya solusi yang bisa dilakukan. Jika pembaruan belum dapat dilakukan, beberapa konfigurasi sementara dapat mengurangi paparan terhadap jalur serangan tertentu. Namun, langkah-langkah berikut tidak menjamin instalasi menjadi aman sepenuhnya.

1. Periksa & Perbarui versi PHP

Langkah pertama adalah memeriksa versi PHP yang digunakan. Jika memiliki akses terminal, jalankan perintah berikut:

php -v

Perintah tersebut menampilkan versi PHP CLI. Versi yang digunakan website bisa berbeda, sehingga administrator juga perlu memeriksa PHP-FPM, Apache, LiteSpeed, container, atau control panel hosting.

Selanjutnya, perbarui PHP ke versi yang telah diperbaiki melalui repository resmi sistem operasi, vendor paket, atau mekanisme pembaruan dari penyedia hosting. Setelah pembaruan, restart layanan terkait jika diperlukan dan verifikasi bahwa website benar-benar menggunakan versi yang sudah diperbaiki.

2. Mitigasi Sementara untuk CVE-2026-109618

CVE-2026-109618 berkaitan dengan kegagalan alokasi memori. Jika pembaruan belum memungkinkan, advisory PHP menyebutkan beberapa langkah berikut.

Atur memory_limit=-1 secara administratif

Pengaturan ini menghilangkan batas memori per request yang dapat memicu kondisi kehabisan memori secara terkontrol melalui batas PHP. Contoh penerapannya adalah melalui konfigurasi administratif PHP-FPM pool atau Apache. Pastikan pengaturan tersebut tidak dapat ditimpa aplikasi dan tidak ada konfigurasi lain yang kembali menetapkan batas memori terbatas.

Namun, langkah ini tidak menutup seluruh jalur serangan. Kegagalan alokasi memori pada tingkat sistem operasi masih dapat memicu kondisi rentan.

Batasi ukuran dan kompleksitas request

Advisory PHP merekomendasikan pembatasan post_max_size dengan nilai konservatif:

  • Gunakan post_max_size = 8M untuk aplikasi yang tidak memerlukan unggahan file.
  • Gunakan post_max_size = 32M jika aplikasi membutuhkan unggahan file.
  • Pastikan upload_max_filesize lebih kecil daripada post_max_size.

Selain itu, terapkan pembatasan di tingkat web server atau reverse proxy terhadap ukuran request setelah didekodekan, jumlah field input, jumlah bagian multipart, jumlah header, dan kedalaman struktur input. Pembatasan tersebut juga harus mencakup request yang tidak memiliki Content-Length yang dapat digunakan.

Gunakan batas container atau cgroup secara hati-hati

Batas sumber daya container atau cgroup dapat digunakan untuk membantu membatasi dampak terhadap ketersediaan layanan. Namun, konfigurasi ini bukan pengganti pembaruan PHP. Hindari penggunaan RLIMIT_AS atau RLIMIT_DATA sebagai mitigasi untuk kerentanan ini karena kegagalan alokasi yang ditimbulkannya dapat memicu jalur OOM yang rentan.

3. Mitigasi Sementara untuk CVE-2026-109619

CVE-2026-109619 berkaitan dengan status internal yang tertinggal setelah memori dibebaskan. Beberapa langkah berikut dapat mengurangi risiko pada jalur serangan tertentu.

Nonaktifkan session upload progress

Jika aplikasi tidak membutuhkan fitur ini, tambahkan pengaturan berikut pada konfigurasi PHP yang diterapkan sebelum request diproses:

session.upload_progress.enabled=0

Pengaturan dapat diterapkan melalui php.ini, konfigurasi PHP-FPM pool, atau konfigurasi server yang sesuai. Setelah perubahan, restart seluruh worker PHP agar konfigurasi berlaku. Jangan mengandalkan ini_set() atau konfigurasi .user.ini pada PHP-FPM untuk mitigasi ini karena pengaturan harus berlaku sebelum proses parsing request dimulai.

Khusus PHP 8.5, nonaktifkan fatal error backtraces

Untuk PHP 8.5, advisori menyebutkan pengaturan berikut untuk memblokir jalur tertentu yang telah dikonfirmasi:

fatal_error_backtraces=0

Terapkan melalui konfigurasi yang sesuai dan restart seluruh worker. Mitigasi ini hanya menutup jalur fatal backtrace yang telah dikonfirmasi, bukan semua kemungkinan eksploitasi.

Audit pengaturan dan error yang dapat dipicu penyerang

Periksa pengaturan per request yang tidak valid atau sudah deprecated, terutama jika menghasilkan diagnostik sebelum proses inisialisasi selesai. Audit juga jalur aplikasi yang dapat memicu fatal error atau timeout, termasuk callback, pemrosesan unggahan dan impor file, serta proses pembersihan setelah request selesai.

Pengaturan seperti error_reporting, display_errors, dan operator @ bukan mitigasi yang efektif untuk kerentanan ini. Menyembunyikan pesan error tidak mencegah PHP mengakses status internal yang sudah tidak valid.

4. Periksa Log & Indikasi Mencurigakan

Setelah pembaruan atau penerapan mitigasi, periksa log PHP dan web server untuk membantu mengidentifikasi gangguan maupun aktivitas yang tidak biasa.

Beberapa hal yang layak ditinjau antara lain:

  • Lonjakan error kehabisan memori atau Allowed memory size exhausted.
  • Worker PHP-FPM yang berhenti secara tidak normal atau proses Apache yang mengalami crash.
  • Request multipart yang tidak biasa, termasuk request dengan banyak bagian atau field bertingkat.
  • Proses anak yang tidak dikenal dan dijalankan oleh PHP atau web server.
  • File PHP, plugin, tema, atau tugas terjadwal baru yang tidak dikenal.

Indikator tersebut tidak selalu membuktikan eksploitasi, tetapi dapat menjadi dasar pemeriksaan lebih lanjut. Tidak ditemukannya indikator dalam log juga bukan jaminan bahwa server tidak pernah diserang. Jika terdapat indikasi kompromi, lakukan investigasi keamanan. Memperbarui PHP memperbaiki kerentanan, tetapi tidak otomatis menghapus file berbahaya atau perubahan yang mungkin telah dibuat penyerang sebelum pembaruan.

5. Rencanakan Migrasi dari PHP 

Jika server menggunakan PHP 8.1 atau versi lebih lama, verifikasi ketersediaan perbaikan melalui vendor paket atau penyedia dukungan jangka panjang. Untuk penggunaan jangka panjang, rencanakan migrasi ke versi PHP yang masih didukung. Periksa kompatibilitas framework, CMS, plugin, ekstensi, dan dependensi sebelum menerapkannya pada server produksi.

Pengujian di lingkungan staging dapat membantu mengidentifikasi masalah kompatibilitas lebih awal dan mengurangi risiko gangguan layanan saat migrasi.

Catatan Penting: PHP 8.2 Akan Mencapai End of Life

PHP 8.2 dijadwalkan mencapai end of life pada 31 Desember 2026. Setelah masa dukungan berakhir, versi tersebut tidak lagi menerima perbaikan keamanan rutin dari proyek PHP.

Pengguna PHP 8.2 sebaiknya mulai merencanakan migrasi ke versi yang lebih baru dan masih didukung. Perencanaan sejak awal memberi waktu untuk menguji kompatibilitas aplikasi, memperbarui dependensi, dan mengurangi risiko gangguan operasional.

Baca juga:Optimasi Website dengan PHP-FPM dan Keunggulan Utamanya

Kesimpulan

CVE-2026-109618 dan CVE-2026-109619 merupakan dua kerentanan kritis pada PHP yang berkaitan dengan pengelolaan memori dan status internal request. Keduanya berpotensi memungkinkan eksekusi kode dari jarak jauh tanpa autentikasi dalam kondisi tertentu.

Pemilik website, developer, dan administrator server perlu segera memeriksa versi PHP yang digunakan dan memperbaruinya ke versi yang telah diperbaiki. Jika pembaruan belum dapat dilakukan, konfigurasi sementara dapat mengurangi paparan pada jalur serangan tertentu, tetapi tidak menggantikan pembaruan keamanan.

Menjaga runtime PHP tetap diperbarui, membatasi hak akses proses, memeriksa log, dan merencanakan migrasi versi merupakan bagian penting dari pengelolaan keamanan infrastruktur digital. Dengan langkah yang terencana, organisasi dapat mengurangi risiko terhadap website dan aplikasi yang bergantung pada PHP.

Referensi

PHP.net. (2026). PHP Security Announcement. Baca selengkapnya

PHP-src GitHub. CVE-2026-109618: RCE via OOM Corruption. Baca advisori

PHP-src GitHub. CVE-2026-109619: RCE via Stale Global State. Baca advisori