~/ / Artikel AI / AI membantu menemukan PHP2Shell: kerentanan kritis PHP pada Oktober 2026
AI membantu menemukan PHP2Shell: kerentanan kritis PHP pada Oktober 2026
Menurut laporan pers, model AI membantu para peneliti menemukan dua kerentanan kritis pada PHP itu sendiri, CVE-2026-109618 dan CVE-2026-109619, yang dapat memungkinkan eksekusi kode jarak jauh tanpa autentikasi. PHP merilis versi yang sudah diperbaiki pada 21 Oktober 2026. Artikel ini merangkum apa yang dikatakan pengumuman resmi dan laporan-laporan tersebut tentang celah itu dan tentang bagaimana AI terlibat, serta memungkinkan Anda memeriksa apakah PHP yang Anda jalankan sudah memuat perbaikannya.
Dicocokkan dengan pengumuman resmi pada 2026-10-24. Halaman ini bukan advisori resmi, dan rinciannya dapat berubah, jadi ikuti sumber-sumber di bagian bawah.
Yang perlu dilakukan lebih dulu
- Perbarui PHP ke rilis yang sudah diperbaiki (8.5.12, 8.4.27, 8.3.36 atau 8.2.35), atau ke paket yang sudah diperbaiki dari distribusi Linux Anda. PHP menyatakan tidak ada mitigasi yang lengkap dan bahwa pembaruan adalah satu-satunya pilihan yang aman.
- Setelah memperbarui, mulai ulang PHP-FPM, Apache, dan semua worker PHP yang berjalan lama agar memuat kode yang sudah diperbaiki. Layanan yang dimulai sebelum pembaruan masih menjalankan kode lama.
- Jika PHP berasal dari paket distribusi, periksa versi paket secara lengkap, termasuk bagian setelah tanda hubung pertama. Distribusi dapat menyertakan perbaikan tanpa mengubah bagian pertama dari nomor versi.
- Jika Anda tidak bisa memperbarui sekarang juga, lihat mitigasi di bawah. PHP menyatakan mitigasi itu mengurangi paparan terhadap jalur serangan tertentu tetapi tidak membuat instalasi menjadi aman.
Apa yang terjadi
Pada 21 Oktober 2026 PHP merilis 8.5.12, 8.4.27, 8.3.36 dan 8.2.35. Rilis ini memperbaiki dua kerentanan kritis, keduanya dinilai CVSS v4.0 9.2.
CVE-2026-109618, disebut RCE via OOM corruption: penanganan kehabisan memori dapat menginterupsi PHP saat data internal permintaan baru terinisialisasi sebagian, lalu pembersihan permintaan dapat memperlakukan data yang tidak valid itu sebagai data yang valid.
CVE-2026-109619, disebut RCE via stale global state: status internal milik permintaan dapat bertahan setelah memori yang mendasarinya dibebaskan, dan permintaan berikutnya yang ditangani worker yang sama dapat menggunakan status usang tersebut.
- CVE-2026-109618 · CVSS 4.0 9.2
- CVE-2026-109619 · CVSS 4.0 9.2
Bagaimana AI terlibat
Menurut The Next Web, perusahaan keamanan Calif menemukan bug pertama pada bulan Agustus dengan bantuan model OpenAI, saat mengaudit kode sumber PHP yang didanai oleh OpenAI. Wiz menyatakan menemukan celah tersebut secara independen, beberapa minggu kemudian, dengan alat AI termasuk model Gemini milik Google.
Situs php2shell.com mencantumkan riset oleh Wiz Research, OpenAI Codex Security dan Calif. Calif menyatakan menggunakan model yang tersedia secara umum, dan bahwa pengetahuan tentang sejarah PHP lebih penting daripada modelnya.
Artikel yang sama melaporkan bahwa Cloudflare mengaktifkan aturan WAF untuk pelanggannya sekitar sembilan jam sebelum pengungkapan, dan bahwa exploit proof-of-concept kemudian beredar di internet. Situs php2shell.com menyatakan aturan WAF atau CDN tidak boleh dianggap sebagai pengganti pembaruan PHP.
Linimasa
- PHP mengumumkan rilis keamanan kritis yang akan datang, dijadwalkan pada 21 Oktober pukul 14:00 UTC.
- PHP 8.5.12, 8.4.27, 8.3.36 dan 8.2.35 dirilis bersama advisori keamanan, dan Ubuntu menerbitkan USN-8948-1.
- PHP menerbitkan advisori informasional tentang session.upload_progress.enabled, untuk vektor lain yang kecil kemungkinannya dan dilacak sebagai CVE-2026-115560.
Siapa yang terdampak
PHP menyatakan semua instalasi PHP yang melayani permintaan web berisiko, termasuk PHP-FPM, Apache dengan mod_php, php-cgi, FrankenPHP dan LiteSpeed. PHP menilai risikonya paling tinggi pada mod_php, karena permintaan tanpa autentikasi dapat memicu serangan sebelum kode aplikasi apa pun berjalan.
Advisori GitHub mencantumkan versi di bawah 8.2.35, 8.3.36, 8.4.27 dan 8.5.12 sebagai yang terdampak. Situs php2shell.com, yang ditampilkan dijalankan oleh Wiz, menyatakan rilis yang terdampak mencakup hingga PHP 5.4.
PHP 8.1 dan yang lebih lama tidak lagi menerima pembaruan dari proyek PHP. Sebagian distribusi dan vendor LTS menyediakan perbaikan hasil backport, dan PHP menyediakan backport sumber minimal untuk PHP 7.4, 8.0 dan 8.1 bagi mereka yang membangun dari sumber.
Versi yang sudah diperbaiki
Versi yang sama dengan atau lebih tinggi dari rilis perbaikan pada branch-nya sudah memuat perbaikan. Paket distribusi dinilai diperbaiki berdasarkan versi paketnya, jadi gunakan tabel kedua untuk Ubuntu dan Debian.
Rilis resmi PHP
| Branch | Rilis pertama yang diperbaiki |
|---|---|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
Paket Ubuntu dan Debian
| Distribusi | Paket | Versi paket yang diperbaiki | Pemberitahuan |
|---|---|---|---|
| Ubuntu 26.10 | php8.5 | 8.5.9-0ubuntu2.1 | USN-8948-1 |
| Ubuntu 26.04 LTS | php8.5 | 8.5.4-0ubuntu1.5 | USN-8948-1 |
| Ubuntu 24.04 LTS | php8.3 | 8.3.6-0ubuntu0.24.04.13 | USN-8948-1 |
| Ubuntu 22.04 LTS | php8.1 | 8.1.2-1ubuntu2.28 | USN-8948-1 |
| Debian 12 (bookworm) | php8.2 | 8.2.35-1~deb12u1 | DLA-4848-1 |
| Debian 13 (trixie) | php8.4 | 8.4.27-1~deb13u1 | DSA-6574-1 |
Tabel hanya menampilkan apa yang dicantumkan dalam pemberitahuan resmi. Untuk distribusi lain, periksa pemberitahuan keamanan dari vendor Anda.
Periksa PHP Anda
Pilih asal PHP Anda, tempel teks versinya, dan alat ini membandingkannya dengan versi yang diperbaiki di atas. Alat ini hanya menilai teks yang Anda tempel. Alat ini tidak dapat melihat versi mana yang sedang berjalan, jadi pastikan juga bahwa layanan sudah dimulai ulang setelah pembaruan.
Perintah yang menampilkan versi
php -vdpkg -l 'php*' | grep ^iiapt-cache policy php8.3-fpm | grep Installed
Semuanya berjalan di browser Anda. Teks yang Anda tempel tidak diunggah.
Jika Anda tidak bisa memperbarui sekarang juga
PHP mencantumkan langkah-langkah ini. PHP menyatakan langkah-langkah ini mengurangi paparan terhadap jalur serangan tertentu tetapi tidak membuat instalasi menjadi aman, dan bahwa hanya pembaruan yang merupakan solusi lengkap.
CVE-2026-109618
- Setel memory_limit=-1, sebaiknya dengan cara yang tidak dapat ditimpa oleh aplikasi, seperti php_admin_value pada pool FPM atau konfigurasi Apache. Kegagalan alokasi di tingkat bawah tetap dapat mencapai jalur yang rentan.
- Setel post_max_size yang rendah: 8M untuk aplikasi yang tidak memerlukan unggahan file, dan 32M jika unggahan diperlukan. Jaga upload_max_filesize tetap di bawah post_max_size.
- Terapkan batas di web server atau proxy untuk ukuran permintaan yang sudah didekode, jumlah field input, jumlah bagian multipart, jumlah header, dan kedalaman nesting.
- Gunakan batas container atau cgroup sebagai batas ketersediaan. Jangan gunakan RLIMIT_AS atau RLIMIT_DATA, karena keduanya dapat menyebabkan kegagalan alokasi yang rentan.
CVE-2026-109619
- Setel session.upload_progress.enabled=0 di php.ini, pool FPM atau konfigurasi server, lalu mulai ulang setiap worker. Jangan mengandalkan ini_set() atau file .user.ini milik FPM.
- Pada PHP 8.5, setel fatal_error_backtraces=0 dan mulai ulang setiap worker.
- Hapus pengaturan yang tidak valid atau usang yang diterapkan per permintaan yang memunculkan pesan diagnostik sebelum inisialisasi. Menyembunyikan pesan diagnostik tidak membantu.
- Perbaiki error fatal dan batas waktu eksekusi yang dapat dijangkau penyerang.
Advisori informasional 23 Oktober
PHP menyarankan untuk menyetel session.upload_progress.enabled=0 sampai rilis perbaikan bug reguler berikutnya, agar terlindungi sepenuhnya dari satu vektor eksekusi kode jarak jauh lain yang kecil kemungkinannya. Jika Anda sudah menerapkannya dari advisori 21 Oktober, pertahankan pengaturan itu.
PHP menyatakan masalah ini hanya dapat terjadi pada kombinasi yang tidak biasa: sebuah aplikasi menyetel session.serialize_handler ke php_binary atau php_serialize dalam konfigurasinya, mengubahnya menjadi php saat runtime dengan ini_set() sebelum session_start(), dan session upload progress masih aktif. PHP akan menerbitkan advisori lengkap untuk CVE-2026-115560 bersama rilis berikutnya.
Yang tidak dilakukan halaman ini
- Halaman ini bukan advisori resmi dan tidak memberikan rincian exploit. Pengumuman dan advisori resmi di bawah adalah rujukan yang berwenang.
- Halaman ini tidak dapat mengetahui apakah sebuah sistem pernah diserang. Situs php2shell.com mencatat bahwa tidak adanya aktivitas mencurigakan tidak membuktikan bahwa sebuah sistem tidak terdampak.
- Paparan bergantung pada versi, konfigurasi, dan masing-masing kerentanan. Mitigasi dapat memengaruhi cara kerja sebuah aplikasi.