PHP2Shell meledak: CVSS 9.2, sehari sebelum pembukaan, dan dua lubang tersebut dalam kode selama 10 tahun.
Pertama, kesimpulannya adalah:PHP menghasilkan kode remote tidak sah untuk CVSS 9.2, nomor CVE-2026-109618 dan CVE-2026-109619, dengan nama panggilan PHP2Shell. Pada tanggal 20 Oktober, hal itu diumumkan ke publik dan pada tanggal 21 Oktober di 1400 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 adalah yang pertama untuk mendapatkan PHP 5.4, yang berarti...Mereka sudah dalam kode selama lebih dari satu dekade.Aku tidak tahu. Dan pada tahun 2024, ketika audit pengembangan inti PHP menemukan jalan OOM, tim bertemu untuk mendiskusikan 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.
Kalimat ini sekarang terlihat sangat ironis. Alasan untuk tidak mampu melakukannya adalah bukan bahwa lubang tidak signifikan, tetapi rantai terlalu kompleks untuk melampaui kapasitas fisik peneliti manusia. Lalu AI datang dan menulisnya.
Pertama, dapatkan kata "respon darurat multinasional" keluar dari jalan. Lihat.
Judul pesta favorit adalah "alarm global". Ini bukan berlebihan kali ini, tapi itu skor yang jelas.
- PHP ResmiSebuah pemberitahuan muka dikeluarkan pada 20 Oktober, menyatakan bahwa pada tanggal 21 Oktober pada 14: 00 UTC akan dirilis dalam versi yang aman jika rincian bocor atau ditangani. Akibatnya, nomor CVE ditikam ke Hacker News pada hari yang sama, dan rilis dijadwalkan tanggal 22 Oktober dipaksa untuk sehari sebelumnya.
- CERT- EU: penasihat rilis 2026-018 dan termasuk kedua CVE.
- Suar AwanPada tanggal 21 Oktober, CTO Dane Knucht langsung mengatakan "serangan awal telah muncul", dan aturan WAF dilepaskan secara penuh, termasuk pengguna bebas. Tapi dia menekankan dirinya bahwa itu hanya berhenti, dan solusi yang sebenarnya adalah menambal.
- Informasi ancaman AmazonMadPot madu kaleng tertangkap mencoba pada tanggal 17 Oktober, dan batch lain tertangkap pada 21 Oktober, dan muatan dan infrastruktur menunjuk ke sejumlah penyerang yang berbeda. php2shell "sudah umum digunakan".
- Watch Towr: Kedua lubang yang muncul kembali, sementara upaya untuk mengeksploitasi keduanya diamati.
Jadi "serangan telah ditemukan" bukan rendering, tapi fakta. Dan Respon Darurat Multinasional bukanlah pukulan -- hanya saja subjek utama dari tanggapan ini adalah produsen, CDN dan organisasi-organisasi darurat, bukan pemerintah di negara ini.
Dua, dua lubang, dua cara mati yang sama sekali berbeda.
Banyak orang berpikir itu adalah lubang dengan dua nomor, tidak. Ini adalah dua rute terpisah dari serangan, masing-masing CVSS 9.2.
CVE- 2026- 109618: Bom ketika memori habis
Proses permintaan terganggu ketika distribusi memori PHP gagal. Masalahnya adalah:Pada titik ini, data permintaan internal mungkin hanya setengah terinisialisasi, dan logika berikutnya akan menggunakan bagian ini unincorporated data buruk sebagai data yang valid.
Metode pemicu sederhana: membuat permintaan multipart untuk memporandakan memori. Yang aneh adalah,Ukuran permintaan tampaknya cocok langit-langit Anda.Ini bukan ukuran maksimum pasca yang Anda siapkan, itu adalah decodement dan konsumsi pemrosesan internal.
Yang terburuk adalah mod php. Mod php untuk Apache ketika meminta startup gagalMasih akan dibersihkan., jadi rantai ini dapat diselesaikan sebelum kode yang berlaku dijalankan. Kode PHP Anda begitu bersih, tidak ada celah, tidak ada menghentikannya.
PHP-FPM akan membunuh pekerja ketika gagal untuk memulai, hanya untuk memotong rantai, sehingga secara resmi, mod php adalah risiko tertinggi. Tapi perhatikan - ini tidak berarti bahwa FPM aman.Setelah sukses startupMasih ada kemungkinan eksploitasi.
CVE-2026-109619: Keadaan kotor diantara permintaan
Yang ini lebih buruk. PHP akan menggunakan ulang proses pekerja untuk memproses beberapa permintaan. Permintaan terakhir untuk melepaskan memori, pointer tetap dalam keadaan internal; permintaan berikutnya datang,Baca alamat kosong sebelum inisialisasi normal.Aku tidak tahu.
Kesalahan fatal (kehabisan memori, istirahat kinerja) mengganggu pembersihan keadaan. Lebih buruk lagi, beberapa diagnosis tidak mematikan selama shutdown akan menggantikan negara yang salah.Lakukan lagi.Aku tidak tahu.
Jalur resmi dikonfirmasi termasuk: RCEs dengan kesalahan fatal ketika PHP 8.5 mengaktifkan jejak Fatal error (pembukaan baku), dan siklus kehidupan sesi RCEs pada motor php dan FPM.session.upload_progress Secara default, Anda dapat bertindak sebagai konsumen awal dalam keadaan kotoran.Dan tidak perlu menerapkan panggilanAku tidak tahu.
Lubang ini masih terpasang.Kebocoran memoriAku tidak tahu. Apa yang bocor? adalah sandi, token, kunci API, sertifikat untuk permintaan lain dalam memori proses. Wiz secara langsung dibandingkan dengan Patah hati, yang tidak terlalu banyak.
Timeline, lebih dari judul Lihat.
| Waktu | Apa yang terjadi? |
|---|---|
| Tahun 2024 | Audit pengembangan inti PHP menemukan OOM, bug itu, tim tidak memiliki persetujuan pada hukum, meletakkannya ditahan. |
| 2026-08 | Ryan Austin dari Calif mengidentifikasi celah dengan OpenAI GPT-5.6 Sol; Wiz Independent Discovery |
| 2026-10-17 | Amazon MadPot, madu dapat merekam upaya, empat hari sebelum pembukaan. |
| 2026-10-20 | Nomor CVE bocor di Berita Hacker dan Media Sosial, PHP |
| 2026-10-21 | 14: 00 UTC Publikasi 8.5.12 / 8.4,27 / 8.3.36 / 8.2.35 |
17 Oktober harus dipilih keluar.Hari umum adalah tanggal 20, tapi serangan terjadi pada tanggal 17.Proposal Amazon sederhana: titik awal tidak boleh pada tanggal pengungkapan, tapi ke depan setidaknya 17 Oktober.
Seperti bagaimana penyerang mendapat informasi di muka, Amazon mengatakan "tidak jelas". Aku tidak bisa pergi ke dalam ini, tetapi Anda harus menerima kenyataan.Hari pengungkapan tidak pernah hari serangan, tapi hari Anda akhirnya tahu.
Empat, kali ini benar-benar AI.
Blog Wiz berisi kalimat yang saya baca dua kali: "kelemahan ini telah ada selama beberapa dekade, tetapi untuk membuktikan bahwa mereka dapat digunakan, mereka membutuhkan rantai langkah yang sangat kompleks, pada margin kemampuan sebenarnya dari peneliti manusia.Model AI Frontline secara signifikan menurunkan ambang batas ini.Aku tidak tahu.
Ryan Austin, seorang peneliti di Calif, ditemukan dalam proyek OpenAI "Patch the Planet" dengan GPT-5.6 Sol. Wiz menemukan masalah yang sama secara independen. Untuk memanfaatkannya, kita perlu rantai kesalahan dan target setiap target.Tata letak memori berulang kali dikalibrasiWiz mengatakan model garis depan memungkinkan mereka untuk mengembangkan aplikasi yang dapat digunakan untuk aplikasi yang berbeda dalam beberapa jam.
Ini tidak berarti "AI menang lagi".Intinya adalah bahwa parit "kompleks" gagal.
Banyak celah lama belum dipukuli dalam dua dekade terakhir, bukan karena mereka tidak serius, tetapi karena ambang pemanfaatan terlalu tinggi - beberapa minggu investasi oleh peneliti atas dan sedikit keberuntungan. Jadi Anda menempatkan mereka dalam kolom "berisiko teoritis". Sekarang pagar ini hilang.
Mereka lubang sepuluh tahun-tua yang berada dalam sistem Anda dan dinilai sebagai "sulit dan tidak diproses" harus dinilai ulang.
Lima, mana yang harus Anda pergi ke?
| Cabang | Versi yang terkena | Buang |
|---|---|---|
| PHP 8.5 | < 8.5.12 | Naikkan menjadi 8,5,12. |
| PHP 8.4 | < 8.4.27 | Naikkan menjadi 8.4.27. |
| PHP 8.3 | < 8.3.36 | Naikkan menjadi 8,3.36. |
| PHP 8.2 | < 8.2.35 | Naikkan menjadi 8.2.35. |
| PHP 7.4 / 8,0 / 8.1 | Semua | Secara resmi tidak diterbitkan, hanya tingkat sumber |
| PHP 5.4 - 7.3 | Semua | EOL, pemerintah tidak memperbaikinya. Bisnis |
Beberapa nyata-kehidupan pengingat:
- Linux Rilis dan LTS VendorPunya patch di muka.Periksa produsen apos; s penasihat dengan paket distribusi. Jangan terburu-buru kode sumber.
- Gunakan
rpms.remirepo.netCatatan: PHP resmi menyatakan sumber pada tanggal 21 Oktober.Tak ada pemutakhiranJadi Anda dapat beralih ke paket distribusi atau membuatnya dari source code. - Binari Windows dari PHP 8.5 juga pada halaman pengunduhan resmi.
- Jangan berpikir tidak apa-apa untuk menjalankan dalam wadah - versi PHP cermin kontainer harus diperiksa.
Enam, jika Anda tidak bisa mendapatkan patch, membuat empat ini pertama.
Keadaan pertama:Tak satu pun dari ini akan membuat Anda aman.Frase resmi PHP adalah "mengurangi paparan terhadap jalur serangan tertentu, tapi jangan membuat instalasi lebih aman". Nilai mereka adalah untuk memberikan Anda waktu untuk mendapatkan patch.
Set batas memori ke -1
Tujuan: Untuk mematikan topi memori yang dapat diprediksi PHP gagal, yaitu CVE-2026-109618 telah mengkonfirmasi kondisi pemicu yang tergantung.
Intinya adalah,Bagaimana?: yang ditetapkan di tempat-tempat di mana aplikasi tidak diubah, seperti FPM Pool php_admin_value atau Konfigurasi Apache. Anda harus memeriksa bahwa tidak ada muncul, direktori, pengaturan aplikasi untuk menambahkan limit kembali.Kemudian restart setiap pekerja.
Harga sudah jelas: kau keluar dari PHP sendiri, dan kegagalan distribusi bawah mungkin masih berada di jalur berbahaya itu. Jadi itu harus menjadi wadah atau cgroup untuk membatasi penutup - tetapi hanya strategi untuk "membunuh orang yang terpengaruh".Jangan pernah gunakan RLIMIT AS atau RLIMIT DATAMereka berdua tepatnya jenis kegagalan distribusi yang menciptakan celah.
Kurangi ukuran maksimal post
Situs tanpa berkas 8M ke berkas 32M dan dijamin upload_max_filesize Kurang dari itu. Pada saat yang sama, batas ditambahkan ke server web atau lapisan proksi - volume permintaan didekode, jumlah ruas, jumlah bagian multipart, jumlah kepala, kedalaman sarang.Pembatasan ini harus menutupi permintaan yang tidak valid Kontent- PanjangAtau kita akan memutar.
3. Sedang mematikan proses sesi. upload
session.upload_progress.enabled = 0
Hal ini ditulis dalam php.ini, FPM alat atau konfigurasi server.Ini harus efektif sebelum permintaan.Aku tidak tahu. Gunakan ini_set() Atau FPM. .user.ini Sudah terlambat - itu kotor. Perubahan juga untuk me-restart semua pekerja.
PHP 8.5 Satu lagi singel
fatal_error_backtraces = 0
Blok ini hanya dikonfirmasi kesalahan backtracks fatal, tanpa varian lain. Juga memerlukan pengaturan level administrator + restart workker.
Selain itu, resmi menyebutkan bahwa banyak orang akan mengabaikan:Perbaiki kesalahan fatal bahwa penyerang dapat memicu dan mengeksekusi waktu keluar., termasuk back-up, upload, impor pemrosesan, membersihkan kegagalan. Dan...Hapus konfigurasi usang atau ilegal yang dikenakan pada permintaan-oleh-permintaan dasar- Mereka meludahkan informasi diagnostik sebelum diinisialisasi dan memberi makan kebocoran.
Kalimat terakhir ini paling mudah disalahpahami:Ini tidak bekerja untuk menyembunyikan diagnosis dengan laporan kesalahan, menampilkan kesalahan atau @.Ini tidak akan terjadi.
VII. REAL LESSONS INI
Saya tidak ingin menyelesaikan dengan menulis "Tutup patch". Tentu saja itu patch. Hari ini. Tapi beberapa penilaian harus berubah.
- Istilah "sulit untuk digunakan" tidak lagi sama dengan "diresepkan".PHP rantai akses lubang ini cukup rumit untuk membutuhkan bantuan AI, yang sudah membantu. Lubang lama dalam daftar aset Anda yang menandai "risiko teori" harus dinilai ulang.
- Bahasa berjalan pada satu titik.WordPress, Drupal, Joomla, Magento, MediaWiki semua dijalankan pada PHP, audit aplikasi Anda bersih, dan inti PHP dalam kesulitan. Rhythm kompensasi dari lapisan infrastruktur, dengan lapisan aplikasi terpisah.
- "Kode aplikasi rusak tanpa berjalan". WAF hanya bisa menunda.Cloudflare sendiri mengatakan itu adalah jeda. Menempatkan WAF sebagai solusi sama dengan memberikan kehidupan untuk cakupan aturan.
- Ada banyak situs lama di negara ini menggunakan PHP.Stasiun-stasiun yang berjalan di PHP 5.6 / 7.0, yang lama tidak dipertahankan dan digantung pada mainframe awan, berada dalam paparan dari 1,3 sampai 1.9 juta. Mereka tidak akan menerima pemberitahuan.
Kalibrasi data dicatat: W3Techs mengatakan P.S. account untuk 69.3 persen bahasa yang dikenal oleh layanan, dan Wiz 70 persen; eksposur host, peneliti keamanan Silas Cutler memperkirakan lebih dari 1.3 juta, dan pencarian Henk Poley lebih dari 1,9 juta. Angka-angka ini kaliber yang berbeda dan tidak menggunakannya sebagai nilai yang tepat, tetapi skala yang sama -Jutaan, secara global.
Satu detail lebih layak diingat: ketika nomor CVE bocor, poin CVSS yang keluar adalah 10,0, PHP secara resmi dikonfirmasi.Nilai itu salah.Sebenarnya 9.2. Tidak ada yang akan tahu apa-apa tentang detail ini, tetapi akan selalu dalam sirkulasi. Melihat 10,0, Anda tahu apa gelombang itu.
Sebuah lubang 10 tahun, dua bulan penelitian yang dibantu, empat hari pemanfaatan awal, satu hari jendela patch. Timticale ini adalah normal dari semua perangkat lunak dasar yang berikut.
Periksa versinya sekarang.php -vAtau melihat cermin kontainer Anda di tag. Jangan menunggu untuk besok.