· 9 分鐘閱讀
PHP2Shell(下):禁運破裂、在野攻擊,以及你現在該怎麼做
PHP2Shell 的協調披露提前破局,蜜罐確認在野成功利用,CISA 已列入 KEV。下篇整理時間線、台灣約 2.8 萬個 PHP 站的盤點,以及檢查版本、SAPI、更新與重啟的清單。
上篇用房卡機比喻講了 PHP2Shell 是什麼、根因,以及 AI 怎麼加速發現。這篇講:缺陷消息在維修隊準備好之前就流出、假櫃檯怎麼抓到試圖開鎖的人、台灣還有多少飯店在跑這型機器,以及你現在該做的清單。
再次聲明:房卡機比喻是簡化,用來對齊直覺;真正決定你安不安全的,是版本號、SAPI,以及有沒有打上補丁。
一、禁運怎麼破:修補還沒好,消息先跑了
協調披露本來排 10 月 22 日(UTC) 公開。實際時間線大致如下(有時刻盡量標台北時間=UTC+8;公開「整點」在不同文件間約有半小時落差):
- 10/20 約 23:00(台北)/約 15:00 UTC:依 PHP Foundation,兩個 CVE 編號開始在論壇與社群流傳,夾帶錯誤發佈時間與錯誤 CVSS 10.0(實際為 9.2);細節仍未洩。PHP 隨後把預告提前、並把公開日從 10/22 改到 10/21 14:00 UTC(台北 22:00)。
- 10/20 稍晚:Calif 誤把示範影片設成公開,隨即收回;影響程度未獨立核實。
- 10/21 15:41(台北)/07:41 UTC:Chainguard 單方面公開含修補的 PHP 映像——比協調發佈早六小時以上(Foundation 用語)。可以想成有一家供應商把新韌體提早出貨。CEO Dan Lorenc 事後解釋為保護自家客戶。
- 10/21 晚間:PHP 提前公開。原訂 14:00 UTC(台北 22:00);實際時刻各源不一:CERT-EU 約 13:30 UTC、部分追蹤寫 GitHub 公告約 13:34 UTC、Infosecurity 寫 4pm BST(15:00 UTC)、OpenAI 寫「約 14:00 UTC」。Wiz/Calif 文只有日期、未給時刻,不採其當時間戳。本文以「約台北時間 21:30–22:00」概括,並保留歧異。
- 同日:PHP Foundation 長文、Calif/Wiz/OpenAI 技術文、CISA 緊急警示先後出爐。
洩漏的 CVE 編號,像是「這台房卡機有缺陷」的新聞在維修隊備好韌體之前就上了頭條。提早出映像保護了部分客戶,也讓攻擊者提早確認「修補內容」與「有東西可逆向」——這是協調披露裡永遠拉扯的張力。
二、在野:假櫃檯看到了什麼
把蜜罐想成故意架給賊看的假櫃檯:
- AWS MadPot:公開前約四天(約 10/17)就記錄到針對相關路徑的嘗試;公開日後活動增加。AWS 寫的是嘗試/掃描,並未宣稱已確認真實客戶主機被成功 RCE。
- 10/21–22:Cloudflare、watchTowr 等觀測到利用嘗試;CISA 警示發布時寫「截至發布時未觀測到成功利用」。多國政府與企業曾預防性下線修補(銀行、零售、遊戲、醫院、政府服務等類別見 TechCrunch 等;具體站名若只有維基條目、沒有一手報導,本文不點名)。
- 10/24:研究員 Adel Karimi(Perplexity)公開蜜罐結果——Apache mod_php、PHP 8.4.26、單 worker 環境上確認 35 次成功 shell,來自 2 個 IP;未見第二階段 payload(SecurityWeek/BleepingComputer)。這是「蜜罐被成功利用」的公開證據,不是「大量真實正式站點已被入侵」。至撰稿時,仍沒有一手來源確認某知名生產站點因 PHP2Shell 被成功接管。看到的是攻擊嘗試與蜜罐流量。
- Marcus Hutchins:提醒公開網路上大量「AI 生成的假 PoC」——像假的「怎麼破解房卡機」教學四處流傳。看到 GitHub 上的 exploit 不要照抄、更不要在正式機驗證。
CISA KEV:CISA 在 10/26(美國時間)把兩個 CVE 都列入 Known Exploited Vulnerabilities 目錄,並同步更新 21 日的 PHP 警示。21 日警示發布時寫的是「未觀測到成功利用」,23 日更新主要補偵測規則與夥伴資源;列入 KEV 代表 CISA 已認定有實際利用,美國聯邦機關必須限期修補。
三、台灣:還有多少飯店在跑這型機器
數位發展部資安署/相關通報(媒體轉述,約 10/22 前後)大致指出:
- 對外服務、可辨識的 PHP 相關站點約 2.8 萬;
- 其中政府/公部門相關約 200;
- 已要求儘速更新,並提供偵測/應變指引。
這兩個數字是「仍可能跑著受影響 PHP 部署」的盤點量級,不是「已確認被入侵」的數量。對應比喻:全國還有約兩萬八千家飯店的櫃檯,理論上仍可能裝著這型房卡機;其中約兩百間掛著政府招牌。門鎖(CMS、外掛、WAF 規則)再新,也替換不了機器韌體。
若你維護的是學校、機關、診所、中小企業官網——很多其實是「一台主機+WordPress/自架 PHP」——請直接當自己可能在這份清單裡,而不是等被點名。
四、現在就做:檢查清單
1. 確認版本,對上修補號
在伺服器上執行:
php -v
目標至少:
| 主線 | 修補版 |
|---|---|
| 8.5 | 8.5.12 或更新 |
| 8.4 | 8.4.27 或更新 |
| 8.3 | 8.3.36 或更新 |
| 8.2 | 8.2.35 或更新 |
若是 8.1/8.0/7.4:專案主線已無常規安全更新,官方只給精簡原始碼後移植;優先用發行版/LTS 套件,或升級到仍支援主線。7.3 以下含 PHP 5 無上游修補,只能升級。PHP 8.2 於 2026/12/31 EOL。無法立即更新時,CISA 建議考慮暫時下線對外服務。
容器/映像:用舊 Dockerfile/舊 tag 建的映像要重建並重佈,確認跑到的是上表修補版;供應商映像以你實際拉到的 digest/版本為準(勿假設「官方便已更新」)。
2. 確認 SAPI:mod_php 還是 php-fpm?
php -i | grep -E 'Server API|sapi'
# 或看網頁 phpinfo()
- Apache module(mod_php):官方標最高風險——房卡機嵌在櫃檯本體,最直接曝露。優先排程更新;能遷到 php-fpm 是長期架構選項,但不能代替打補丁。
- php-fpm/FastCGI/cgi:仍受影響;109619 路徑在 FPM 上已有驗證或源碼支持。109618 在 FPM 上「完整 exploit 尚未展示」,不代表可以拖。
- FrankenPHP、LiteSpeed 等:CISA/官方列出「有處理網頁請求的 PHP 安裝」皆應假設在範圍內,向供應商確認。
Windows 建置:PHP 下載站已提供對應修補版。
3. 更新是唯一完整修復;WAF 與 ini 只是擋箭牌
對應比喻:換韌體才是修房卡機。官方寫得很硬:設定緩解不能讓系統變安全;WAF 可能提供部分防護——都是過渡,不是替代。
過渡期間可搭配:
- 設
session.upload_progress.enabled=0並重啟所有 worker(同時蓋到 109619 的確認路徑,以及 10/23 資訊性通報 CVE-2026-115560); - 收緊對外只必要的 PHP 端點;
- 監控 PHP worker 異常衍生 shell、下載工具、連外挖礦等行為(CISA 10/23 更新有 SIGMA 等);從 10/17 起回頭查日誌(Amazon 建議的起點);
- 盤點路由器、NAS、防火牆、VPN 等內嵌 PHP 的設備與第三方產品——荷蘭 NCSC 有一份 php2shell 軟體清單可對照。
4. 修完之後:重啟每一台房卡機
更新套件/映像後重啟所有 PHP worker(apache2/httpd、php-fpm、容器編排)——像換完韌體要把每台櫃檯機重開——再跑一次 php -v,確認線上進程真的是新版。
5. 第三個 CVE:不要寫成「又一個 PHP2Shell」
CVE-2026-115560(10/23)是資訊性通報:要同時滿足「serialize_handler 設成 php_binary/php_serialize → 執行期 ini_set 改回 php → upload_progress 仍開」才可能碰到;官方認為罕見,不會為此出緊急版,完整細節留待下次常規發行。目前無實際利用報告、無公開 PoC。若你 10/21 已關 upload_progress,通常不用再做別的。
五、這週能帶走的教訓
- 執行環境的洞,應用層補丁補不到。 門鎖再貴,房卡機壞了一樣開總控室。
- AI 壓低的是「做成攻擊」的成本,不是「隨便 prompt 就能挖洞」;獨立重複發現仍讓祕密窗口變短。
- 蜜罐被打下 ≠ 正式站被入侵。 前者證明利用鏈已在野;後者至撰稿時仍未見一手確認。假 PoC 同時爆炸,不要在正式機驗證。
- 「約 69% 用 PHP」≠「你一定中」;框架很新 ≠「你一定沒事」。 先查版本與 SAPI;別忘了內嵌 PHP 的設備。
- 過渡控制(WAF、ini、下線)買時間;只有更新+重啟所有 worker 結束事件。
- 你依賴的東西,就是安全邊界的一部分。 PHP Foundation 自己寫:安全工作仍仰賴「a small group of foundation-funded developers」,卻撐著網路上近七成可辨識語言的網站——和先前寫 Zeabur 的教訓同一句:底層供應鏈的人力與資金,就是你的風險面。(TechCrunch 另引 NSA:約 75% 被實際利用的漏洞與記憶體問題有關。)
六、結語
回到櫃檯:不需要你是房客,也不需要密碼;站在櫃檯前,用特製的卡把機器推到當機,就有機會拿到不該有的權限。長駐 worker 若不重置,就像同一台房卡機接下一位客人時還留著上一張半寫入的權限。房間門鎖——也就是你的網站程式——在這條攻擊路徑上幾乎插不上手。
現在該做的事很具體:查出 PHP 版本與 SAPI,對上 8.5.12/8.4.27/8.3.36/8.2.35(或發行版等價包),更新、重啟所有 worker、再確認。台灣對外約有數萬個 PHP 站點仍可能跑在受影響的機器上;你維護的那一台,不該等被掃到才動。
房卡機的比喻到此收束。它幫我們抓住直覺;真正保護你的,是那一串版本號。
文中有具體時刻者,盡量標為台北時間(UTC+8)。只有日期、沒有時刻的項目,沿用來源的 UTC 日期或官方標示的發布日。公開時刻(13:30/13:34/約 14:00/約 15:00 UTC)與 OpenAI 首次回報日在一手來源間不一致,文中已保留歧異。
來源
- PHP,archive/安全性公告,2026/10/20–21:https://www.php.net/archive/2026.php
- GitHub Advisories:GHSA-w8hw-w9fx-j79w、GHSA-6wmf-4rv5-p3rp
- PHP Foundation 部落格,2026/10/21:https://thephp.foundation/blog/2026/10/21/todays-php-security-release-and-how-were-strengthening-php-security/
- Calif,〈PHP2Shell〉:https://calif.io/php2shell/
- Wiz,〈PHP2Shell〉:https://wiz.io/blog/php2shell-php-rce
- OpenAI 協調披露文,2026/10/21:https://openai.com/index/coordinated-disclosure-of-critical-vulnerabilities/
- CISA,〈Critical Vulnerabilities in PHP Require Immediate Patching〉,2026/10/21(10/23 更新):https://www.cisa.gov/news-events/alerts/2026/10/21/critical-vulnerabilities-php-require-immediate-patching
- AWS Security Blog/MadPot 相關說明(公開前後觀測)
- Adel Karimi 蜜罐結果:SecurityWeek,2026/10/26:https://www.securityweek.com/php2shell-exploitation-moves-from-probes-to-working-shells/
- BleepingComputer,2026/10/26:https://www.bleepingcomputer.com/news/security/php2shell-security-flaws-now-sucessfully-exploited-in-the-wild/
- Marcus Hutchins 關於假 PoC 的公開評論
- 數位發展部資安署相關通報/台灣媒體轉述(約 2.8 萬 PHP 站、政府約 200),約 2026/10/22
- CISA,〈CISA Adds Two Known Exploited Vulnerability to Catalog〉,2026/10/26:https://www.cisa.gov/news-events/alerts/2026/10/26/cisa-adds-two-known-exploited-vulnerability-catalog
- PHP 資訊性通報 CVE-2026-115560,2026/10/23:https://www.php.net/archive/2026.php
- TechCrunch,〈PHP-ocalypse〉,2026/10/24:https://techcrunch.com/2026/10/24/php-ocalypse-how-two-critical-web-bugs-almost-broke-the-internet/
- PHP Foundation 長文(「small group of foundation-funded developers」),2026/10/21
- NCSC-NL php2shell 軟體清單:https://github.com/NCSC-NL/php2shell
- W3Techs server-side language survey,2026/10/26:約 69.2%