跳到主內容

LibreNMS PHP 版本更新

  PHP 官方於 2026-10-21 發佈安全更新,修補兩個嚴重漏洞:CVE-2026-109618 與 CVE-2026-109619(官方預告評分皆為 CVSS v4.0 9.2,等級為 Critical)。部分資安廠商與研究人員將這兩個漏洞稱為「PHP2Shell」(此非 PHP 官方名稱)。依官方公告,兩者都可能讓未經登入的遠端攻擊者執行任意程式碼(RCE),所有提供網頁服務的 PHP 環境(包含 PHP-FPM)都在影響範圍內。PHP 官方公告未提及實際攻擊。資安廠商的觀察並不一致:watchTowr 與 Datadog 表示已觀察到利用嘗試或大範圍掃描,Check Point 撰文時則表示尚未發現實際利用(2026-10-22 查證)。在說法分歧的情況下,建議以「可能已遭攻擊」為前提,儘速完成更新。

  PHP 官方已於 2026-10-21 針對此問題發佈修正版本(8.5.12、8.4.27、8.3.36、8.2.35),Ubuntu 與 Debian 仍在支援期的版本也已提供修補套件(見補充說明)。官方表示沒有完整的緩解措施,更新是唯一安全的作法。LibreNMS 的網頁介面由 PHP 提供,請依本文儘速更新。可從網際網路或其他不受信任網段存取網頁介面的主機請優先處理;僅限內網使用的主機也建議盡快更新。

運行環境


  • 系統環境:Debian 或 Ubuntu(以 apt 管理套件)
  • Web 服務:Nginx + PHP-FPM
  • PHP 來源:作業系統內建套件庫,或 Sury 套件庫(packages.sury.org)

  RHEL 系作業系統(dnf/Remi)不在本文範圍,請依該發行版的公告處理。使用 Apache 的主機,步驟四請改為重啟 apache2。

前置需求


  • 以 root 或具 sudo 權限的帳號登入
  • 安排維護時段:僅更新 PHP 預估數分鐘,網頁介面會短暫中斷,建議選在輪詢與告警較少的時段
  • 更新前先對 LibreNMS 虛擬機(或容器)建立快照,以便更新失敗時回復(快照不等於備份,使用方式見補充說明)

更新過程


步驟一:確認目前的 PHP 版本
  • 登入 LibreNMS 後,點選右上角齒輪,再點選「關於 LibreNMS」

  • 此處會顯示目前的 PHP 版本(範例為更新前的 8.5.11,尚未修補)

  注意:此頁顯示的是 PHP 本身回報的版本號。Ubuntu 內建套件是在原版號上回補修補(例如 Ubuntu 24.04 修補前後都顯示 8.3.6),因此不能拿這個版本號直接對照官方的修補版本,是否已修補請以步驟五為準。

  • 以 SSH 連線到 LibreNMS 主機,確認作業系統與已安裝的 PHP 套件
. /etc/os-release; echo "$PRETTY_NAME"
dpkg -l 'php[0-9]*-cli' 'php[0-9]*-fpm' | grep '^ii'
步驟二:建立快照
  • 在虛擬化平台對 LibreNMS 虛擬機(或容器)建立快照,以確保更新過程失敗造成服務異常時可以回復
步驟三:更新 PHP 套件
  • 只更新 PHP 相關套件(建議)。apt 會列出變更內容,確認後再輸入 Y,請勿加上 -y
apt update
apt install --only-upgrade $(dpkg-query -W -f='${db:Status-Abbrev} ${Package}\n' 'php*' | awk '$1=="ii"{print $2}')
  • 如果您定期維護,也可以一併更新所有套件(其他套件也會更新,可能連帶重啟其他服務)
apt update && apt upgrade
步驟四:重啟 PHP-FPM
  • 套件更新時通常會自動重啟 PHP-FPM,仍建議手動重啟並確認。第二行的 php8.x-fpm 請換成第一行列出的服務名稱,Nginx 通常不需要重啟
systemctl list-units 'php*-fpm*' --no-legend
systemctl restart php8.x-fpm
  • 只更新 PHP 不需要重開機。如果同時更新了核心(Ubuntu 可檢查 /var/run/reboot-required 是否存在),請另外安排時間重開機
systemctl reboot
步驟五:確認是否已修補
  • 檢查套件更新紀錄是否包含本次漏洞。每個已安裝的 PHP 版本會顯示一行,請看實際提供 LibreNMS 的那一行:數字大於 0 代表已包含修補。若為 0,請改用補充說明的最低修補版本表比對版本,不要單憑此項判定尚未修補(部分套件的更新紀錄可能不列 CVE 編號)
zgrep -cH 'CVE-2026-10961[89]' /usr/share/doc/php[0-9]*-common/changelog.Debian.gz
  • 確認 PHP-FPM 已重啟為新版(Active since 的時間應晚於更新時間)
systemctl status php8.x-fpm --no-pager | head -5
  • 回到 LibreNMS 網頁介面,開啟「Validate Config」,確認沒有與 PHP 相關的紅色失敗項目。若 PHP-FPM 與命令列的 PHP 版本不同,這裡會提示重啟 php-fpm;此項只比對版本號,不能取代上面兩項檢查

  • 回到 LibreNMS 網頁介面,開啟「關於 LibreNMS」,確認 PHP 版本已是修補版(範例為更新後顯示 8.5.12;Ubuntu 內建套件請以上述檢查為準)

補充說明


  • 各作業系統的最低修補版本(2026-10-22 查證,請以各來源頁面為準)
作業系統 PHP 套件 最低修補版本
Ubuntu 22.04 php8.1 8.1.2-1ubuntu2.28
Ubuntu 24.04 php8.3 8.3.6-0ubuntu0.24.04.13
Ubuntu 26.04 php8.5 8.5.4-0ubuntu1.5
Debian 12 php8.2 8.2.35-1~deb12u1
Debian 13 php8.4 8.4.27-1~deb13u1
Sury 套件庫 php8.2/8.3/8.4/8.5 與 PHP 官方修補版相同:8.2.35/8.3.36/8.4.27/8.5.12

  PHP 官方修補版為 8.5.12、8.4.27、8.3.36、8.2.35,使用其他第三方套件庫者,請向該來源確認已提供修補版。

  • PHP 8.1、8.0、7.4:PHP 官方已不再發佈更新。使用作業系統內建套件者,請以發行版的安全公告為準(例如 Ubuntu 22.04 的 php8.1 已有修補,見上表);自行編譯或使用第三方來源者,請洽來源提供者,或規劃升級。
  • 升級規劃:建議升級到 PHP 8.4 以上。PHP 8.2 將於 2026-12-31 結束安全支援,不建議作為升級目標。
  • 降低風險的設定不能取代更新:官方公告列有數項降低特定攻擊路徑風險的設定,但官方明確表示這些設定不能使系統變安全,請以更新為準,細節請見官方公告。
  • 更新後請確認有無入侵跡象:若更新前已遭入侵,更新無法清除已被植入的後門。主機的網頁介面曾對外開放者,資安廠商建議檢查:網站目錄是否出現新的 .php 檔、是否有異常排程(cron)或新增帳號,以及 PHP-FPM、Nginx 程序是否衍生出 sh、bash、curl、wget 等行程。LibreNMS 本身會自動更新並呼叫外部程式,正常運作也可能出現類似現象,判讀請交由維護廠商;未發現異常不代表未遭入侵。發現可疑跡象時,請勿自行刪除檔案、重灌或回復快照,先保存日誌與更新前的快照,再洽維護廠商協助。
  • 快照的使用:快照不等於備份。回復快照會丟失快照之後的監控資料,確認更新正常後請刪除快照(網頁介面曾對外開放的主機,請先確認無入侵跡象再刪,見上一項)。LXC 容器的快照需儲存後端支援,不支援時請改用 vzdump 備份。

疑難排解


  • 錯誤訊息: Unit php8.x-fpm.service not found 解決方式: 服務名稱與實際安裝的版本不同,請以 systemctl list-units 'php*-fpm*' --no-legend 查出正確名稱再重啟。
  • 錯誤訊息: 更新時 dpkg 停在套件未完成設定,或 PHP-FPM 重啟失敗 解決方式: 先以 php-fpm8.x -t(換成實際版本)檢查設定檔,修正後執行 dpkg --configure -a。
  • 錯誤訊息: apt 顯示無法取得鎖定(lock) 解決方式: 系統可能正在執行自動更新,請等候數分鐘後重試。
  • 狀況: 更新後網頁介面異常,無法排除 解決方式: 回復更新前的快照,再洽維護廠商協助。

備註


  • 本文的版本資訊為 2026-10-22 查證結果,後續若有變動,請以 PHP 官方及發行版的安全公告為準。
  • 跨大版本升級(例如 PHP 8.2 升級到 8.5)涉及 PHP-FPM、Nginx 與 Composer 設定,請另行參考《LibreNMS PHP 版本更新 - Ubuntu》。

版本紀錄


  • 2026-10-22:初版建立

參考相關網頁


延伸閱讀(第三方資安廠商分析,非官方公告)