2026 年 10 月 22 日發布,內容依據 PHP 基金會、CISA 與 Rapid7 的公告整理,之後有新進展會更新。
一句話:馬上更新 PHP——這才是修補方法,本文任何內容都不能取代它。靜態化不會讓你的 WordPress 伺服器不再執行 PHP,但一般訪客從此碰不到 PHP,於是那台還在跑 PHP 的伺服器可以縮到最小、藏起來,甚至暫時關掉,網站也不會因此停擺。
發生了什麼
- 兩個漏洞:CVE-2026-109618 與 CVE-2026-109619(外號「php2shell」),在特定條件下可讓未登入的攻擊者在執行 PHP 的伺服器上執行程式碼。兩者的 CVSS 評分都是 9.2。
- CVE-2026-109618:請求在不對的時間點用完記憶體時,會造成記憶體損壞。在 Apache + mod_php 上,它可以在任何應用程式碼執行之前就被觸發——所以跟你用哪個 CMS、哪些外掛無關——而且已在預設設定下展示完整的程式碼執行。PHP-FPM 也已確認可透過應用程式的程式路徑觸發。
- CVE-2026-109619:前一個請求殘留的狀態造成 use-after-free;已在 Apache + mod_php 上對真實的應用程式展示程式碼執行。
- 修補版本:PHP 8.5.12、8.4.27、8.3.36、8.2.35,於 2026 年 10 月 21 日發布。CISA 表示所有處理網頁請求的 PHP 都受影響,建議立即修補,先從對外開放的系統開始。
- 遭利用情況:發布時,PHP 資安團隊與 CISA 都還沒看到實際可用的攻擊。不過細節提前兩天外洩,概念驗證影片也已流傳,研究人員預期攻擊程式碼很快會公開。
第一步:修補
| 你的 PHP 版本 | 更新到 | 備註 |
|---|---|---|
| 8.5 | 8.5.12 或更新 | |
| 8.4 | 8.4.27 或更新 | |
| 8.3 | 8.3.36 或更新 | |
| 8.2 | 8.2.35 或更新 | |
| 8.1 或更舊 | 升級到仍受支援的版本 | 沒有修補;CISA 建議在升級前先讓這類系統下線 |
在 WordPress 後台的工具 → 網站狀態 → 資訊 → 伺服器 → PHP 版本可以看到目前版本。使用代管或共享主機的話,請向主機商確認是否已更新——很多主機在正式發布前就已修補。自己管伺服器的話,更新 PHP 套件後重新啟動 PHP-FPM 或 Apache。所有跑 PHP 的網站都要處理:測試站、舊網站、phpMyAdmin 之類的工具也算。
為什麼 WordPress 網站特別暴露
一般的 WordPress 網站,每一次頁面瀏覽都會執行 PHP:每個訪客、機器人和掃描器只要請求頁面,就碰得到 PHP。在整個網路上大量掃描有漏洞的伺服器成本很低,而一個在應用程式碼之前就會觸發的漏洞,根本不管你的外掛維護得多好。只要能送請求到你的 PHP,就能試著攻擊。
靜態化改變了什麼
| 一般 WordPress | CDN 上的靜態版 | |
|---|---|---|
| 頁面瀏覽會執行 PHP | 每一次 | 完全不會——頁面就是一般檔案 |
| 誰碰得到 PHP | 任何打開頁面的人 | 只有你允許的:後台的你,以及你有啟用的即時功能 |
| WordPress 放在哪裡 | 你的公開網域上 | 可以放在另一個位址,只允許 Cloudflare 或你自己連線 |
| 必須讓 PHP 下線時 | 網站跟著停擺 | 訪客照常看到頁面;只有編輯與即時功能暫停 |
最後一列在現在特別重要。CISA 對暫時無法修補的系統,建議先讓它們下線。有了靜態版,你可以在更新期間停掉 WordPress——或在防火牆擋掉它的伺服器——訪客照樣從 CDN 讀到你的網站。
它不能改變什麼
- WordPress 仍然執行 PHP,所以一樣要更新。靜態化是多一層防護,不是修補。
- 即時功能仍會連到 WordPress。如果靜態版把評論、搜尋、表單或 WooCommerce 價格送到 WordPress 的 REST API,這些請求就會執行 PHP;後台若能從你的網域打開,也一樣。
- 藏起來的伺服器,只有在沒有任何線索指向它時才算藏好。舊的 DNS 記錄、郵件標頭裡的伺服器 IP、被遺忘的子網域,都可能洩漏它的位置。
這週就把它鎖好
- 更新 PHP:每台跑 PHP 的伺服器都要,並在網站狀態裡確認版本。
- 在後台前面加一道登入關卡,例如 Cloudflare Access(小團隊免費),只有你能打開 wp-admin。
- 只讓 Cloudflare 連到源站:伺服器防火牆只放行 Cloudflare 的 IP 範圍,其他一律擋掉,或改用 Cloudflare Tunnel。
- 開啟 WAF;CISA 指出在修補前它可能提供一些保護。
- 留意異常跡象,例如 PHP 程序啟動 shell 或下載檔案,這是 CISA 建議的監控重點。
- 讓訪客看靜態版,公開網站就完全不依賴 PHP。
Pinery Static 在其中的角色
Pinery Static 把 WordPress 網站導出成純 HTML,部署到 Cloudflare Pages:公開網站變成全球 CDN 上的檔案,WordPress 變成你編輯內容的地方。免費版就能完整導出與部署;Pro 透過 WordPress 的 REST API 保留評論、搜尋、表單與 WooCommerce 價格,同網域切換功能可以在你原本的網域提供靜態網站,後台照常可用。在我們的示範商店,靜態版的載入時間是 0.09 秒,WordPress 原站是 1.6 秒(27 個測試點中位數)——看實測數據。不過,請先更新 PHP。
常見問題
我的 WordPress 網站受影響嗎?
如果跑的是 PHP 8.2–8.5 且低於修補版本,在更新之前請當作受影響。Apache + mod_php 的網站最危險,因為第一個漏洞在 WordPress 執行之前就能被觸發。
網站靜態化之後,就不用更新 PHP 了嗎?
不是。你的 WordPress 伺服器仍在執行 PHP,必須更新。靜態化能減少碰得到它的人,也讓你可以安全地讓它下線,但它不是修補。
我的主機商會幫我管 PHP,還需要做什麼嗎?
到工具 → 網站狀態 → 資訊 → 伺服器查看 PHP 版本,或直接問主機商。很多主機很快就修補了,但請確認——也別忘了你在其他地方的網站或測試站。
靜態網站還能保留評論和表單嗎?
可以,做法是把它們送到 WordPress 的 REST API(Pinery Static Pro 就是這樣做)。這些請求會碰到 PHP,所以即使訪客看的是靜態版,WordPress 也要保持更新並受到保護。
今天沒辦法更新,有暫時的對策嗎?
CISA 只提到兩個暫時措施:可能提供部分保護的 WAF,以及讓未修補的 PHP 系統下線。有了靜態版,第二個方法就不會讓讀者看到網站停擺。