資安
資安新手入門 04|資安預算要花多少:先問出事一天損失多少
問別人資安預算編多少、佔營收比例多少,對你的公司沒有參考價值。真正能幫你決定預算上限的,是先算出你的系統停擺一天、或外洩一次要付多少錢。本文給經營者一個自己算得出來的四步算式。
這是恩梯科技資安週報的第二期,涵蓋 2026 年第 44 週(10 月 26 日起),資料讀取到 11 月 1 日為止。
先講結論:這一週幾乎沒有新的大漏洞,但上一期那幾個的狀態變了。上一期列在最前面的 PHP 兩個遠端執行漏洞、Brotli 的解壓縮漏洞,以及 GitLab 的一個漏洞,這一週都被美國 CISA 列進「已知遭利用」清單——意思是官方認定有人在實際攻擊中用它們。如果你上一週看完決定「再等一下」,這一週的消息就是:等的那段時間,外面已經在打了。
這一週唯一一件新的、而且多數人都該動手的事是 WordPress 7.1.4(10 月 28 日),官方列的第一項就是升級流程本身的一個弱點,可能在升級的那段時間窗內導致遠端程式碼執行;另外還有一個被改過的 Claude Code 擴充套件透過 Cursor 的市集流出,裝進去會嘗試留下 SSH 後門。
另外有一條不是新漏洞,但它值得單獨讀一次:Symfony 自己發文更正,五月那則「已修補」的公告是錯的——修補被寫好、卻沒有合進維護分支,所以五個月來沒有任何版本真的含它。版本號對了也可能沒修,這一條下面第四節講。
〔官方:美國 CISA〕美國網路安全與基礎設施安全局(CISA)維護一份「已知遭利用漏洞」清單(Known Exploited Vulnerabilities,簡稱 KEV)。一個漏洞被放進這份清單,代表官方認定它已經出現在實際攻擊中,而不只是理論上可被利用。我們讀的是 CISA 自己發布的資料檔,版本為 2026.10.30,當時全清單共 1766 筆。
這一週(10 月 26 日到 10 月 30 日)新增的項目如下,前三組就是上一期週報的前三節:
兩件不要讀錯的事。第一,清單上的「期限」欄位是美國聯邦機關的修補期限,不是給一般企業的法定期限。這不是我們的推論:每一筆的必要行動欄都指向 CISA 的一份行政指令(BOD 26-04),而那份指令自己寫明適用範圍是「聯邦資訊系統」裡的機關資產、對象是聯邦文職行政部門機關,並且逐字寫「除governing procurement contract另有要求外,本指令不適用於承包商」。所以那個日期可以當成「官方認為這件事多急」的參考,但它不是你的合約義務。第二,這幾筆的「是否用於勒索軟體攻擊」欄位,CISA 都標為「未知」——不是「沒有」,是沒有資料。
〔官方:新加坡 CSA〕新加坡網路安全局 10 月 30 日發布警示,第一句逐字是:攻擊者正在實際利用這個影響多項產品的 Brotli 重大漏洞,可在受影響系統上遠端執行任意程式碼或洩漏敏感資訊,請立即修補。官方寫這個漏洞的 CVSS v3.1 分數是 9.8,並說概念驗證程式(PoC)已經公開,而且據報正在被實際利用。
官方也寫了利用的前提:要有受影響的應用程式去解壓攻擊者可控制的 Brotli 壓縮資料。這句限定很重要——它決定了你的系統算不算在範圍內。
官方列出的受影響版本是 Node.js 22.x 低於 22.23.4、24.x 低於 24.22.1、26.x 低於 26.12.1,以及 Microsoft .NET 8、9、10、11。但那張表官方自己標了「非窮盡」(non-exhaustive),而且上面沒有 PHP。
〔官方:PHP〕這一條就是 PHP 使用者這一週真的要動手的地方。PHP 專案 10 月 26 日公告了重新編譯的 Windows 包:PHP 8.5.12-1、8.4.27-1、8.3.36-1 與 8.2.35-1,這些包含 Brotli 1.2.1,用來修補同一個 CVE-2026-111497。官方另外寫了三句話,少看一句就會判斷錯:
-1 後綴代表的是「Windows 套件以更新後的相依元件重新編譯」,這些包用的是同一份 PHP 原始碼,PHP 執行環境的版本號不變。換句話說,跑 php -v 看不出來你換了沒有。最後那一點正好是〈資安新手入門 01〉那種「比對版本號」做法會漏掉的形狀:這一次要看的不是 PHP 的版本,是你那包 Windows 套件的重編序號,以及裡面 Brotli 的版本。
分數說法不一致(上一期就有,這一週還在):新加坡 CSA 寫 CVSS v3.1 9.8;Node.js 官方在 10 月 21 日的安全發布裡把同一個 CVE 標為 HIGH。我們沒有在 Node.js 官方公告裡找到 9.8 這個分數。不管標哪一級,修補版是同一組。
〔官方:GitLab〕被 CISA 列入的 CVE-2026-97229,官方標題是 CI/CD 正規表示式編譯器的整數溢位問題,嚴重度 critical、CVSS 10.0,修補版是 19.2.8、19.3.5 與 19.4.2,發布日是 10 月 12 日;受影響範圍官方寫的是 19.2 到 19.2.8 之前、19.3 到 19.3.5 之前、19.4 到 19.4.2 之前。
所以這一條的對照方式是這樣:
官方另外為自架使用者發布了六條威脅偵測規則,用來查有沒有被嘗試利用。
〔官方:GitLab〕這一週 GitLab 另外出了一批修補,而它跟下面第七節的 eMudhra 是同一條線。10 月 29 日發布 19.5.3、19.4.5、19.3.7、19.2.10、19.1.10、19.0.11、18.11.14(官方同時說跳過了 19.5.2 與 19.4.4),修的是 CVE-2026-111943,官方給它的標題逐字是「GitLab 已移除對遭入侵的 eMudhra 中繼 CA 憑證的信任」——官方說移除的是八張私鑰已遭入侵的 eMudhra 中繼憑證,從 GitLab 自己隨附的憑證庫裡移除。受影響範圍是 18.11.14 之前的所有版本,以及 19.0 到 19.5 各自修補版之前。
這一批不是遠端執行的修補,但它有三件容易漏掉的後續,三件都是官方自己寫的:升級 GitLab 不會更新 Runner,自架 Runner 要另外升到 19.5.1;AI Gateway 也要另外升(官方列的是 18.11.8、19.0.13、19.1.9、19.2.5、19.3.3、19.4.3、19.5.3 或更新);自己帶 ca-certificates 的 CI/CD job 映像要重建——憑證庫在映像裡,升了伺服器也不會跟著換。GitLab.com 官方說已經在修補過的版本上;GitLab Dedicated 跑 19.4.3-internal0 或更新的租戶,官方說已含修補、不需動作。
這一條怎麼查到的,值得寫下來,因為清單頁靠不住:GitLab 的修補發布清單頁在我們這邊讀回來沒有列出任何項目(上一版的這一段因此寫「這一週有沒有新的修補版無法證實」)。改讀官方的修補發布 feed(https://docs.gitlab.com/releases/patch-releases.xml)就有資料,而該 feed 自己的更新時間是 10 月 29 日,所以 19.5.3 那一批也是 feed 上最新的一批。要盯 GitLab 的修補,盯 feed 不要盯那一頁。
〔官方〕WordPress 10 月 28 日發布 7.1.4,是這一週唯一一件「新的、而且多數人都該動手」的事。官方列出的修補項目共十三項,其中第一項逐字是:WordPress 升級流程中的一個弱點,可能在升級的那段時間窗內導致遠端程式碼執行。其餘多為儲存型跨站腳本(XSS),分布在區塊標記、互動性 API、Customizer 選擇性刷新、分類區塊、使用者登入名稱、播放清單與圖片區塊、留言分頁區塊等位置,另有一項互動性 API 的儲存型服務阻斷,以及一項權限問題(備註可被無權編輯該篇文章的高權限使用者讀取)。
還有一項與上面第七節同一條線:官方寫這次也更新了內建的根憑證,原因是 eMudhra 的撤銷。所以那件事的影響面不只在瀏覽器與伺服器語言,連 CMS 自己帶的那一份信任清單也在內。
〔官方:Cursor〕10 月 29 日,一個被改過的 Claude Code 擴充套件透過 Cursor 的擴充市集流出。官方的說法是這個擴充會執行惡意程式碼,嘗試安裝一個會持續存在的 SSH 後門,同時收集主機與使用者資訊,並試圖加入一支由攻擊者掌握的 SSH 金鑰。
這一條與上一期的 LiteLLM 事件是同一個形狀,而且它們一起說明了一件對採購與維運都很具體的事:你裝的東西有沒有被動過,取決於發布通路的安全,而不是那個專案的程式寫得好不好。最後那一步「從可信的機器上輪換憑證」尤其容易被跳過——在一台可能已經被裝了後門的機器上改密碼,等於把新密碼也交出去。
〔官方:Symfony〕Symfony 10 月 29 日發文說明 10 月 28 日那批發布(5.4.55、6.4.49、7.4.22、8.1.10)裡的安全項目,而其中一段是自我更正。官方的說法是:五月公告的 CVE-2026-45070 是一個透過 Mime 標頭參數名稱進行的電子郵件標頭注入,當時說它已在 5.4.52、6.4.40、7.4.12 與 8.0.12 修補,而那是錯的——修補確實被提交,但那個提交從來沒有合進維護分支,所以沒有任何一個發布版本含它。
〔官方:Symfony〕那個漏洞本身:官方的 CVE 頁說明,負責序列化 Content-Type、Content-Disposition 這類結構化標頭的元件,會驗證並正確編碼參數的「值」,但不驗證參數的「名稱」——名稱是逐字輸出的。所以一個把參數名稱接上不可信輸入的程式,可以在名稱裡塞進換行位元組,提早結束當前標頭並注入額外標頭。官方頁也列出受影響範圍:低於 5.4.55、6 系列低於 6.4.49、7 系列低於 7.4.22、8 系列低於 8.1.10;而那一頁現在自己掛著一句更正,逐字說它先前列為修補版的 5.4.52、6.4.40、7.4.12 與 8.0.12 並不含那個修補。
現在真的修了:5.4.55、6.4.49、7.4.22、8.1.10。官方另外提醒 Symfony 8.0 已不再維護,8.0 的使用者要升到 8.1.10。要不要升的判準,官方寫得很具體:如果你的應用程式會用來自使用者輸入的參數名稱去組 Mime 標頭,就升。
同一批發布的變更記錄裡還列了 CVE-2026-109413(Yaml)、CVE-2026-108082(HttpFoundation)與 CVE-2026-109449(ExpressionLanguage),但官方明說這幾項在這批發布裡沒有任何程式變更,它們的修補更早就在各分支發布過了:6.4 線分別是 6.4.45/6.4.46/6.4.48,7.4 線是 7.4.18/7.4.19/7.4.21,8.1 線是 8.1.6/8.1.7/8.1.9;5.4 線三個都在 10 月 15 日的 5.4.54 修掉。變更記錄上出現一個 CVE,不代表你現在才有修補可以裝——這一段就是為了避免那個誤判。
這一條對維運的意義比它的嚴重度大:「官方說某一版修好了」與「那一版真的含修補」是兩件事。我們寫〈資安新手入門 01〉時給的做法是比對版本號,而這一次比對版本號會得到錯的答案。能補上這個缺口的只有一件事——修補之後去驗,而不是看公告寫了什麼。
上一期第三節寫過 eMudhra 八張中繼憑證私鑰外洩。這一週有一份追蹤報告。
〔官方:Cloudflare,就它自己的網路〕Cloudflare 10 月 30 日的文章先把弱金鑰的程度寫清楚:這八個本該是 115 位數的私鑰,實際的值是 4、56、66、115、155、156、230 和 237。它寫這次事件與過去的憑證機構入侵事件根本不同——受影響的中繼私鑰任何人都能從公開的憑證本身幾乎立即還原。文章也提到 eMudhra 宣布退出公開憑證機構業務,並稱這是金鑰產生腳本的錯誤,但還沒有公開那個腳本。
它量到的東西(範圍限於 Cloudflare 自己的連線,10 月 21 日完成部署記錄後的一週):約 22,000 次使用這些弱金鑰的交握嘗試,其中三分之二是去抓測試網站;有大約 160 次特別不一樣——憑證裡的網域名稱指向其他組織的網域,與連線實際要去的主機名不符,其中有些是消費級物聯網裝置的網域,而且那些偽造憑證的有效期超過兩年,比任何公開憑證機構可以簽發的都長。
兩句要一起讀的結論:Cloudflare 說目前沒有證據顯示這些弱金鑰被用來攔截它的連線;但同一段也寫,這不能排除經過精心設定的針對性攔截。而最值得記住的不是數字是時間:他們看到的其中一張偽造憑證,日期是 10 月 20 日 18:19(UTC),距離 Mozilla 的問題回報公開不到一小時。
關於還有多少人沒修,Cloudflare 用挑戰頁發出探測連線來估,一週約五千萬次探測。它自己先寫了偏誤警告,而那段警告要跟數字一起看:挑戰頁的流量本來就高度偏斜、裡面有很多未經確認的機器人,而且只有會執行 JavaScript 的用戶端才會回報。在這些前提下它的觀察是:保持更新的現代瀏覽器大致都修好了,機器人與舊瀏覽器沒有;而嵌入式瀏覽器(例如 Android WebView)落後,還有三到四成仍然接受那些憑證。
如果你的網站有被嵌在 App 的網頁畫面裡使用,或你的客戶端裝置是物聯網設備,這一段比瀏覽器那一段更貼近你。
〔官方〕Chrome 穩定版與延長穩定版更新到 156.0.8078.79/.80(Windows 與 Mac)與 156.0.8078.79(Linux),官方說會在接下來幾天到幾週內陸續推送。這一次包含 21 個安全修補,其中唯一標為 critical 的是 CVE-2026-76024,官方描述為 MediaStream 的記憶體毀損。其餘公開列出的多為 high,集中在 FileSystem、Quota、Skia、V8、Blink 等元件,另有一項 medium。這一則發布說明沒有提到任何漏洞已遭實際利用。
〔官方〕LiteLLM 的事後說明(10 月 30 日):上一期第八節寫過 LiteLLM 的發布管道在 10 月 21 日遭入侵。這一週官方發了一篇檢討,標題講的是「10 月 21 日之後我們改了什麼」,內容包含為什麼三月之後建立的控制沒有擋下那次發布,以及身分、憑證與偵測方面的調整。如果你的系統有依賴這套 AI 閘道,這一篇比上一次的事故說明更該讀——它講的是同一個管道還會不會再出事。
同一個專案 10 月 27 日另外宣布了一個私有套件庫,用途是讓特定使用者在公開發布之前先拿到重大漏洞的修補。這對採購是一個要想清楚的設計:它的意思是,修補的時間差會變成一種分層服務。我們沒有查證它的條件與價格,這裡只記下它存在。
〔官方〕GitHub(10 月 28 日):GitHub 的變更記錄這一週沒有安全事件公告,但有兩項與維運相關的功能:Dependabot 的警示可以用「可達性分析」排序(也就是先看那段有漏洞的程式碼在你的專案裡到不到得了),以及密鑰外洩的推送保護擴及自訂的樣式。這兩項都不是修補,是讓「要先修哪一個」這個問題比較好回答的工具。
8dbb08b。那則公告列的受影響範圍是「低於 v12.68.0」與「低於 13.29.0」,而前者沒有下界——所以 10.x 與 11.x 並沒有被那個範圍排除,但公告也沒有列出它們的修補版。我們實際讀了程式碼:11.x 的 v11.56.1(8 月 25 日)只含一個修補 commit,改的是 TokenGuard.php 的 user() 與 validate(),加上非字串 token 的檢查並補了兩個測試,與 12.x 那個被官方指名的修補是同一個形狀。但沒有任何官方文字說 11.x 已修,所以這是我們從同一個改動推得的,不是官方說法——用 10.x 或 11.x 的人要自己對照這個版本,不能只看公告日期。週報每週一期,來源清單固定,每一期都會把「看過但沒事」與「查不到」一起列出來——讀者看不到我們漏了什麼,所以要由我們自己說。下一期涵蓋 11 月 2 日起的一週,而上面已經有一件排好的事:Next.js 的 11 月安全發布在 11 月 3 日。
恩梯科技是客製化開發出身的系統軟體公司,現在做的是 AI 系統的長期維護。如果你不確定手上的系統有哪些要跟著這一週的安全更新走,可以從一次預約系統健檢開始。
只與少數值得深入合作的夥伴建立長期關係。
需要協助嗎?
用 LINE 直接問我們