// 威脅簡報

PHP「PHP2shell」CVE-2026-109618:記憶體不足時的處理會破壞請求資料,可能讓未登入的攻擊者遠端執行程式碼

CVSS
9.8 CRITICAL
CISA KEV
未列入
弱點類型
CWE-416 · CWE-824 · CWE-755 · CWE-1325 · CWE-1419

PlainCVE 團隊 · 發布 2026-10-21 · AI 輔助 · 媒體簡報 ↓

AI 審稿 2026-10-21(未經人工)指令測試:未提供漏洞重現:未進行驗證紀錄 ↓

PHP 在請求處理到一半記憶體不足時,清理程序可能誤用尚未建好的資料,讓未登入的攻擊者有機會透過 HTTP 在伺服器上執行程式碼。已有修補版。

誰會中PHP 8.2.35、8.3.36、8.4.27、8.5.12 以前的 8.2–8.5 各分支;8.6.0 RC4 以前的 8.6.0 測試版(php.net 呼籲更新,出處 php.net)。PHP 8.1 以前是否受影響,各一手來源寫法不一(維護者 GHSA 為「< 8.2.35」且無下界;CVE 紀錄只列 8.2.*–8.5.* 且預設不受影響),請當作可能受影響(見下方)。
後果PHP 維護者的 GHSA 確認的影響是不需登入、以網站工作帳號身分遠端執行程式碼。在 Apache mod_php 上,攻擊發生在網站程式碼執行之前,應用程式自己的登入機制擋不住(FrankenPHP 可能相同);FPM 則是在應用程式執行中觸發,尚無完整示範。
現在該做什麼升級到 PHP 8.2.35、8.3.36、8.4.27、8.5.12 或同分支更新版本,或安裝 Linux 發行版/LTS 廠商的更新套件。官方表示只有更新才是完整的解法。
受影響版本8.2.35 以前的 8.2、8.3.36 以前的 8.3、8.4.27 以前的 8.4.x、8.5.12 以前的 8.5;8.6.0 RC4 以前的 8.6.0 測試版(php.net 呼籲使用者立即更新,出處 php.net)。PHP 8.1 以前:維護者 GHSA 寫「< 8.2.35」(無下界),NVD CPE 也是 8.2.35 以前(無起始版本);CVE 紀錄(CNA)只列 8.2.*–8.5.*,其他版本預設不受影響;Datadog 稱 PHP 5–8.1 也受影響。各份說法不一,尚未確認。
修好的版本8.2.35、8.3.36、8.4.27、8.5.12 或同分支更新版本;8.6.0 RC4(測試版)也含修補;7.4、8.0、8.1 僅有官方提供的原始碼回移植修補,沒有正式版本。
CVSS 向量
顯示完整向量NVD CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
時間點
  • 首次公開 2026-10-21

藍隊應對手冊

確認、修補 / 緩解、應變、強化。版本符合受影響條件不等於已被入侵;檢查沒有結果也不等於安全,每一項都有能證明與不能證明的範圍。標記的步驟對應下方攻擊流程裡可以擋下攻擊的那一步。

DETECT確認我受影響嗎?有沒有入侵跡象?
  1. 01確認網站實際使用的 PHP 版本

    在網站伺服器主機或容器內執行。8.2.35、8.3.36、8.4.27、8.5.12 以前的 8.2–8.5 版受影響;8.6.0 RC4 以前的 8.6.0 測試版也應視為受影響(php.net 呼籲更新,出處 php.net)。8.1 以下(含 7.4、8.0)的使用者:維護者 GHSA 與 NVD 的範圍沒有下界,CVE 紀錄則預設不受影響,請取聯集、當作可能受影響處理,改用官方回移植修補或廠商套件。PlainCVE 提醒:命令列的 php 可能和 Apache mod_php 或 FPM 實際載入的版本不同,兩者都要確認;若使用發行版套件,請以廠商的更新公告為準。

    唯讀查詢
    php -v
  2. 02找尋遭攻擊跡象(Datadog 建議)

    Datadog 建議留意:大型表單送出、請求初始化階段的記憶體耗盡錯誤,以及異常的 shell 程序。指令範例只讀取紀錄,在網站伺服器上執行(bash / zsh 皆可,不依賴萬用字元,路徑不存在時不會中斷);兩段 grep 分別涵蓋 Apache 紀錄資料夾(含子資料夾)與 /var/log 下檔名含 php 的紀錄,紀錄路徑依你的系統而定。已輪替壓縮的 .gz 紀錄 grep 讀不到,請改用 zgrep 另外檢查。

    唯讀查詢
    { grep -rEi 'memory size|out of memory' /var/log/apache2/ 2>/dev/null; grep -rEi 'memory size|out of memory' /var/log/ --include='*php*' 2>/dev/null; } | tail -n 50
MITIGATE修補 / 緩解先修補;還不能修補時先擋住
  1. 01升級 PHP(官方)

    升級到 8.2.35、8.3.36、8.4.27、8.5.12 或同分支更新版本。Linux 發行版與 LTS 廠商已事先拿到修補,請向你的廠商確認更新套件。官方表示只有更新才是完整的解法。

  2. 02暫時無法更新:官方的降低風險措施

    官方說明這些只能減少特定攻擊路徑,不會讓系統安全:以 php_admin_value 等應用程式無法覆寫的方式設定 memory_limit=-1,並確認沒有其他設定把限制加回去;不需上傳檔案時把 post_max_size 設為 8M;用容器或 cgroup 記憶體限制當作可用性邊界,最好只終止受影響的工作程序。下方指令是唯讀的檢查,請在網站伺服器上執行;但 php -i 只顯示命令列(CLI)的設定,不是 mod_php 或 FPM 實際套用的值,看到 memory_limit=-1 不代表緩解已生效。請在網站實際使用的 SAPI 確認(例如檢查 FPM pool 設定、Apache 設定,或讓網站自己的請求回報設定值),並確認沒有程序池、目錄或應用程式設定把有限的上限加回去。

    唯讀查詢
    php -i | grep -E '^(memory_limit|post_max_size)'
  3. 037.4、8.0、8.1:使用官方原始碼回移植修補

    PHP 安全團隊為這三個已停止支援的分支提供最小幅度的原始碼回移植修補,給自行編譯或沒有 LTS 廠商的使用者;這些分支不會有正式版本。

RESPOND應變發現入侵跡象時
  1. 01發現異常 shell 程序時,當作伺服器可能已被入侵

    PlainCVE 的建議:依維護者 GHSA,已確認的影響是以網站工作帳號執行程式碼,因此要檢查該帳號能讀寫的檔案、設定與憑證,並在修補後的乾淨環境重新部署。Sansec 另稱此漏洞本身可洩漏記憶體內容(官方未確認),可一併評估記憶體中的機密是否外流。下方指令只讀取本機程序,請在網站伺服器(或網站容器內)執行,並以網站工作帳號篩選(範例用 www-data,請換成你的帳號,例如 apache、nginx);若該帳號底下出現 sh、bash、dash 程序,請進一步檢查。

    唯讀查詢
    ps -u www-data -o user,pid,ppid,args --forest | grep -E '(^|[ /])(sh|bash|dash)( |$)'
HARDEN強化長期避免同類問題
  1. 01不要只依賴關閉 upload_progress

    社群流傳的 session.upload_progress.enabled=0 做法,Datadog 表示擋不住這個漏洞;官方只把這項措施列在另一個漏洞 CVE-2026-109619 下。

  2. 02汰換已停止支援的 PHP 分支

    PlainCVE 的建議:7.4、8.0、8.1 已不會有正式版本,PHP 5–8.1 是否受影響也仍有爭議,應規劃升級到仍受支援的分支。

完整修復步驟與說明
  1. 先確認網站實際載入的 PHP。 命令列的 php -v 不一定等於 Apache mod_php 或 FPM 載入的版本(PlainCVE 提醒),兩者都要確認。
  2. 依分支升級到上表的修補版本或更新版本。 使用 Linux 發行版或 LTS 廠商套件時,官方表示這些廠商已事先拿到修補,請以你的廠商更新為準。
  3. 暫時措施只是爭取時間。 官方明確表示 memory_limit=-1、較低的 post_max_size、容器或 cgroup 記憶體限制只能減少特定攻擊路徑,不會讓系統安全;設定 memory_limit=-1 時要確認沒有任何程序池、目錄或應用程式設定把有限的上限加回去。
  4. 別只靠關閉 session.upload_progress.enabled。 Datadog 表示這擋不住本漏洞。

攻擊流程

從左到右是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。

由上到下是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。

PHP「PHP2shell」CVE-2026-109618:記憶體不足時的處理會破壞請求資料,可能讓未登入的攻擊者遠端執行程式碼: 1. 不需登入,對任一 PHP 頁面送出 HTTP 請求 → 2. 請求讓 PHP 記憶體不足(OOM) → 3. PHP 中斷處理,留下只建好一半的請求資料 → 4. 清理程序把無效資料當成有效資料處理 → 5. 攻擊者在伺服器上執行程式碼CVE-2026-109618 · PHP「PHP2shell」CVE-2026-109618:記憶體不足時的處理會破壞請求資料,可能讓未登入的攻擊者遠端執行程式碼攻擊者你的系統不需登入,對任一 PHP 頁面送出 HTTP 請求 — Datadog 指出任何 PHP 腳本都會經過有問題的程式路徑,即使只是印出回應;Sansec 指出已知的觸發方式都是 multipart/form-data(表單上傳格式)請求。 1不需登入,對任一 PHP頁面送出 HTTP 請求請求讓 PHP 記憶體不足(OOM) — CVE 紀錄指出有多種方式能穩定觸發記憶體不足。在 Apache mod_php 上,這發生在網站程式碼執行之前(FrankenPHP 可能相同);FPM 則是在應用程式執行中觸發,尚無完整示範。 2請求讓 PHP 記憶體不足(OOM)PHP 中斷處理,留下只建好一半的請求資料 — PHP 遇到記憶體不足時用 longjmp() 直接跳出目前流程;有些程式路徑沒有考慮這種情況,在配置記憶體前留下未初始化的資料。 3PHP 中斷處理,留下只建好一半的請求資料清理程序把無效資料當成有效資料處理 — 這造成記憶體損壞,CVE 紀錄列為使用已釋放記憶體(CWE-416)與存取未初始化指標(CWE-824)。 4清理程序把無效資料當成有效資料處理攻擊者在伺服器上執行程式碼 — 官方表示可能導致遠端程式碼執行,已在 Apache mod_php 上透過 HTTP 示範成功;維護者 GHSA 確認的影響是以網站工作帳號身分執行。 5攻擊者在伺服器上執行程式碼攻擊路徑可在此擋下PlainCVE · plaincve.date/vulns/cve-2026-109618-php-oom-memory-corruption-rce · CC BY 4.0
PHP「PHP2shell」CVE-2026-109618:記憶體不足時的處理會破壞請求資料,可能讓未登入的攻擊者遠端執行程式碼: 1. 不需登入,對任一 PHP 頁面送出 HTTP 請求 → 2. 請求讓 PHP 記憶體不足(OOM) → 3. PHP 中斷處理,留下只建好一半的請求資料 → 4. 清理程序把無效資料當成有效資料處理 → 5. 攻擊者在伺服器上執行程式碼CVE-2026-109618 · PHP「PHP2shell」CVE-2026-109618:記憶體不足時的處理會破壞請求資料,可能讓未登入的攻擊者遠端執行程式碼不需登入,對任一 PHP 頁面送出 HTTP 請求 — Datadog 指出任何 PHP 腳本都會經過有問題的程式路徑,即使只是印出回應;Sansec 指出已知的觸發方式都是 multipart/form-data(表單上傳格式)請求。 1攻擊者不需登入,對任一 PHP 頁面送出 HTTP請求請求讓 PHP 記憶體不足(OOM) — CVE 紀錄指出有多種方式能穩定觸發記憶體不足。在 Apache mod_php 上,這發生在網站程式碼執行之前(FrankenPHP 可能相同);FPM 則是在應用程式執行中觸發,尚無完整示範。 2你的系統請求讓 PHP 記憶體不足(OOM)PHP 中斷處理,留下只建好一半的請求資料 — PHP 遇到記憶體不足時用 longjmp() 直接跳出目前流程;有些程式路徑沒有考慮這種情況,在配置記憶體前留下未初始化的資料。 3你的系統PHP 中斷處理,留下只建好一半的請求資料清理程序把無效資料當成有效資料處理 — 這造成記憶體損壞,CVE 紀錄列為使用已釋放記憶體(CWE-416)與存取未初始化指標(CWE-824)。 4你的系統清理程序把無效資料當成有效資料處理攻擊者在伺服器上執行程式碼 — 官方表示可能導致遠端程式碼執行,已在 Apache mod_php 上透過 HTTP 示範成功;維護者 GHSA 確認的影響是以網站工作帳號身分執行。 5攻擊者攻擊者在伺服器上執行程式碼攻擊路徑可在此擋下PlainCVE · CC BY 4.0plaincve.date/vulns/cve-2026-109618-php-oom-memory-corruption-rce
圖片可自由用於報導與教學,採 CC BY 4.0,圖上已附出處。
  1. 攻擊者

    不需登入,對任一 PHP 頁面送出 HTTP 請求

    Datadog 指出任何 PHP 腳本都會經過有問題的程式路徑,即使只是印出回應;Sansec 指出已知的觸發方式都是 multipart/form-data(表單上傳格式)請求。

    防禦: 官方暫時措施(只能降低風險):應用程式不需上傳檔案時,把 post_max_size 設為 8M。

  2. 你的系統

    請求讓 PHP 記憶體不足(OOM)

    CVE 紀錄指出有多種方式能穩定觸發記憶體不足。在 Apache mod_php 上,這發生在網站程式碼執行之前(FrankenPHP 可能相同);FPM 則是在應用程式執行中觸發,尚無完整示範。

    防禦: 官方暫時措施:以應用程式無法覆寫的方式設定 memory_limit=-1,並用容器或 cgroup 限制記憶體。官方說明底層配置失敗仍可能觸發,不算安全。

  3. 你的系統

    PHP 中斷處理,留下只建好一半的請求資料

    PHP 遇到記憶體不足時用 longjmp() 直接跳出目前流程;有些程式路徑沒有考慮這種情況,在配置記憶體前留下未初始化的資料。

    防禦: 升級到 8.2.35、8.3.36、8.4.27、8.5.12 或更新版本(官方)。

  4. 你的系統

    清理程序把無效資料當成有效資料處理

    這造成記憶體損壞,CVE 紀錄列為使用已釋放記憶體(CWE-416)與存取未初始化指標(CWE-824)。

    防禦: 升級(官方表示這是唯一完整的解法)。

  5. 攻擊者

    攻擊者在伺服器上執行程式碼

    官方表示可能導致遠端程式碼執行,已在 Apache mod_php 上透過 HTTP 示範成功;維護者 GHSA 確認的影響是以網站工作帳號身分執行。

    防禦: Datadog 建議:留意異常的 shell 程序。

影響範圍

PHP 是許多網站在伺服器端使用的程式語言。這次一起修補的有兩個漏洞,合稱「PHP2shell」;本頁講的是 CVE-2026-109618(官方標題為「RCE via OOM corruption」,GitHub 公告編號 GHSA-w8hw-w9fx-j79w),另一個是 CVE-2026-109619。

PHP 分支受影響版本修補版本依據
8.28.2.35 以前8.2.35 以上PHP 官方(oss-security)
8.38.3.36 以前8.3.36 以上PHP 官方(oss-security)
8.48.4.x,8.4.27 以前8.4.27 以上PHP 官方(維護者 GHSA、oss-security)
8.58.5.12 以前8.5.12 以上PHP 官方(oss-security)
8.68.6.0 RC4 以前的 8.6.0 測試版(php.net 呼籲更新)8.6.0 RC4(測試版,不適合正式環境)已含修補php.net
7.4、8.0、8.1有爭議(見下)只有官方的原始碼回移植修補,沒有正式版本回移植:PHP 官方;是否受影響:見下
PHP 5 到 8.1各來源說法不一沒有正式版本;7.4、8.0、8.1 有官方的原始碼回移植修補(Datadog 稱更舊版本不會有修補)見下

舊版本是否受影響,各來源說法不一:

  • Datadog 表示 PHP 5 到 8.1 也受影響,但已停止支援,不會有修補。Sansec 稱有問題的程式碼可追溯到 PHP 5.4.0(2012 年),官方未確認。
  • 維護者的 GHSA 寫的受影響版本是「< 8.2.35、< 8.3.36、< 8.4.27、< 8.5.12」,第一段沒有下界;NVD 的 CPE 第一段也只有 versionEndExcluding 8.2.35、沒有起始版本,字面上包含 8.1 以前的版本。
  • 同一廠商的 CVE 紀錄(CNA)只列出 8.2.–8.5. 的範圍,其他版本預設(defaultStatus)標為「不受影響」。本頁並列兩邊,不選邊;偵測與修復建議取聯集,8.1 以下請當作可能受影響。watchTowr 也指出「PHP 5 以後全部受影響」的說法未獲官方公告確認。
  • PlainCVE 的判斷:官方特地為 7.4、8.0、8.1 提供回移植修補,顯示這些分支很可能受影響,但官方並沒有明說。

攻擊條件(官方確認的部分): 攻擊透過 HTTP 進行,官方表示不需登入。已有人在 Apache mod_php(把 PHP 直接載入 Apache)上示範成功,在 mod_php 上攻擊發生在網站程式碼執行之前(依 GHSA,FrankenPHP 可能相同)。FPM(獨立 PHP 程序池)在請求啟動失敗時會結束子程序,依原始碼分析仍可能受影響,但要在應用程式正常啟動後、由各應用程式自己的情境觸發,尚無完整示範;LSAPI 依 GHSA 與 FPM 類似。php.net 把 FPM、mod_php、php-cgi、FrankenPHP、LiteSpeed 都列為有風險,並認為 mod_php 風險最高。

研究者補充: Datadog 表示應用程式自己的登入機制擋不住(官方只在 mod_php 上確認攻擊不經網站程式碼),而且任何 PHP 腳本都會經過有問題的程式路徑;Sansec 表示已知的觸發方式都是 multipart/form-data(表單上傳格式)請求。

是否需要開啟 session 上傳進度功能,各來源說法不一: JFrog(該頁含攻擊程式,本站不連結)把 session.upload_progress.enabled=On(預設值)加上接受 multipart 上傳列為必要條件;Datadog 則表示關掉這項設定並不能保護你;官方只把這項措施列在 CVE-2026-109619 下。

原理

PHP 處理一個網頁請求時,會先在記憶體裡建立這次請求要用的內部資料。如果中途記憶體不足(OOM,out of memory),PHP 會用 longjmp()(一種直接跳出目前流程的 C 語言機制)放棄這次請求。

問題是:有些程式路徑沒有考慮到「配置記憶體時可能被直接跳出」,在配置之前留下了還沒初始化的資料。接下來請求的清理程序把這些無效資料當成有效的來處理,導致記憶體損壞。CVE 紀錄列出的弱點類型包括 CWE-416(使用已釋放記憶體)、CWE-824(存取未初始化指標)、CWE-755(例外狀況處理不當)、CWE-1325 與 CWE-1419。CVE 紀錄指出有多種方式能穩定觸發記憶體不足,進而遠端執行程式碼。官方另說明:即使設定 memory_limit=-1,底層真正的記憶體配置失敗仍可能走到這段程式。

有問題的思路(概念示意,不是 PHP 原始程式碼):

展開程式碼範例(c)
req->data = /* 尚未設定 */;
buf = allocate(size);   // 記憶體不足 → 直接跳出,req->data 一直沒設定
req->data = buf;
...
cleanup(req);           // 把 req->data 當成有效資料處理 → 記憶體損壞

較安全的思路(概念示意):

展開程式碼範例(c)
req->data = NULL;       // 在任何可能失敗的配置之前,先設成安全的空值
buf = allocate(size);
req->data = buf;
...
cleanup(req);           // 能辨識空值,不會誤用

修補機制: 依維護者 GHSA 的說明,修補移除了記憶體不足時的 longjmp(),改成在下一個 VM 安全點才觸發的延遲式 soft OOM;超過更高門檻時則用 _exit() 立即結束(hard OOM)。修補 commit 編號 31c0ea7d7ff 出自 JFrog(該頁含攻擊程式,本站不連結)。上面兩段示意碼只是概念說明,不代表 PHP 官方的修法。

根本原因的描述,各來源說法不一: Sansec 把 CVE-2026-109618 歸類為「上傳進度反序列化器的使用已釋放記憶體」,JFrog 則說它把屬於請求的指標存進持久變數;但 PHP 官方對本漏洞的描述是記憶體不足時的半初始化資料,而上傳進度與殘留全域狀態的描述,在官方說法中比較接近另一個漏洞 CVE-2026-109619。本頁採用 PHP 官方的描述。

影響: 維護者 GHSA 表示已確認的影響是不需登入、以網站工作帳號身分遠端執行程式碼。Sansec 另稱此漏洞本身也會洩漏記憶體內容(類似 Heartbleed),官方未確認。

時間軸

日期(UTC)事件
2026-08-11依 Sansec 的時間軸,Calif 向 PHP 回報第一個漏洞並開始協調揭露
2026-10-12CVE 編號保留
2026-10-20PHP 預告將於 10 月 21 日 14:00 UTC 發布安全更新;Aikido 稱這是因為消息在預定揭露日前外洩。watchTowr 引述一則未經證實的外洩說法稱公告訂在 10 月 22 日 18:00 CEST,與官方時程不符
2026-10-21 07:43Sansec 轉述 Cloudflare 在修補發布前看到早期攻擊(未說明是哪一個 CVE;Cloudflare 原始資料不在本站參考範圍)
2026-10-21 13:48CVE 紀錄公開
2026-10-21 14:00官方預定的安全更新發布時間
2026-10-21PHP 安全團隊在 oss-security 郵件論壇公告;watchTowr 稱其誘捕系統觀察到實際利用

延伸閱讀

  • 評分差異: 本頁主嚴重度欄位採用 NVD 的 CVSS 3.1 9.8(向量 AV:N/AC:L/PR:N/UI:N),攻擊複雜度「低」。採用理由:NVD 是 CVSS 3.1 的評分機構,且 3.1 是目前最通用的版本,方便與其他漏洞比較。PHP(CNA)的 CVSS 4.0 為 9.2(AC:H/AT:P),認為攻擊複雜度「高」且有攻擊前提條件,同樣有效,請兩者並看。SANS ISC(該頁含攻擊程式,本站不連結)引用 9.4,與官方的 9.2 不同。
  • 是否已遭利用,各方說法不一: watchTowr 稱誘捕系統在 10 月 21 日觀察到利用(同一頁面仍有「尚無修補」的過時文字);Aikido 稱有利用報告,但未說明是哪一個 CVE;修補前 SecurityWeek 報導 watchTowr 與 Huntress 尚未看到利用;CISA 的 SSVC 評估(2026-10-21 14:34 UTC)為「none」。截至 2026-10-21,未列入 CISA KEV。
  • 公開的概念驗證程式: SANS ISC(該頁含攻擊程式,本站不連結)指出已有概念驗證(PoC)程式與技術細節公開,但它檢視的早期版本看起來並不可靠。本站不連結任何攻擊程式。
  • 發現者: 依 Sansec,兩個漏洞由 Calif 的 Ryan Austin、Wiz Research(Sagi Tzadik、Shir Tamari、Nir Ohfeld、Tomer Schwartz)與 OpenAI 發現。
  • 相關漏洞:CVE-2026-109619(同一次修補)。相關弱點類型包括:CWE-416、CWE-824、CWE-755、CWE-1325、CWE-1419。

驗證紀錄 AI 依審稿規則逐項核對來源,全部通過;未經人工審稿,也尚未在我們的環境重現

AI 審稿2026-10-21 · 審稿規則

驗證紀錄只寫環境與結果,不公開重現步驟或可攻擊他人系統的程式。詳見 政策.

來源

  1. 廠商說明PHP security release announcement (RCE via OOM corruption, CVE-2026-109618, GHSA-w8hw-w9fx-j79w) · PHP · 查閱 2026-10-21
  2. 安全公告GitHub Security Advisory GHSA-w8hw-w9fx-j79w (php/php-src, CVE-2026-109618) · PHP (php-src maintainers) · 查閱 2026-10-21
  3. 安全公告oss-security: PHP security release (CVE-2026-109618, CVE-2026-109619) · PHP security team via oss-security, 2026-10-21 · 查閱 2026-10-21
  4. CVE / NVD / OSVCVE-2026-109618 record (CVE Services API) · CVE Program, 2026-10-21 · 查閱 2026-10-21
  5. CVE / NVD / OSVNVD API - CVE-2026-109618 · NIST NVD · 查閱 2026-10-21
  6. 研究文章PHP2shell · Sansec · 查閱 2026-10-21
  7. 研究文章PHP2shell: critical vulnerabilities in PHP · Datadog Security Labs · 查閱 2026-10-21
  8. 研究文章PHP CVE-2026-109618 FAQ · watchTowr · 查閱 2026-10-21
  9. 新聞報導PHP ships emergency patches for critical PHP2shell flaws · BleepingComputer · 查閱 2026-10-21
  10. 新聞報導PHP2shell: mass exploitation looms for leaked critical PHP flaws · SecurityWeek · 查閱 2026-10-21
  11. 研究文章Critical vulnerabilities in PHP (PHP2shell) · Aikido · 查閱 2026-10-21

媒體簡報

一句話

PHP 是大量網站使用的伺服器端程式語言。它在 2026 年 10 月 21 日修補兩個被稱為「PHP2shell」的嚴重漏洞,其中 CVE-2026-109618 出在記憶體不足時的處理:請求被中斷後,清理程序可能誤用只建好一半的資料,官方表示可能讓未登入的攻擊者遠端執行程式碼。修補版本為 8.2.35、8.3.36、8.4.27 與 8.5.12。關於是否已遭實際利用,各方說法不一。

關鍵數字

嚴重度(NVD)
CVSS 3.1 9.8 services.nvd.nist.gov
嚴重度(CNA:PHP)
CVSS 4.0 9.2 cveawg.mitre.org
修補版本
8.2.35、8.3.36、8.4.27、8.5.12 seclists.org
CVE 公開
2026-10-21 cveawg.mitre.org
GitHub 公告編號
GHSA-w8hw-w9fx-j79w github.com

已確認

  • PHP 官方確認:記憶體不足的處理可能讓清理程序誤用未建好的資料,可能導致不需登入的遠端程式碼執行。
  • 官方表示已在 Apache mod_php 上透過 HTTP 示範攻擊,且在 mod_php 上攻擊發生在網站程式碼執行之前(FrankenPHP 可能相同);FPM 經原始碼分析也可能受影響,但是在應用程式執行中觸發,尚無完整示範。php.net 把 FPM、mod_php、php-cgi、FrankenPHP、LiteSpeed 都列為有風險,mod_php 風險最高。
  • 維護者 GHSA 確認的影響是不需登入、以網站工作帳號身分遠端執行程式碼。
  • 截至 2026-10-21,此漏洞未列入 CISA 已知遭利用漏洞清單(KEV)。

尚未確認 / 說法不一

  • 是否已遭實際利用:watchTowr 稱其誘捕系統在 10 月 21 日觀察到利用,Aikido 稱有相關報告;但 CISA 的 SSVC 評估為「none」,修補前 watchTowr 與 Huntress 也表示未見利用。
  • PHP 8.1 以前是否受影響:維護者 GHSA(< 8.2.35,無下界)與 NVD CPE(8.2.35 以前,無起始版本)字面上包含;同一廠商的 CVE 紀錄只列 8.2.*–8.5.*,其他預設不受影響;Datadog 說受影響,watchTowr 指出未獲官方確認。
  • 根本原因的描述:Sansec 與 JFrog 的說法和 PHP 官方描述不一致,較接近另一個漏洞 CVE-2026-109619。
  • Sansec 稱此漏洞本身也會洩漏記憶體內容,官方未確認。

可引用的一句話

這個漏洞不是發生在網站程式寫錯的地方,而是 PHP 在記憶體用完、匆忙收拾殘局的那一刻。

圖片

下載分享圖(PNG) · 攻擊流程圖(可下載)

引用時請標示「PlainCVE」並附上本頁連結。 完整引用格式見下方「如何引用本頁」。有事實錯誤請回報.

如何引用本頁

本文採 CC BY 4.0,轉載請保留署名與連結。

PlainCVE 團隊(2026)。《PHP「PHP2shell」CVE-2026-109618:記憶體不足時的處理會破壞請求資料,可能讓未登入的攻擊者遠端執行程式碼》。PlainCVE。https://plaincve.date/vulns/cve-2026-109618-php-oom-memory-corruption-rce(查閱日期:YYYY-MM-DD)
BibTeX
@misc{cve2026109618phpoommemorycorruptionrce2026,
  title  = {PHP「PHP2shell」CVE-2026-109618:記憶體不足時的處理會破壞請求資料,可能讓未登入的攻擊者遠端執行程式碼},
  author = {PlainCVE 團隊},
  year   = {2026},
  howpublished = {PlainCVE},
  url    = {https://plaincve.date/vulns/cve-2026-109618-php-oom-memory-corruption-rce},
  note   = {更新於 2026-10-21}
}