← Kembali ke senarai

PHP2Shell diledakkan: CVSS 9.2, sehari sebelum pembukaan, dan kedua lubang itu dalam kode selama 10 tahun.

itadol5j

Pertama, kesimpulannya adalah:PHPHP menghasilkan kode remote yang tidak sah untuk CVSS 9.2, nomor CVE-2026-109618 dan CVE-2026-109619, dengan nama panggilan PHP2Shell. Pada tanggal 20 Oktober, dibuat publik dan pada tanggal 21 Oktober pukul 14.00 UTC patch dirilis, sementara tabung madu Amazon direkam pada tanggal 17 Oktober — empat hari sebelum pembukaan.

Apa yang lebih buruk dari itu adalah hal lain: kedua lubang ini adalah yang pertama sampai ke PHP 5.4, yang berarti...Mereka sudah dalam kode selama lebih dari satu dekade.Aku tidak tahu. Dan pada tahun 2024, ketika audit pengembang inti PHP menemukan jalur OOM, tim bertemu untuk membahas bagaimana memperbaikinya.Kami tidak setuju dan kemudian kami tidak memperbaikinya.Aku tidak tahu. Alasannya adalah bahwa tidak ada yang berpikir itu benar-benar bisa digunakan.

Frasa ini sekarang terlihat sangat ironis. Alasan untuk tidak dapat melakukannya bukanlah karena lubang itu tidak signifikan, tetapi bahwa rantai itu terlalu kompleks untuk melampaui kapasitas fisik peneliti manusia. Kemudian AI datang dan menulisnya.

Kover Lubang PHP2Shell: Lingkup dan Host Dedahan Impak

Pertama, dapatkan kata - respon darurat multinasional" keluar dari jalan. Lihat.

Kata favorit partai judul adalah " alarm global." Kali ini bukan berlebihan, tapi nilai yang jelas.

  • PHP PHP PHP ResmiSebuah pemberitahuan pendahuluan dikeluarkan pada 20 Oktober, menyatakan bahwa pada 21 Oktober pukul 14:00 UTC akan dirilis dalam versi yang aman jika rincian bocor atau dilapangan. Akibatnya, nomor CVE ditikam ke Hacker News pada hari yang sama, dan rilis yang dijadwalkan 22 Oktober dipaksa untuk sehari sebelumnya.
  • ¡CERT-EUPenasihat pembebasan 2026-018 dan termasuk kedua CVES.
  • CloudflarePada 21 Oktober, CTO Dane Knecht secara langsung mengatakan "serangan awal telah terlihat muncul", dan aturan WAF dirilis secara penuh, termasuk pengguna bebas. Tapi dia menekankan pada dirinya sendiri bahwa itu hanya stopgap, dan solusi sebenarnya adalah patching.
  • Informasi ancaman AmazonMadPot kaleng madu tertangkap saat mencoba pada 17 Oktober, dan kelompok lain tertangkap pada 21 Oktober, dan muatan dan infrastruktur menunjuk ke sejumlah penyerang yang berbeda. php2shell "sudah digunakan secara luas".
  • Watch TowrKedua lubang itu muncul kembali, sementara upaya untuk mengeksploitasi keduanya diamati.

Jadi, serangan telah ditemukan" bukanlah penerapan, tetapi fakta. Dan respon Darurat Multinasional bukanlah sebuah pukulan -- hanya saja subjek utama dari respon adalah produsen, CDN dan organisasi darurat, bukan pemerintah manapun di negara ini.

Dua, dua lubang, dua cara yang sama sekali berbeda untuk mati.

Banyak orang berpikir itu lubang dengan dua angka, tidak. Ini adalah dua rute serangan terpisah, masing-masing CVSS 9.2.

Perbandingan jalur teknis untuk dua lubang

Bom ketika ingatan habis

Pemrosesan permintaan terganggu ketika distribusi memori PHP gagal. Masalahnya adalah:Pada titik ini, data permintaan internal mungkin hanya setengah-initialized, dan logika pembersihan selanjutnya akan menggunakan bagian yang tidak terinkorporasi ini data buruk sebagai data valid.

Metode pemicunya sederhana: menyusun permintaan multi-bagian untuk memohon ingatan. Anehnya,Ukuran permintaan tampaknya cocok dengan langit-langitmu.Ini bukan ukuran post max yang Anda atur, itu adalah dekoder dan konsumsi pemrosesan internal.

Yang terburuk adalah mod php. Mode php untuk Apache ketika permintaan startup gagalIni masih akan membersihkan.Jadi rantai ini bisa diselesaikan sebelum kode yang ada dijalankan. Kode PHP Anda begitu bersih, tidak ada celah, tidak ada menghentikannya.

PHP-FPM akan membunuh pekerja ketika gagal memulai, hanya untuk memotong rantai, jadi secara resmi, mod php adalah risiko tertinggi. Tapi perhatikan -- ini bukan berarti FPM aman.Lulusan yang suksesMasih ada kemungkinan eksploitasi.

Keadaan kotor antara permintaan

Yang ini lebih buruk. PHP PHP akan menggunakan kembali proses pekerja untuk memproses permintaan berganda. Permintaan terakhir untuk melepaskan memori, penunjuk tetap dalam keadaan internal; permintaan berikutnya masuk,Baca alamat kosong sebelum inisialisasi normal.Aku tidak tahu.

Kesalahan fatal akibat kematian (depletion of memory, performa timeout) mengganggu pembersihan keadaan. Lebih buruk lagi, beberapa diagnosis non mematikan selama penutupan akan menggantikan keadaan yang salah.Buat ulang.Aku tidak tahu.

Jalur yang dikonfirmasi secara resmi oleh karena itu termasuk: RCE dengan kesalahan fatal ketika PHP 8,5 memungkinkan Fatal error backtrace (pembukaan awal), dan siklus hidup sesi RCE pada motor php dan FPM.session.upload_progress Secara default, Anda dapat bertindak sebagai konsumen awal dalam keadaan kotoran.Dan tidak perlu untuk menerapkan panggilanAku tidak tahu.

Lubang ini masih melekat.Kebocoran memoriAku tidak tahu. Apa yang bocor? Kata sandi, token, kunci API, sertifikat untuk permintaan lain dalam memori proses. Wiz secara langsung dibandingkan dengan Heartbled, yang tidak terlalu banyak.

Timeline, lebih dari sekedar judul Look.

PHP2Shell Event Timeline: menyisihkan dari 2024 hingga 10-17 penggunaan lapangan
WaktuApa yang terjadi?
Tahun 2024Audit pengembang inti dari PHP, menemukan OOM, bahwa bug, tim tidak memiliki konsensus tentang hukum, meletakkannya ditahan.
2026-08Ryan Austin dari Calif mengidentifikasi celah dengan OpenAI GPT-5,6 Sol; Wiz Independent Discovery
2026-10-17Amazon MadPot, madu dapat merekam percobaan, empat hari sebelum pembukaan.
2026-10-20Nomor CVE bocor di Hacker News dan Social Media, PHP
2026-10-21Jam 14:00 UTC Publikasi 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35

17 Oktober harus dipilih.Hari publik adalah tanggal 20, tetapi serangan terjadi pada tanggal 17.Usulan Amazon sederhana: titik awal seharusnya tidak pada tanggal pengungkapan, tetapi maju ke setidaknya 17 Oktober.

Mengenai bagaimana penyerang mendapatkan informasi di muka, Amazon berkata "tidak jelas." Aku tak bisa melakukan ini, tapi kau harus menerima kenyataan.Hari pengungkapan tidak pernah hari serangan, tapi hari yang akhirnya kau tahu.

Empat, kali ini benar-benar AI.

Blog karya Darinda Wiz memuat sebuah kalimat yang telah saya baca dua kali, ” Kekurangan - kekurangan yang mendasari ini telah ada selama puluhan tahun, tetapi untuk membuktikan bahwa mereka dapat digunakan, mereka membutuhkan rantai langkah - langkah yang sangat rumit, pada margin kemampuan sebenarnya dari para peneliti manusia.Model Frontline AI secara signifikan menurunkan ambang ini.Aku tidak tahu.

Spesifikasi: Ryan Austin, seorang peneliti di Calif, ditemukan dalam proyek OpenAI "Patch the Planet" dengan GPT-5-56 Sol. Wiz menemukan masalah yang sama secara independen. Untuk menggunakannya, kita perlu rantai kesalahan dan target setiap target.Tata letak memori zombi berkali-kali dikalibrasiKata Wiz, model garis depan memungkinkan mereka mengembangkan aplikasi yang dapat digunakan untuk aplikasi yang berbeda dalam waktu berjam-jam.

Ini tidak berarti "AI menang lagi".Intinya adalah bahwa parit dari "kompleks" gagal.

Banyak lubang lobang tua yang belum pernah ditabuh selama dua dekade terakhir, bukan karena tidak serius, melainkan karena ambang pemanfaatannya terlalu tinggi — beberapa minggu investasi oleh peneliti top dan sedikit keberuntungan. Jadi kau masukkan mereka ke kolom yang berisiko. Sekarang pagar ini hilang.

Lubang-lubang sepuluh tahun yang terletak di sistem Anda dan dinilai sebagai "difficult dan tidak diproses" harus dirating ulang.

Lima, mana yang harus Anda pergi ke?

Perbandingan versi PHP yang dipulihkan
CabangVersi dipengaruhiDisposal
PHP 8,5< 8.5.12Naikkan ke 8,5,12.
PHP PHP 8.4< 8.4.27Naikkan ke 8,4.27.
PHP PHP 8.3< 8.3.36Naikkan ke 8,3,36.
PHP PHP 8.2< 8.2.35Naikkan ke 8,2,35.
PHP PHP 7.4 / 8.0 / 8.1SemuaSecara resmi tidak diterbitkan, hanya tingkat sumber
PHP PHP 5.4 – 7.3SemuaEOL, pemerintah tidak memperbaikinya. Bisnis

Beberapa pengingat kehidupan nyata:

  • Pengeluaran Linux dan Penjual LTSAda patch di muka.Periksa penasihat pabrikmu dengan paket distribusi. Jangan terburu-buru kode sumber.
  • Guna rpms.remirepo.net Catatan: PHP secara resmi menyatakan sumbernya pada 21 Oktober.Tidak ada pembaruanJadi Anda dapat beralih ke paket distribusi atau membuatnya dari kode sumber.
  • binari Windows PHP 8.5 juga ada di halaman unduhan resmi.
  • Jangan berpikir tidak apa-apa untuk berjalan di dalam wadah -- versi PHP dari cermin kontainer harus diperiksa.

Enam, jika Anda tidak bisa mendapatkan patch, membuat empat ini pertama.

Negara bagian pertama:Tak ada satupun di bawah ini yang akan membuatmu aman.Frasa PHP resmi adalah "mengurangi paparan ke jalur serangan tertentu, tetapi tidak membuat instalasi lebih aman". Nilai mereka adalah memberi Anda waktu untuk mendapatkan patch.

Empat langkah mitigasi interim dan keterbatasan mereka

Kifdon Set batas memori ke -1

Untuk mengambil kap memori PHP yang dapat diprediksi gagal, misalnya CVE-2026-109618 telah mengkonfirmasi kondisi pemicu yang tergantung.

Intinya adalah,Bagaimana?Untuk diatur di tempat-tempat di mana aplikasi tidak diubah, seperti FPM Pool php_admin_value Apache Configuration. Anda harus memeriksa bahwa tidak ada pop, direktori, pengaturan aplikasi untuk menambah batas kembali.Dan kemudian memulai ulang setiap pekerja.

Harganya jelas: Anda keluar dari pagar memori PHP sendiri, dan kegagalan distribusi bawah mungkin masih berada di jalan berbahaya itu. Jadi itu harus menjadi wadah atau cgroup untuk membatasi penutup -- tapi itu hanya strategi untuk "membunuh orang-orang yang terpengaruh."Tidak pernah menggunakan RLIMIT AS atau RLIMIT DATAMereka berdua adalah persis jenis kegagalan distribusi yang menciptakan celah.

Kurangi ukuran maksimum pos

Tak ada berkas 8M untuk file 32M dan dijamin upload_max_filesize Kurang dari itu. Pada saat yang sama, batasan ditambahkan ke server web atau lapisan proksi - volume permintaan didekode, jumlah medan, jumlah bagian multibagian, jumlah kepala, kedalaman sarang.Pembatasan ini harus meliputi permintaan yang tidak valid Content-LengthAtau kita akan memutarinya.

3.

session.upload_progress.enabled = 0

Ini ditulis dalam php.ini, FPM tool atau konfigurasi server.Ini harus efektif sebelum permintaan.Aku tidak tahu. Guna ini_set() Atau FPM. .user.ini Sudah terlambat -- itu kotor. Avolusi juga untuk memulai kembali semua pekerja.

PHP 8,5 Satu lagi tunggal

fatal_error_backtraces = 0

Blok ini hanya mengkonfirmasi kesalahan fatal backtrack, tanpa varian lain. rangsang juga memerlukan pengaturan level administrator + start ulang workker.

Selain itu, pejabat menyebutkan bahwa banyak orang akan mengabaikan:Bioxe memperbaiki kesalahan fatal yang dapat memicu dan mengeksekusi waktu habis., termasuk back-up, upload, pengolahan impor, pembersihan kegagalan. Dan...Ketiadaan dihapus atau konfigurasi ilegal yang dikenakan atas dasar permintaan demi permintaan- Mereka memuntahkan informasi diagnostik sebelum diinisialisasi dan memberi makan kebocoran.

Kalimat terakhir ini paling mudah disalahpahami:Tidak berhasil menyembunyikan diagnosis dengan laporan kesalahan, kesalahan tampilan atau @.Ini tidak terjadi.

VII. THESSON YANG TELAHKAN INI

Aku tidak ingin selesai dengan menulis " Tutup patchnya." Tentu saja itu patch. Hari ini. Tapi beberapa penilaian harus berubah.

  1. Istilah "difficult untuk digunakan" tidak lagi sama dengan "ditulis".PHP lubang ini rantai akses cukup rumit untuk membutuhkan bantuan AI, yang telah membantu. Lubang lama dalam daftar asetmu yang memberi mark "teori risiko" harus dirating ulang.
  2. Bahasa suku bahasa berjalan di satu titik.KataPress, Drupal, Joomla, Magento, MediaWiki semua berjalan di PHP, audit kode aplikasi Anda bersih, dan inti PHP dalam kesulitan. Rima kompensasi lapisan infrastruktur, dengan lapisan aplikasi dipisahkan.
  3. kode aplikasi rusak tanpa berjalan." WAF hanya bisa menunda.Cloudflare sendiri mengatakan itu stopgap. Memasukkan WAF sebagai solusi sama dengan memberikan kehidupan untuk menguasai cakupan.
  4. Ada banyak situs lama di negara ini menggunakan PHP.Stasiun-stasiun yang berjalan di PHP 5.6/7.0, yang sudah lama tidak dipertahankan dan digantung pada kerangka utama awan, berada dalam paparan ini 1,3 hingga 1,9 juta. Mereka tidak akan menerima pemberitahuan apapun.

Kalibrasi data wikipedia tercatat: W3Techs mengatakan akun PHP untuk 69,3 persen bahasa yang dikenal oleh layanan, dan Wiz 70 per sen; host pengungkapan, peneliti keamanan Silas Cutler memperkirakan lebih dari 1,3 juta, dan pencarian Henk Poley ' s Shodan lebih dari 1,9 juta. Angka-angka ini adalah dari kaliber yang berbeda dan tidak menggunakannya sebagai nilai yang tepat, tetapi skala adalah sama -Jutaan, secara global.

Satu detail lagi patut diingat: ketika nomor CVE bocor, poin CVSS yang keluar adalah 10.0, PHP resmi dikonfirmasi.Skor itu salah.Sebenarnya 9.2. Tidak ada yang tahu apa-apa tentang detail ini, tapi akan selalu beredar. Kau tahu gelombang apa itu.

Sebuah lubang 10 tahun, dua bulan penelitian AI-assisted, empat hari pemanfaatan awal, satu-hari patch jendela. Skala waktu ini adalah normal dari semua perangkat lunak dasar yang mengikuti.

Periksa versi sekarang.php -vAtau lihat cermin wadahmu. Jangan menunggu besok.