聯系電話:
+886 2 77182788
創提部落格
希望我們能與您分享和探討成長中的點點滴滴
超越 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。

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

這能協助您快速縮小需要進一步調查的韌體映像範圍,並排定修補工作的優先順序。
請注意,識別出存在漏洞的 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 時。
許多嵌入式裝置仍在使用已終止支援的 PHP 版本,包括 PHP 8.1 及更早版本。這些版本已不再獲得上游的定期安全性更新。
若無法升級至仍受支援的 PHP 版本,您可能需要自行向下移植相關的安全性修補,或向您的 OEM 要求提供已修補的韌體版本。
這帶來了另一項挑戰:如何驗證存在漏洞的 PHP 版本確實已經完成修補?
僅檢查版本號碼是不夠的。供應商可能在向下移植安全性修補時未變更所回報的 PHP 版本,導致以版本比對為基礎的漏洞掃描工具持續回報這些 CVE。
這正是 ONEKEY 自動化影響評估(Automated Impact Assessment)能派上用場之處。在 2026.10.26 版本中,我們推出了自動化影響評估規則,可在已編譯的二進位檔中識別是否存在 PHP 官方安全性修補程式。

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

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

當無法立即部署韌體更新或向下移植的修補程式時,暫時性緩解措施有助於降低遭到利用的風險。
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 設定。
您可以在單一韌體映像內執行這些搜尋,也可以跨整個韌體集合執行,以找出可能仍需處理的設定。

這提供了另一種方式,讓您在等待永久性韌體修補期間,調查緩解措施的涵蓋範圍。
在您更新 PHP 或套用向下移植的修補程式後,最後一步是驗證修補成果已確實反映在韌體中。
透過 ONEKEY,您可以分析更新後的韌體映像,並與前一版本進行比較,以識別軟體元件與漏洞發現結果的變化。
例如,將最新韌體版本與前一版本進行比較,可讓您檢查:
● PHP 執行環境是否已升級至已修補的版本。
● 先前回報的 PHP2Shell 漏洞是否已不再被偵測到。
● 供應商的向下移植修補是否已透過自動化影響評估被識別。
● 其他軟體元件或漏洞發現結果是否因此次更新而有所變化。
在下方範例中,韌體 1.0 版已將修補程式向下移植至其 PHP 7.4 版本。

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

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

此比較有助於您驗證修補工作,並清楚記錄韌體資安態勢在各版本之間的演變。
PHP2Shell 凸顯了嵌入式資安中一再出現的挑戰:即使上游早已提供修補,重大漏洞仍可能長期存在於韌體中。
要因應這項挑戰,您需要掌握裝置上所執行的軟體、具備識別受影響產品的能力,並擁有可靠的方式來驗證修補程式是否確實已套用。
ONEKEY 平台可協助您:
● 掌握整個韌體產品組合的暴露情況:搜尋軟體元件、CVE 及相關檔案。
● 無需原始碼即可評估韌體:無論您是裝置製造商,或是關鍵基礎設施、工業領域的營運者,ONEKEY 都能直接從韌體二進位檔進行漏洞分析,無需取得專有原始碼。
● 減少誤報:透過自動化影響評估識別已修補的二進位檔,包括供應商向下移植的安全性修補。
● 調查暫時性緩解措施:使用 OQL 搜尋韌體設定。
● 驗證修補成果:比較不同韌體版本,並追蹤漏洞發現結果的變化。
請記住:韌體清冊越完整,漏洞可視性就越全面。將所有產品線與版本的韌體上傳,有助於確保過時元件與未修補的漏洞不會被忽略。