• 摩傑斯
  • 2026-10-23

PHP 高危漏洞 php2shell:中小企業站點應急修復清單

10月21日,國家資訊安全漏洞共享平臺(CNVD)收錄了 PHP 的兩個嚴重安全漏洞,編號 CVE-2026-109618 與 CVE-2026-109619,業內代號「php2shell」。兩項漏洞的 CVSS v4.0 評分均為 9.2 分,CNVD 綜合評級「高危」。

這不是又一個「記得更新」的常規提醒。它壞在 PHP 直譯器核心的記憶體管理環節——也就是大多數網站跑在最底層的那一層。修復它,只能動伺服器上的 PHP 本身,任何應用層操作都替代不了。

PHP 高危漏洞 php2shell:中小企業站點應急修復清單

一、危害鏈路:一個請求,整臺伺服器

按官方與多家安全團隊的描述,攻擊路徑相當短:未經身份驗證的遠端攻擊者構造特製的 multipart POST 請求發往目標伺服器,觸發記憶體破壞,最終實現遠端程式碼執行,拿到伺服器控制權。除遠端程式碼執行外,同一漏洞還可被用來發起拒絕服務攻擊、竊取敏感資料。

時間線上還有一段插曲:漏洞資訊在 10 月 20 日提前洩露,PHP 安全團隊被迫確認並公佈釋出時間,而駭客趁機搶在補丁上線前數小時就發起了攻擊。到 10 月 21 日 13:30 UTC,官方修復版本才正式釋出。

換句話說,從資訊洩露到補丁落地,中間存在一個視窗期,而攻擊在那之前就已經開始了。

二、影響範圍:先看清自己在不在這個框裡

受影響的 PHP 版本如下:

分支受影響版本修復版本
8.5.x低於 8.5.128.5.12
8.4.x低於 8.4.278.4.27
8.3.x低於 8.3.368.3.36
8.2.x低於 8.2.358.2.35
8.1 及更早全部(已停止官方支援)需升級或依賴 LTS 廠商補丁

部署形態上,受影響的不是「用 PHP 寫的網站」,而是所有以 PHP 處理 Web 請求的環境:PHP-FPM、Apache 搭配 mod_php、php-cgi、FrankenPHP、LiteSpeed。其中 Apache mod_php 被官方點名為風險最高的配置——攻擊者可以在任何應用程式碼執行之前就觸發攻擊,一次未認證請求即可。

連帶影響還覆蓋 Magento、WordPress、Drupal、Joomla、MediaWiki、Roundcube、phpMyAdmin、Nextcloud、Laravel、Symfony、WHMCS、OpenCart 等主流 CMS 與框架。所謂「衝擊全球七成網站」,說的不是七成站點會被打,而是底層執行時共享同一個風險面。

三、兩個漏洞分別壞在哪

官方與 CERT 通報給出的機制描述可以壓縮成兩句話。

CVE-2026-109618:出錯時的現場沒收拾乾淨。PHP 用 longjmp() 中止超出 memory_limit 的請求並丟擲 OOM 錯誤。這會在內部請求資料只初始化了一半時直接中斷——比如正在解析一次表單檔案上傳。後續清理流程卻把這份無效資料當作有效資料去釋放,而那塊記憶體裡可能還殘留著攻擊者可控的舊資料。

CVE-2026-109619:上個請求的東西留在了下個請求裡。請求持有的內部狀態,在其後備記憶體被釋放之後仍然存活——例如發生致命錯誤之後。同一個 worker 處理的下一個請求,可能在正常初始化把它重置之前,就用上了這份陳舊狀態。

概括起來:PHP 在「出錯之後把現場收拾乾淨」這件事上做得不夠徹底,而攻擊者有能力把出錯點擺在對自己有利的位置上。

四、現在該做什麼(順序別亂)

第一步,查版本——注意命令列和網站真跑的不是一個東西。

用 php -v 查命令列版本,用 php-fpm -v 或 php-fpm8.3 -v(按實際分支)查網站實際執行的版本。最常見的坑是:命令列查出來已經是 8.3.36,網站實際跑的是 FPM 池裡的 8.3.20,兩邊根本不同步。升級之後,同樣要用 FPM 的方式再複核一遍。

第二步,能升就升。

優先走發行版或 LTS 廠商的官方包,別自己編譯。已經 EOL 的 8.1 及更早版本:找供應商確認有沒有回溯補丁;PHP 官方這次也額外為從原始碼構建的組織提供了 7.4、8.0、8.1 的最小化原始碼 backport。

第三步,補丁打不上就先擋住。

  • CVE-2026-109618:在 FPM 池配置或 Apache 配置裡設 memory_limit=-1(用 php_admin_value,讓應用層面無法覆蓋),並確認沒有別的層級把有限值又設了回來
  • CVE-2026-109619:把面向網際網路的 PHP 應用與公網隔離,直到補丁應用並驗證完成
  • 官方列出的臨時手段還包括:臨時下線、關閉會話上傳進度功能、網路訪問限制

這裡要把話說清楚:官方明確說明,**只有升級才是真正的修復**,這些措施只是降低特定攻擊路徑的暴露面,不等於安全。

第四步,升級後必須驗證。重啟 php-fpm 或 apache,再查一次版本。「升了但沒重啟」的假修復,在事故覆盤裡出現的頻率高得離譜。

第五步,回頭查有沒有被摸過。漏洞細節與驗證程式碼已經公開傳播,攻擊門檻很低。補丁之外還要補三件事:更換伺服器賬號、口令、金鑰等憑證;排查日誌裡的異常 multipart POST 與異常子程序;掃一遍 Webshell。

五、一個高頻誤解:更新 WordPress 沒用

WordPress 官方已經明確:這個問題**無法透過應用層更新解決**,站點所有者必須直接更新伺服器實際執行的 PHP 環境。

很多人看到新聞的第一反應是登後臺更新 WordPress、更新外掛——方向錯了。該動的是伺服器上的 PHP 本身。中小企業的站點大多託管在虛擬主機或第三方伺服器上,PHP 版本並不在自己手裡,這種情況該做的是:立刻聯絡服務商確認是否已修補;對方打不了補丁,就要求給出隔離或臨時防護的具體方案與時間。

專業模具,自動化零件加工製造行業管理軟體
中小企業ERP,MES,MRP解決方案
貿易庫存Saas管理系統,Linux郵件伺服器方案

聯絡電話:18625220688

解決方案

模具製造業資訊化
專注模具廠生產管理,顯著縮短交付週期
鈑金行業ERP系統
鐳射切割、折彎、焊接全流程管理
客製化自動化設備管理
報價單、生產進度、成本核算一體化
刀具/治具管理系統
檢具生產全流程數字化管控

資源下載

MES白皮書

模具製造執行系統深度解析

產品介紹文件

摩傑斯PMS系統功能詳解

常見問題FAQ

解答您的所有疑問

聯絡我們

馬上
諮詢我們

14年行業經驗,專注模具、鈑金、客製化自動化設備數字化轉型

186 2522 0688

崑山總部,周邊2小時上門服務

聯絡方式
產品服務詢價

產品及解決方案線上免費諮詢

獲取詢價

常見問題

Q:只是個企業官網,不打補丁行不行?
A:取決於它是否暴露在公網。只要能被外部訪問到,就在攻擊面上。漏洞細節和驗證程式碼已經公開傳播,自動化掃描很快會把全網 PHP 站點過一遍,跟站點大小、業務量大小沒關係。

Q:怎麼知道自己伺服器上跑的 PHP 是哪個版本?
A:用 php -v 查命令列版本;網站實際執行的版本要用 php-fpm -v 或 php-fpm8.3 -v(版本號按實際分支替換)。兩者不一致非常常見,別隻查一個就下結論。

Q:我用的是虛擬主機,PHP 歸誰管?
A:一般由服務商統一管理版本。這種情況立刻聯絡對方確認是否已修補;如果對方短期打不了補丁,要它給出隔離或臨時防護的具體方案和時間點。

Q:更新了 WordPress / 外掛,算不算處理好了?
A:不算。WordPress 官方明確說過這個問題應用層更新解決不了,必須更新伺服器實際執行的 PHP 環境。把後臺和外掛更新一遍是常見誤區。

Q:什麼時候能臨時不修補?
A:不能。官方口徑是隻有升級才是真正修復。memory_limit=-1、關閉會話上傳進度、網路隔離、臨時下線都只是降低暴露面的過渡手段,不能替代升級。

Q:補丁打完就結束了嗎?
A:沒有。補丁只堵住入口,打補丁之前是否已經被入侵,不會因為打了補丁而消失。還得補做憑證更換、日誌排查、Webshell 掃描這三件事。

Q:小企業需要為此建立什麼長期機制?
A:最小可行的一件事:把跑在公網的所有 Web 環境列一張清單——PHP 版本、部署位置、負責人、最近一次更新時間。多數中小企業出事不是因為不懂技術,是因為說不清自己有哪些資產在跑。

最新訊息

線上訂閱