PHP2Shell 是 2026 年 10 月 21 日公開的兩個 PHP 重大漏洞(CVE-2026-109618、CVE-2026-109619)的統稱,攻擊者不用登入就可能在網站主機上執行任意程式,嚴重度 9.2 分(滿分 10)。只要你的網站是用 PHP 寫的,包含 WordPress、Laravel、Drupal、Joomla,都在影響範圍內,解法是把 PHP 升級到 8.5.12、8.4.27、8.3.36 或 8.2.35。
我們看到公告的當天,就把自家與代管的 WordPress 網站、部署管理平台全部盤點一輪:先查有沒有被入侵,再升級 PHP,升級後逐站回測,每個站的停機時間都在一分鐘以內,回測也沒有發現異常存取。這篇把漏洞用白話講清楚,也把我們實際的處理順序與踩到的坑整理出來,給同樣在管 WordPress 網站的你照著做。
⚠️有 WordPress 或 PHP 網站?先確認這一件事
到主機後台或請工程師查 PHP 版本,低於 8.5.12、8.4.27、8.3.36、8.2.35 的(同一條版本線比對,例如 8.3 系列要 8.3.36 以上)就要升級。用虛擬主機的,主機商通常會統一更新,但請直接問清楚「哪一天升到哪一版」。PHP 7.4 到 8.1 已經沒有官方正式更新,要盡快換到 8.2 以上。
PHP2Shell 懶人包:發生什麼事、誰會受影響
一句話:PHP 這個全球最多網站在用的程式語言,被找到兩個能讓攻擊者遠端接管主機的漏洞,細節提前外流,官方只好提前一天緊急發布修補。下面這張表整理自 PHP 官方公告、Tenable 與 Patchstack 的資料。
項目 | 內容 |
|---|---|
漏洞名稱 | PHP2Shell,包含兩個漏洞(CVE-2026-109618、CVE-2026-109619) |
嚴重度 | CVSS v4.0 9.2 分,兩個都是 |
會發生什麼 | 攻擊者不用登入,就可能在網站主機上執行任意程式 |
影響誰 | 所有用 PHP 提供網頁服務的網站,不分主機類型 |
修補版本 | 8.5.12、8.4.27、8.3.36、8.2.35(10 月 21 日發布) |
舊版本 | PHP 7.4 到 8.1 只有程式碼層級的修補,沒有正式發新版;5.4 到 7.3 已停止支援 |
攻擊狀況 | Amazon 在 10 月 17 日就觀察到攻擊嘗試,watchTowr、Cloudflare 也回報看到攻擊 |
時間軸也值得看一下:
日期 | 發生什麼事 |
|---|---|
10 月 17 日 | Amazon 的威脅情報團隊觀察到第一次攻擊嘗試,比公開日早四天 |
10 月 20 日 | 漏洞編號在 Hacker News 與社群上流傳,PHP 官方發出預告 |
10 月 21 日 | 原訂 22 日公開,因為外流提前一天,PHP 官方發布四個修補版本 |
10 月 21 日之後 | 多家資安公司回報看到實際攻擊嘗試,各國資安單位發布警告 |
英國國家網路安全中心(NCSC)的 公告 講得很直接:任何版本的 PHP 都受影響,所有組織都應該盡快升級;如果一時升不了,要考慮先把系統下線。
PHP 是什麼?為什麼一個漏洞能影響這麼多網站
PHP 是一種專門用來做網站的程式語言。你打開一個 WordPress 網站時,伺服器上的 PHP 會即時把文章、選單、表單「組裝」成網頁再送給你。用餐廳比喻,PHP 就是廚房裡的廚師,WordPress 是食譜,資料庫是食材倉庫。
PHP 有多普及?W3Techs 的統計 顯示,在已知伺服器端語言的網站裡,大約七成用的是 PHP。全球最多人用的網站系統 WordPress 就是 PHP 寫的,台灣大量的企業形象網站、電商網站、補習班與診所網站也都建在上面。
這次的漏洞出在 PHP 本身,也就是「廚師」出了問題,跟你用什麼「食譜」無關。所以不管你的 WordPress 外掛有沒有更新、佈景主題多新,只要底層的 PHP 版本沒修補,就一樣在風險裡。這也是為什麼這次的影響範圍特別大。
你的網站 | 有沒有影響 | 誰要負責升級 |
|---|---|---|
WordPress(虛擬主機) | 有 | 主機商,通常會統一更新,但要確認時間 |
WordPress(自己的雲端主機或 VPS) | 有 | 你或你的工程師 |
WordPress(容器部署) | 有 | 你或你的工程師(下面會講到一個常見的坑) |
Laravel、Drupal、Joomla 等 PHP 系統 | 有 | 開發廠商或你的工程師 |
Wix、Shopify 等 SaaS 網站 | 由平台處理 | 平台方,你不用動 |
Next.js、Node.js、Python 寫的網站 | 這次不影響 | 不用動,但部署平台本身可能有 PHP 元件 |
兩個漏洞白話拆解:記憶體出錯,就可能被接管
一句話:兩個漏洞都跟 PHP 處理記憶體的方式有關,攻擊者可以故意讓 PHP 出錯,再趁亂讓它執行自己準備好的程式。下面的白話說明參考 Tenable 的整理。
第一個漏洞 | 第二個漏洞 | |
|---|---|---|
發生什麼事 | PHP 在記憶體不夠用時,收拾善後的動作出錯 | 上一個請求留下的資料,被下一個請求誤用 |
生活比喻 | 廚師備料備到一半食材用完,收拾時卻把半成品當成完成品上桌 | 上一桌客人用過的盤子還沒洗,下一桌就直接拿來裝菜 |
嚴重度 | 9.2 | 9.2 |
這類漏洞的麻煩在於,攻擊成功時不一定會留下明顯的痕跡。所以除了升級,升級前先查有沒有被入侵同樣重要,這也是各國資安單位一致的建議。
我們的處理實錄:看到公告當天就完成盤點、回測與升級
一句話:先盤點、再查入侵、最後升級並回測,順序不能反。直接升級雖然快,但如果主機在升級前已經被動過手腳,升級只是把門關上,屋裡的人還在。
我們的處理分成五步:
步驟 | 做了什麼 | 結果 |
|---|---|---|
盤點 | 列出所有用到 PHP 的網站與系統,包含測試站和暫停中的舊站 | 確認要處理的範圍 |
確認版本 | 逐一確認每個網站實際使用的 PHP 版本 | 找出需要升級的對象 |
入侵排查 | 檢查網站檔案有沒有被竄改、有沒有被放後門、近期的存取紀錄有沒有異常 | 沒有發現入侵跡象 |
升級 | 先升測試站確認沒問題,再依序升級正式站與管理平台 | 全部升到修補版本,每個站停機不到一分鐘 |
回測 | 逐站確認網站、後台與表單都正常運作 | 全部正常 |
另外有兩個細節值得一提。第一,升級順序是測試站先、正式站後,測試站驗證過新版本沒有相容問題,才動客戶正在用的網站。第二,暫停中、沒有對外的舊站也列進盤點,其中一個已經閒置的舊站,我們順手把它完整暫停,少一個被攻擊的入口;另外兩個暫停中的站則註記「重新啟用前要先換新版本」。
這套「盤點、排查、升級、回測」的順序,跟我們處理其他平台資安事件時的做法是一致的。像前陣子 Railway 環境變數外洩事件,同樣是先確認影響範圍、再處理秘密、最後驗證。
升級前先查有沒有被入侵:我們做的回測
一句話:拿官方的標準版本來比對,再翻紀錄找異常。這些檢查不需要昂貴的資安工具,有經驗的工程師一兩個小時就能做完。
檢查什麼 | 為什麼要查 | 我們的結果 |
|---|---|---|
網站核心檔案有沒有被改過 | 攻擊者常改核心檔案藏後門 | 和官方版本逐一比對,全部一致 |
有沒有被放後門程式 | 後門能讓攻擊者之後隨時回來 | 沒有發現 |
最近有沒有多出不明檔案 | 新出現的檔案是入侵最直接的線索 | 只有正常的外掛更新 |
上傳資料夾有沒有可執行的程式 | 上傳區最常被拿來放惡意程式 | 沒有發現 |
近期的存取紀錄 | 看有沒有人成功利用漏洞 | 可疑的探測都被擋下,沒有成功存取 |
翻紀錄時會看到不少讓人緊張的東西,例如有人一直嘗試猜後台密碼、有機器人在找不小心留在網站上的設定檔。這其實是網路上的日常,判斷的關鍵是「有沒有成功」:被擋下、找不到檔案,就代表對方沒拿到東西。
如果你的網站真的有被入侵的跡象,止血步驟可以參考 WordPress 網站被駭怎麼辦。
最容易踩的坑:以為更新了,其實還是舊版
一句話:「升級完成」要看實際版本,不能只看有沒有按下更新。這是這次最想提醒大家的一點。
不少網站是用「打包好的環境」部署的,重新部署時會去下載一份新的環境。很多人以為重新部署就會拿到最新、修補過的版本,但如果當初指定的是一個已經不再更新的舊版本,重新部署拿到的還是舊的。這次我們就遇到這種情況,官方的修補放在新的版本名稱底下,舊名稱已經好幾個月沒更新了。
你以為 | 實際上 | 怎麼確認 |
|---|---|---|
重新部署就會拿到最新版 | 如果指定的版本已經停止更新,拿到的還是舊版 | 部署後實際確認版本號 |
主機商說「已更新」就沒問題 | 要問清楚更新到哪一版 | 請對方提供實際的版本號與日期 |
升級會把網站內容蓋掉 | 網站內容和執行環境是分開的,升級環境不會動到內容 | 升級前先備份,升級後檢查網站與後台 |
管理平台也一樣。很多團隊會用一套管理面板來管理底下所有網站,面板本身也可能用到 PHP。管理面板權限最大,更新時一樣要先備份、再照官方程序升級,並確認它沒有對外開放。
你的 WordPress 網站該怎麼做:照情況選路
一句話:先確認誰管你的 PHP,再確認版本,最後確認有沒有被入侵。下面這張流程圖照你的主機類型走就好。
你的情況 | 今天要做的事 | 要注意的地方 |
|---|---|---|
用虛擬主機、不太懂技術 | 寫信問主機商:PHP 升到哪一版、哪一天升的 | 對方只回「我們很重視資安」不算答案,要問到版本號 |
有合作的網站廠商 | 請廠商回報每個站的 PHP 版本與升級時間 | 順便確認測試站、舊站有沒有一起處理 |
自己有工程師 | 照本文的回測做完再升級 | 升級後一定要確認實際版本號 |
用 PHP 7.4 以下的舊網站 | 優先處理,必要時先下線 | 舊版沒有正式更新,可能要一併升級 WordPress 與外掛 |
如果你的網站已經多年沒人維護、連 PHP 版本都查不到,這次是很好的時機重新評估:是要找人接手維護,還是乾脆改版。WordPress 和客製化系統怎麼選,可以參考 WordPress 還是客製化系統的判斷指南。
平常就要準備好的三件事:讓下一次漏洞來時不慌
一句話:這次能在一天內處理完,靠的是平常就有的三樣東西:服務清單、可重複的升級程序、留得住的紀錄。
準備什麼 | 為什麼重要 | 怎麼開始 |
|---|---|---|
服務清單 | 漏洞公告出來時,第一個問題永遠是「我們有哪些東西受影響」,沒有清單就要一台一台翻 | 列出每個網站與系統:用什麼語言、放在哪、誰負責、目前版本 |
可重複的升級程序 | 有測試站、有備份、有回滾方式,升級才敢當天做,不用拖到週末 | 每個網站都準備測試環境,升級前先在測試站跑一次 |
留得住的紀錄 | 要判斷有沒有被入侵,靠的是存取與錯誤紀錄,紀錄只留幾小時就查不了 | 確認紀錄至少保留 7 到 30 天,重要系統送到集中的紀錄服務 |
這三件事其實就是維運合約該寫清楚的內容。你的網站廠商有沒有承諾「重大漏洞公告後幾天內完成修補」?有沒有定期回報版本?這些可以參考 維護合約範本裡 SLA 的寫法。系統上線後的維運成本怎麼估,客製化系統上線後的隱性成本 那篇也有整理。
想更有系統地檢查網站的資安狀況,弱點掃描、滲透測試、壓力測試各有用途,可以看 三種資安檢測的差別。平常的服務監控與異常通知,則可以參考 SLA 監控儀表板採購指南。資料備份是所有應變的最後一道保險,資料備份與災難復原指南 有完整的 3-2-1 做法。
看到這裡,如果你也在想「我們公司的網站,有人在顧 PHP 版本嗎?」,我們很樂意 聽你聊聊現在網站的狀況,一起看看哪些該先處理。如果是自家的客製化系統,也可以聊聊 系統的維運規劃。
ℹ️我們怎麼看
PHP 不會因為這次漏洞就退場,七成網站的基礎建設不會一夕換掉,但漏洞從公開到被大量利用的時間只會越來越短,這次甚至在公開前四天就有人在試。3 年內,「漏洞公告後幾小時內知道自己有沒有受影響」會變成網站維運的基本要求。我們的取捨是:每個服務都有清單、都有測試環境、升級後一定驗證版本號,讓修補可以當天做完。給老闆的判斷工具很簡單:問你的網站負責人「我們的 PHP 現在是哪一版?上次升級是哪一天?」答得出來,代表有人在顧;答不出來,就是該補上的時候。類似的自動化攻擊手法,可以參考 神腦資安事件拆解。
ℹ️我們做過這件事
這篇的處理順序,就是我們這次實際處理自家與代管網站的做法:當天盤點、排查、升級、回測,每站停機不到一分鐘。我們累積了 40+ 企業客製案落地,網站與系統交付後的版本更新與資安修補,也是我們維運的日常。看到這裡,如果你也在想「我們的網站這次有沒有處理到」,我們很樂意 聽你聊聊現在的實際情況,一起看看從哪一塊開始最划算。
QPHP2Shell 是什麼?
PHP2Shell 是 2026 年 10 月 21 日公開的兩個 PHP 重大漏洞(CVE-2026-109618、CVE-2026-109619)的統稱,嚴重度 9.2 分。攻擊者不用登入,就可能利用 PHP 處理記憶體的錯誤,在網站主機上執行任意程式。WordPress、Laravel、Drupal 等 PHP 網站都在影響範圍內。
Q我的 WordPress 網站要怎麼知道有沒有受影響?
查網站使用的 PHP 版本。低於 8.5.12、8.4.27、8.3.36、8.2.35(依同一條版本線比對)就要升級。可以在 WordPress 後台的「工具 → 網站狀態 → 資訊 → 伺服器」看到 PHP 版本,或請主機商、工程師確認。
QPHP 要升級到哪一版?
照你目前使用的版本線升到修補版:8.5 系列升到 8.5.12、8.4 系列升到 8.4.27、8.3 系列升到 8.3.36、8.2 系列升到 8.2.35。PHP 7.4 到 8.1 沒有官方正式更新,建議直接升到 8.2 以上,升級前先在測試站確認外掛相容。
Q升級 PHP 會不會讓網站壞掉?
同一系列內的小版本升級通常不會影響相容性,我們這次升級的網站都沒有出現錯誤,每站停機不到一分鐘。如果是從很舊的版本跨大版本升級,就要先在測試站跑過,因為舊外掛可能不支援。
Q重新部署網站,就會自動升級 PHP 嗎?
不一定。如果部署時指定的是一個已經不再更新的舊版本,重新部署拿到的還是舊版。升級後一定要確認實際的版本號,不要只看部署有沒有成功。
Q怎麼知道網站有沒有已經被入侵?
請工程師確認幾件事:網站核心檔案有沒有被改過、有沒有被放後門、最近有沒有多出不明檔案、上傳資料夾有沒有可執行的程式,以及近期的存取紀錄有沒有成功的異常存取。發現異常就照被駭止血流程處理,並換掉所有密碼。
AUTHOR
恆遠數位編輯團隊







留言(0)
尚無留言,成為第一個留言的人吧!