Pada 21 Oktober, projek PHP menerbitkan nasihat keselamatan bertajuk "Critical remote code execution vulnerabilities, update now": PHP 8.5.12, 8.4.27, 8.3.36 dan 8.2.35 membaiki dua kelemahan kritikal, CVE-2026-109618 (GHSA-w8hw-w9fx-j79w) dan CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp). Kedua-duanya dinilai Critical dengan skor CVSS v4 9.2 dalam nasihat GitHub masing-masing, dan kedua-duanya boleh membolehkan pelaksanaan kod jauh tanpa pengesahan. Projek itu menggesa semua pengguna PHP supaya mengemas kini dengan segera. Pasangan kelemahan ini juga digelar php2shell.

Siapa yang Terjejas

  • Nasihat itu meliputi semua pemasangan PHP yang melayan permintaan web, termasuk PHP-FPM, Apache dengan mod_php, php-cgi, FrankenPHP dan LiteSpeed. Pasukan PHP menganggap risiko paling tinggi bagi mod_php, dengan eksploit yang telah ditunjukkan di mana satu permintaan tanpa pengesahan mencetuskan serangan sebelum sebarang kod aplikasi dijalankan.
  • CVE-2026-109618: pengendalian kehabisan memori (OOM) boleh mengganggu PHP ketika data permintaan dalaman baru dimulakan sebahagiannya, dan pembersihan permintaan kemudian boleh menganggap data tidak sah itu sebagai sah.
  • CVE-2026-109619: keadaan dalaman milik sesuatu permintaan boleh kekal selepas memori yang menyokongnya dibebaskan, dan permintaan seterusnya yang dikendalikan oleh worker yang sama boleh menggunakan keadaan lapuk itu sebelum permulaan biasa menetapkannya semula.
  • Pepijat ini berada dalam masa jalan PHP itu sendiri, bukan dalam WordPress atau mana-mana pemalam. WordPress menyatakan pada hari yang sama bahawa tiada kemas kini WordPress diperlukan atau dirancang untuk isu ini; yang perlu dikemas kini ialah PHP. Dalam WordPress, versi PHP boleh dilihat di Alatan → Kesihatan Tapak → Maklumat → Pelayan.

Cara Mengemas Kini

  • Semak versi dengan php -v. Jika anda membina daripada sumber rasmi, naik taraf ke 8.5.12, 8.4.27, 8.3.36 atau 8.2.35.
  • Jika anda menggunakan pakej pengedaran: Ubuntu menerbitkan USN-8948-1 pada 21 Oktober, dengan php8.1 8.1.2-1ubuntu2.28 untuk 22.04 dan php8.3 8.3.6-0ubuntu0.24.04.13 untuk 24.04; Debian 13 mempunyai php8.4 8.4.27-1~deb13u1 (DSA-6574-1) dan Debian 12 mempunyai php8.2 8.2.35-1~deb12u1 (DLA-4848-1). Selepas sudo apt update && sudo apt upgrade, mulakan semula PHP-FPM atau Apache (contohnya sudo systemctl restart php8.3-fpm) — worker yang sudah berjalan tidak akan menggunakan kod baharu dengan sendirinya.
  • PHP 8.1 dan yang lebih lama tidak lagi menerima kemas kini daripada projek PHP; jika pengedaran anda membawa pembaikan ke versi lama itu (seperti 8.1 dalam Ubuntu 22.04 di atas), cukup kemas kini pakej sistem. Memandangkan tahap keterukannya, pasukan keselamatan PHP juga menyediakan tampung sumber minimum untuk 7.4, 8.0 dan 8.1 bagi mereka yang membina sendiri daripada sumber.
  • PHP yang dipasang oleh panel seperti aaPanel, atau PHP di dalam imej Docker, tidak datang daripada apt sistem: semak panel untuk versi baharu, atau tarik imej yang dikemas kini dan cipta semula bekas. Lihat mengurus VPS dengan aaPanel dan Docker pada VPS.

Jika Belum Boleh Mengemas Kini: Langkah Sementara Rasmi

Pasukan PHP menegaskan bahawa hanya kemas kini merupakan penyelesaian yang lengkap; langkah di bawah mengurangkan pendedahan kepada laluan serangan tertentu tetapi tidak menjadikan pemasangan selamat:

  • Untuk CVE-2026-109618: tetapkan memory_limit=-1, sebaik-baiknya dengan cara yang tidak boleh diubah oleh aplikasi (seperti php_admin_value dalam kolam FPM atau konfigurasi Apache), dan tetapkan post_max_size yang rendah — 8M bagi aplikasi yang tidak memerlukan muat naik fail, 32M jika memerlukannya — dengan upload_max_filesize kekal di bawahnya.
  • Untuk CVE-2026-109619: tetapkan session.upload_progress.enabled=0 dan mulakan semula setiap worker, dalam php.ini, kolam FPM atau konfigurasi pelayan — bukan melalui ini_set() atau fail .user.ini FPM. Pada PHP 8.5, tetapkan juga fatal_error_backtraces=0.
  • Pada 23 Oktober pasukan PHP menambah nasihat makluman: walaupun sudah menggunakan 8.5.12, kekalkan session.upload_progress.enabled=0 sehingga keluaran biasa seterusnya, kerana isu berkaitan yang jarang tercetus, CVE-2026-115560, hanya akan dibaiki ketika itu.

CDN di Hadapan Tidak Menggantikan Tampung

Cloudflare menyatakan pada 21 Oktober bahawa kelemahan ini bocor sebelum keluaran rasmi dan ia telah memerhati trafik serangan yang menyasarkan pelanggannya; sejak 03:02 UTC pada 21 Oktober, tapak yang menggunakan WAF percuma atau berbayarnya dilindungi secara lalai. Cloudflare sendiri menyatakan anda tetap perlu menampal PHP. Lagipun WAF hanya menapis trafik yang melaluinya: jika IP pelayan asal anda boleh dicapai secara terus, penyerang boleh memintas CDN. Selepas mengemas kini, jika tapak itu terdedah kepada internet sebelum ini, ikuti menyiasat VPS yang telah dicerobohi untuk mencari proses yang tidak dijangka dan fail yang tidak dikenali. Pemilik WordPress juga perlu memastikan kelemahan teras WordPress pada bulan September sudah dibaiki, dan pengguna nginx patut melihat lima pembaikan nginx yang dikeluarkan pada 14 Oktober.