PHP2Shell 這一週:修補還沒出來,攻擊已經開始了

文章

從預告修補、資訊外流到日本首相出面提醒,PHP2Shell 讓「先預告再修補」的空窗變得很危險;同一天 Node.js 和 Go 也一起更新

閱讀英文版

這週的資安新聞幾乎被 PHP2Shell 洗版。照時間排一下,會發現順序有點反過來。

時間線

  • 10 月 17 日,Amazon 威脅情報團隊在蜜罐偵測到 PHP2Shell 的利用活動,來源是商用匿名網路。這時漏洞還沒公開。
  • 10 月 20 日,PHP 開發團隊預告台灣時間 21 日晚上 10 點會發布安全更新,修補兩個 CVSS v4.0 9.2 分的漏洞(CVE-2026-109618、CVE-2026-109619),請大家先準備。之後資安社群陸續傳出漏洞資訊已經外流。
  • 修補釋出前,日本首相高市早苗就先在社群平臺提醒網站管理者清查,更新一出來馬上裝。這是第一次有國家元首針對資安漏洞發警訊。
  • 10 月 21 日,PHP 釋出 8.5.12、8.4.27、8.3.36。Amazon 同一天公開說他們 17 日就看到攻擊了,美國 CISA 也把兩個漏洞列入 KEV。
  • 10 月 22 日,數發部資安署說國內約 2.8 萬個對外網站用 PHP,其中約 200 個是政府機關網站,要求優先修補,必要時暫停服務。
  • 10 月 23 日,PHP 基金會又說還有一個 RCE(CVE-2026-115560)要等下個版本處理,暫時可以把 session.upload_progress.enabled 設成 0 緩解。

攻擊比預告早三天,比修補早四天。

預告修補到底好不好

提前預告很常見,目的是讓維運人員排好時間,更新一出來就能上。PHP 這次的麻煩在於,預告讓所有人知道有大東西要來,接著細節又外流。防守方還在等更新,攻擊方已經在用了。

我不覺得這代表以後不該預告。沒有預告的話,那 2.8 萬個網站的管理者大概會更晚才知道要動。只是這次很清楚地看到,預告到修補之間那幾天最危險,手上能用的只剩 WAF 和緩解設定,真的不行就像資安署說的先關站。

十幾年的老問題,這次被 AI 挖出來

通報這兩個漏洞的是 Google Cloud 旗下的 Wiz。他們說問題可以追到 2012 年的 PHP 5.4,研究團隊用自家工具搭配幾個 AI 模型,在 8 月下旬找到。Wiz 的看法是 AI 大幅降低了驗證複雜漏洞的門檻,放了十幾年的缺陷因此變成真的能用的攻擊。

同一週還有 Adobe Commerce 的 BlockStrap。資安公司 Sansec 一天內找到四種遠端執行程式碼的路徑,也提到可以借 AI 逆向修補程式。

這樣一來,「看到修補再慢慢排時間」就不太保險了。修補一公開,漏洞位置也跟著公開,反推攻擊方法的時間被壓得很短。

不寫 PHP 的人也別滑過去

10 月 21 日同一天,Node.js 和 Go 也發了安全更新。

Node.js 修了 10 個漏洞,4 個高風險,影響 22.x、24.x、26.x 全部仍受支援的分支。最要注意的是 Brotli 解壓縮的 CVE-2026-111497(被叫做 Node2Shell),解壓縮時可能寫到預期範圍外的記憶體,嚴重時可遠端執行程式碼。另外 TLS 在處理特定 IP 寫法時可能接受不該通過的憑證,DNS 解析遇到 NUL 字元也會截斷網域名稱。修補版本是 26.12.1、24.22.1、22.23.4,順便更新了憑證信任資料,處理 eMudhra 中繼憑證私鑰外洩的事。Go 則是 1.26.10 和 1.27.3。

這個網站的建置寫著需要 Node.js 22.18 以上。這種寫法很方便,但它不會告訴你現在裝的那一版有沒有修過。本機和建置環境各自跑哪個版本,平常不太會有人去對,最好趁這次一起看一下。PHP 的部分則是那個還沒修的 CVE-2026-115560,下一個版本出來時記得再更新一次。

參考:

回文章列表