這篇不是漏洞通報,我已經另外在社團發過。我想談的是:當你的網站架在一台更新不動的 NAS 上,到底該怎麼辦。
一、這不是你一個人的問題
我自己的官網,最早是一台自己安裝套件的 PC Linux 主機。後來考慮到費電,改用 NAS,前後換過兩代。每一步都合理:省電、省維護、快速上線。
大家平常都忙著日常工作,建站這件事,本能就會挑「懶人包」。就算本職是工程師,也一樣:能省時間的 Appliance,就用 Appliance。
但 Appliance 賣的是「不用自己維護」,這個承諾有一個隱含條件:廠商要持續維護。型號老舊、原廠不再支援的那天,承諾就消失了,而網站還掛在外網上,沒有人通知你這個條件已經不成立。
二、為什麼更新總是被拖
更新的成本是現在就要付的:
更新的回報卻是看不見的:做好了,什麼都不會發生;沒做,也往往很久都不會出事。所以只有兩種情況會認真做:有人付維護費,或是出事之後。
有維運責任的工程師,其實都不想碰這件事,但早晚會遇到。這是痛點,不是疏失。
三、四道難題
把處境攤開,會發現是四個條件互相卡住:
四難卡住的人,最常見的反應是「那就不管了」。放著不理也是一種選擇,但那是「選了」,不是「沒選」。下面把選項攤開,讓你知道每個選擇的代價。
四、誰負責哪一層
| 層級 | 誰負責 | 現實狀況 |
|---|---|---|
| 硬體與 NAS 作業系統 | 廠商 | 型號停止支援後就結束 |
| PHP、WordPress 套件 | 廠商打包,更新落後上游 | 套件是第三方軟體,要逐型號、逐系統版本測試與打包(我的觀察) |
| 外掛、佈景主題、網站內容 | 使用者 | 廠商不會碰 |
| 入口與暴露面(誰連得到你) | 使用者 | 最能立刻降低風險的一層 |
廠商不會即時負責,就把自己能控制的那一層守好。這比抱怨廠商實際得多。
五、風險到底長什麼樣
六、五種抉擇與能接受的結果
非關鍵任務的網站(形象型、行銷型),管理者與擁有者都會面臨這個抉擇。下表列出我認為實際可行的五種做法,以及做完之後還剩下什麼風險:
| 做法 | 做了什麼 | 降低什麼 | 剩下的風險 |
|---|---|---|---|
| A. 放著不理 | 什麼都不改 | 沒有 | 暴露面與弱點全在,被掃到只是時間問題。前提是你有可靠的備份,而且能接受網站被打垮 |
| B. 前面擋,縮小暴露面 | Cloudflare 代理;來源端只收 Cloudflare 網段;管理後台走 VPN;關掉用不到的對外連接埠;清掉不用的主題與外掛 | 大幅降低被直連、被隨機掃到的機會 | PHP 與 WordPress 本身的洞還在;WAF 規則可能被變形攻擊繞過 |
| C. 靜態化 | WordPress 留在內網當編輯端,把網站匯出成靜態頁,發布到託管環境 | 對外不再執行 PHP,攻擊面最小 | 留言、表單、站內搜尋等動態功能要另找替代;編輯端仍要保護;匯出外掛的相容性要先測試 |
| D. 搬到有人持續維護的環境 | 託管主機,或較新的 NAS 上用容器(例如官方 WordPress 映像檔)運行 | 把 PHP 與 WordPress 的更新責任移出舊機器 | 一次性的搬遷成本;新環境的更新仍然要有人看 |
| E. 下線,或只留靜態名片頁 | 關掉 PHP 站台 | 攻擊面歸零 | 失去網站功能;適合沒人維護且功能可有可無的站 |
這些做法可以組合。B 是最快、成本最低的起點,C 或 D 是長期方向,而備份是所有選項共同的底。不論選哪一個,重點是知道自己選了什麼,也知道剩下什麼風險。
CVE-2026-109619:把 session.upload_progress.enabled 設為 0 並重啟所有 PHP worker,必須在請求解析前生效(php.ini、FPM pool 或伺服器設定),只能擋住已確認的 session 路徑。
CVE-2026-109618:官方建議把 memory_limit 設為 -1 並讓應用程式無法覆寫,同時降低 post_max_size,並在網頁伺服器或代理層限制請求大小;官方警告不要用 RLIMIT_AS、RLIMIT_DATA 代替,應改用容器或 cgroup 做資源隔離。在記憶體有限的 NAS 上不限制記憶體,可能讓單一程序吃光資源,所以我不建議一般使用者自行套用。
七、最後一道防線:備份與善後
我的官網有異機、異地的網站與 WordPress 備份任務在執行,所以就算主網站被打垮,我不會太驚心動魄。備份是「撐住與復原」的那一層。但備份有四個容易被忽略的盲點:
站被打垮之後,我會這樣走:
find /你的網站目錄 -name “*.php” -mtime -14
find /你的網站目錄/wp-content/uploads -name “*.php”
第一行列出最近兩週有變動的 PHP 檔案;第二行找出上傳資料夾裡的 PHP 檔案,這裡通常不該有,出現了值得查證。單獨出現這些跡象,不足以確認入侵。
八、現況查核(截至 2026-10-21 晚間)
| 狀態 | 內容 |
|---|---|
| 已確認 | PHP 官方於 10/21 釋出 8.5.12、8.4.27、8.3.36、8.2.35,修補兩個 CVSS 9.2 的漏洞;PHP 8.2 將於 2026/12/31 終止支援。PHP 團隊另外為 7.4、8.0、8.1 提供了最小化的源碼回補,但這不代表這些分支恢復支援。 |
| 已確認 | Cloudflare 自 10/21 台灣時間上午 11:02 起,為所有方案(含免費版)預設部署 php2shell 防護;它只對實際經過 Cloudflare 代理的流量有效,也不取代修補。 |
| 已確認 | WordPress CVE-2026-87902 於 9/22 修補(7.1.2,並回溯到各維護分支),CISA 於 9/25 列入已知遭利用漏洞清單。10/6 另有 7.1.3 釋出。 |
| 待確認 | Synology 針對兩個 PHP CVE 的公告與套件更新;Synology 的 WordPress 套件是否已回補 CVE-2026-87902(我看到的套件版本為 6.8.6,低於 6.8 分支修補版 6.8.10,建置號可能含回補,請以官方更新紀錄為準);PHP2Shell 是否已有成功入侵的公開案例。 |
以上狀況會持續變動,我會在下方補上更新紀錄。
更新紀錄:2026-10-21 初版。
四道難題沒有任何一個做法能單獨解開,但可以拆開處理:入口自己守,網站盡量不要在對外時執行 PHP,備份是最後一道防線。
你無法讓風險歸零,但能讓它變小、能撐住,也能復原。最誠實的選擇,是知道自己選了什麼,包括「放著不理」。
PHP 官方資安公告:https://www.php.net/archive/2026.php#2026-10-21-5
Cloudflare:https://blog.cloudflare.com/php-vulnerabilities-waf-protection/
The Hacker News:https://thehackernews.com/2026/10/php-issues-emergency-patches-for-two.html
CrowdSec:https://www.crowdsec.net/vulntracking-report/cve-2026-87902-wordpress-vulnerability

Comments