超越 PHP2Shell:在您的韌體產品組合中找出存在漏洞的 PHP

創提科技
2026/11/04

分享到

轉載自www.onekey.com


PHP 專案近期揭露了兩個重大漏洞:CVE-2026-109618 與 CVE-2026-109619。這兩個漏洞合稱為 PHP2Shell,在特定條件下可能允許未經身分驗證的遠端程式碼執行(RCE)。


雖然大型雲端與主機代管供應商有機會事先為漏洞揭露做好準備,整個 PHP 生態系也被呼籲立即修補,但嵌入式裝置面臨的是不同的挑戰。執行存在漏洞之 PHP 版本的裝置,往往要等到製造商發布更新後的韌體、且該更新完成部署後,才能脫離暴露風險。


由於嵌入式裝置的生命週期長,且普遍使用過時的軟體元件,PHP2Shell 的影響可能在初次揭露後仍持續相當長的時間。


本文將逐步說明如何在嵌入式韌體中識別並修補 PHP2Shell 漏洞,並展示 ONEKEY 平台如何在整個過程中為您提供協助。


修補措施

我們建議採取以下步驟,以處理嵌入式環境中的 PHP2Shell 問題:

1. 識別受影響的韌體:在您的韌體清冊中搜尋存在漏洞的 PHP 執行環境,包括靜態打包或自行編譯的版本。

2. 更新 PHP:將已修補的 PHP 版本整合至韌體中,並發布經簽章的韌體更新。

3. 限制網路暴露面:停用不必要的 PHP 管理介面,或將存取限制在受信任的管理網路內。

4. 套用暫時性緩解措施:當無法立即更新韌體時,強化 PHP 設定與 HTTP 請求處理。

5. 處理已終止支援(EOL)的版本:套用經驗證的向下移植(backport)修補程式,或遷移至仍受支援的 PHP 分支。

6. 驗證修補成果:重新分析更新後的韌體,確認存在漏洞的元件已完成更新或修補。


接下來,我們來看看 ONEKEY 如何在此流程的每個階段提供支援。


識別受影響的韌體

第一步是了解 PHP 存在於您韌體產品組合中的哪些位置。


ONEKEY 平台可讓您在整個韌體集合中搜尋特定軟體元件,輕鬆識別哪些產品與韌體版本包含 PHP。


首先,前往 「Search In」→「Components」,並搜尋PHP。

11.png

前往 「Search In」→「CVEs」,並搜尋CVE-2026-109618或CVE-2026-109619。

 22.png


這能協助您快速縮小需要進一步調查的韌體映像範圍,並排定修補工作的優先順序。


請注意,識別出存在漏洞的 PHP 版本,並不一定代表該裝置可被利用。實際的暴露程度取決於多項因素,例如 PHP 的使用方式、是否處理網頁請求,以及受影響的服務是否可被存取。


已修補版本

若您的韌體所使用的 PHP 分支已有安全性更新,建議的修補方式是升級至已修補的版本。


2026 年 10 月 21 日發布的安全性更新,提供了以下上游最低已修補版本:

PHP 分支

首個已修補版本

PHP 8.2

8.2.35

PHP 8.3

8.3.36

PHP 8.4

8.4.27

PHP 8.5

8.5.12

PHP 8.1 及更早版本

無上游安全性版本;請升級或套用經驗證的向下移植修補


對嵌入式裝置而言,這通常意味著將已修補的 PHP 執行環境整合至新的韌體映像、驗證相容性,並將更新部署至受影響的產品。


然而,升級並非總是那麼簡單,尤其當裝置依賴上游已不再支援的舊版 PHP 時。


已終止支援(EOL)的版本

許多嵌入式裝置仍在使用已終止支援的 PHP 版本,包括 PHP 8.1 及更早版本。這些版本已不再獲得上游的定期安全性更新。


若無法升級至仍受支援的 PHP 版本,您可能需要自行向下移植相關的安全性修補,或向您的 OEM 要求提供已修補的韌體版本。


這帶來了另一項挑戰:如何驗證存在漏洞的 PHP 版本確實已經完成修補?


僅檢查版本號碼是不夠的。供應商可能在向下移植安全性修補時未變更所回報的 PHP 版本,導致以版本比對為基礎的漏洞掃描工具持續回報這些 CVE。


這正是 ONEKEY 自動化影響評估(Automated Impact Assessment)能派上用場之處。在 2026.10.26 版本中,我們推出了自動化影響評估規則,可在已編譯的二進位檔中識別是否存在 PHP 官方安全性修補程式。

‍33.png

透過直接在韌體二進位檔中偵測修補程式的證據,即使回報的 PHP 版本未變更,ONEKEY 仍能區分已修補的實作與可能存在漏洞的實作。

44.png

這有助於減少誤報,並讓資安團隊在評估供應商向下移植修補的有效性時更具信心。所有自動化影響評估結果皆附帶 VEX 資訊(此處設定為 FIX_APPLIED),且在您執行 SBOM 匯出時也會一併匯出。

44.png


暫時性緩解措施

當無法立即部署韌體更新或向下移植的修補程式時,暫時性緩解措施有助於降低遭到利用的風險。


PHP 安全性公告建議進行以下幾項設定變更:

● CVE-2026-109618:設定memory_limit=-1,限制 HTTP 請求與檔案上傳的大小,並避免以RLIMIT_AS或RLIMIT_DATA作為替代的記憶體控制機制。

● CVE-2026-109619:設定session.upload_progress.enabled=0;若為 PHP 8.5,另需設定fatal_error_backtraces=0。


更多詳細資訊,請參閱PHP2Shell 公告以及 PHP 官方安全性指引。


重要:這些緩解措施無法完全解決漏洞,不應視為修補的替代方案。在記憶體受限的嵌入式環境中,像停用 PHP 記憶體限制這類變更,也必須審慎評估,以免引發穩定性或可用性問題。


若您決定採用以設定為基礎的緩解措施,ONEKEY 查詢語言(OQL)可協助您檢查韌體檔案,並找出相關的 PHP 設定。


您可以在單一韌體映像內執行這些搜尋,也可以跨整個韌體集合執行,以找出可能仍需處理的設定。

 55.png


這提供了另一種方式,讓您在等待永久性韌體修補期間,調查緩解措施的涵蓋範圍。


驗證修補成果

在您更新 PHP 或套用向下移植的修補程式後,最後一步是驗證修補成果已確實反映在韌體中。


透過 ONEKEY,您可以分析更新後的韌體映像,並與前一版本進行比較,以識別軟體元件與漏洞發現結果的變化。


例如,將最新韌體版本與前一版本進行比較,可讓您檢查:

● PHP 執行環境是否已升級至已修補的版本。

● 先前回報的 PHP2Shell 漏洞是否已不再被偵測到。

● 供應商的向下移植修補是否已透過自動化影響評估被識別。

● 其他軟體元件或漏洞發現結果是否因此次更新而有所變化。


在下方範例中,韌體 1.0 版已將修補程式向下移植至其 PHP 7.4 版本。

66.png


可以看到,透過自動化影響評估,兩個 PHP2Shell CVE 皆已被移除:

 77.png


在第二個範例中,韌體所執行的 PHP 版本已更新,因此相關 CVE 也隨之移除:

 88.png

此比較有助於您驗證修補工作,並清楚記錄韌體資安態勢在各版本之間的演變。


重點摘要

PHP2Shell 凸顯了嵌入式資安中一再出現的挑戰:即使上游早已提供修補,重大漏洞仍可能長期存在於韌體中。


要因應這項挑戰,您需要掌握裝置上所執行的軟體、具備識別受影響產品的能力,並擁有可靠的方式來驗證修補程式是否確實已套用。


ONEKEY 平台可協助您:

● 掌握整個韌體產品組合的暴露情況:搜尋軟體元件、CVE 及相關檔案。

● 無需原始碼即可評估韌體:無論您是裝置製造商,或是關鍵基礎設施、工業領域的營運者,ONEKEY 都能直接從韌體二進位檔進行漏洞分析,無需取得專有原始碼。

● 減少誤報:透過自動化影響評估識別已修補的二進位檔,包括供應商向下移植的安全性修補。

● 調查暫時性緩解措施:使用 OQL 搜尋韌體設定。

● 驗證修補成果:比較不同韌體版本,並追蹤漏洞發現結果的變化。


請記住:韌體清冊越完整,漏洞可視性就越全面。將所有產品線與版本的韌體上傳,有助於確保過時元件與未修補的漏洞不會被忽略。