相依套件
該標籤下有 9 篇文章
Brotli 漏洞 CVE-2026-111497(Node2Shell):如何檢查 Node.js、Python 與 .NET,以及需要更新什麼
2026 年 10 月 21 日(美國時間),Google 發布 Brotli 1.2.1、1.1.1 與 1.0.10,修補官方 Brotli 函式庫中的越界寫入漏洞 CVE-2026-111497。受影響的是 Brotli 1.0.3–1.0.9、1.1.0 與 1.2.0。解壓縮惡意構造的 Brotli 資料可能破壞記憶體,導致當機、記憶體內容外洩,甚至可能導致任意程式碼執行。Google 依 CVSS v4.0 將其評為 9.2。Node.js 於同一天發布 22.23.4、24.22.1 與 26.12.1,10 月 22 日 PyPI 套件也在 brotli 1.2.1 與 brotlicffi 1.2.1.0 中完成修補。Microsoft 於 10 月 25 日(美國時間)發布 .NET 8、9 與 10 的修補(8.0.33、9.0.22、10.0.14),Bun(1.4.4)與 Envoy 也已發布修補。日本電腦緊急應變小組 JPCERT/CC 於 10 月 26 日發布警示,其中提到 Node2Shell 與 HTTP2Shell 這兩個別稱。許多程式自帶 Brotli 副本,因此更新作業系統的函式庫並不能修補官方 Node.js 建置、來自 PyPI 的 Python wheel、容器映像檔或單一檔案執行檔中的副本。10 月 27 日(美國時間),CISA 以存在主動利用的證據為由,將其加入已知遭利用漏洞(KEV)目錄,並要求美國聯邦機關於 11 月 10 日前完成修補。CISA 未公布細節。一家威脅情報公司回報觀察到針對 Node.js 24.22.0 的攻擊流量,但該流量在該公司自己的測試中並未成功,而 Microsoft 仍將此漏洞標示為未遭利用。新聞媒體報導指出概念驗證程式碼已經公開。本站結論:若 Node.js、Bun、Python 或 .NET 服務會解壓縮從外部收到的資料,請不要等待維護時段,今天就更新,然後重新建置容器與執行檔。 WordPress 與 PHP 網站:資安公司於 11 月 2 日說明,這不是 WordPress 核心、外掛或佈景主題的缺陷,因此更新 WordPress 並不能修補它。WordPress 不內建 Brotli,而是使用作業系統的函式庫,因此請更新作業系統的 libbrotli 套件、重新建置容器,並在之後重新啟動 PHP-FPM 或 Apache(重新啟動為本站補充)。其中一家公司在實驗室中透過 XML-RPC pingback 重現了程式碼執行,並稱截至 11 月 2 日未發現有關 WordPress 網站實際遭入侵的公開報告。
eMudhra(emSign)中繼 CA 金鑰外洩:Python 使用者必須對 pip、certifi 與 uv 做什麼
2026 年 10 月 17 日,有報告指出,印度憑證機構 eMudhra 的八張中繼憑證私鑰(其中六張用於 TLS)產生方式極為不當,任何人都可能還原。eMudhra 於 10 月 18 日撤銷全部八張憑證;Chrome 與 Firefox 則在 10 月 17 日透過各自的推送機制封鎖這些憑證。10 月 20 日,Mozilla 決定緊急移除其上層根憑證 emSign ECC Root CA - G3 的信任,Chrome 將於 10 月 27 日(太平洋時間)移除。瀏覽器已受保護,但瀏覽器以外的 TLS 用戶端,在更新自身 CA 清單之前,仍可能信任偽造的憑證。在 Python 中,pip 一律載入其內建的 certifi,因此即使作業系統的信任儲存區已修正,舊版 pip 仍然暴露在風險中。Python 專案於 10 月 20 日發布通知(於 10 月 22 日更新),要求使用者升級至至少 certifi 2026.10.19、pip 26.2.2、uv 0.13.4、sigstore 4.5.1、conda 26.9.4 與 pixi 0.82.1,並在不使用層快取的情況下重建容器映像檔。10 月 21 日,他們發布內含 pip 26.2.2 的 Python 3.15.1、3.14.9 與 3.13.17。3.11 與 3.12 不會再推出內含較新 pip 的版本。這並非 CPython 的程式碼執行漏洞:位於網路路徑上的攻擊者可以將連往 PyPI、python.org 及其他網站的連線導向假伺服器。截至 10 月 24 日,尚未有任何遭利用的公告。10 月 22 日,eMudhra 表示將退出全球 SSL/TLS 憑證業務。本站的看法:在每個環境中將 pip 升級至 26.2.2 或更新版本、certifi 升級至 2026.10.19 或更新版本,在不使用快取的情況下重建 Docker 映像檔,並提高鎖定檔中所有 certifi 的版本釘選。
Node.js 的原型污染:執行環境不負責的部分,以及如何在自己的程式碼中防禦
原型污染是外部輸入中的特殊鍵,通常經由遞迴合併,觸及 JavaScript 內建原型時發生的問題。結果有兩種:你從未設定的屬性到處出現(讓授權與選項判斷出錯),或內建方法消失、應用程式在無關的地方當掉。最重要的是責任歸屬:Node.js 表明這不是 Node.js 核心的漏洞,防禦應在應用程式與相依套件層級進行。等更新是修不好的。
什麼是 OpenSSL?負責 HTTPS 加密的函式庫,以及如何保持它的安全
OpenSSL=支撐 HTTPS(TLS/SSL)與加密的開源函式庫。多數人從不直接撰寫它——而是透過 Web 伺服器、作業系統或語言執行階段繼承而來。正因如此,一個 bug 的影響極其廣泛(Heartbleed 就是經典案例)。防禦之道:掌握你的技術棧使用的是哪個 OpenSSL、不要執行 EOL 版本、把底層函式庫納入 CVE 監控、並及時修補。即便是本站所提供的憑證,底下也是透過 OpenSSL 家族的實作來執行加密。
漏洞(CVE)處置實務:徹底修復,並持續監控復發
漏洞處置不是『修了』就完事。完成=①掃描②修復③隔離/移交④監控四點齊備才算數。尤其在加上監控(每日變化偵測)之前都算未完成——因為相依套件明天又可能變得脆弱。修復內容哪怕100分,只要下一次部署就被覆蓋,也等於0分。越是小團隊,越能靠自動變化偵測和『local→push→deploy』的紀律守得出奇地穩。
osv-scanner 的安裝與使用:自動找出相依套件裡的 CVE
osv-scanner 是一款免費工具,掃描鎖定檔或容器以排查相依套件中的 CVE。本文把安裝、執行、CI 整合做成步驟,並理清它與 npm/pnpm audit、Dependabot 的取捨。本站的觀點=哪個工具合適取決於你的架構。多語言混用或不依賴 GitHub 就用 osv-scanner,單一 npm 用內建的 pnpm audit 就夠了。
Log4Shell(CVE-2021-44228)——日誌函式庫的漏洞,以及為何團隊無法迅速確認自己是否在用
Log4j 的漏洞(CVSS 10.0)。核心問題在於經由間接相依(傳遞性相依),在不知不覺中正在使用。日誌輸出這一被動處理成了攻擊通道。SBOM 與相依套件的機器化監控、迅速修補、對後續 CVE 的追蹤,都是教訓所在。
XZ Utils 後門(CVE-2024-3094)——由受信任的共同維護者發動的供應鏈攻擊
壓縮函式庫 xz 中被一名贏得信任的維護者植入了後門的供應鏈攻擊。一名技術人員注意到登入變慢,在即將進入穩定版的前一刻發現了它。被瞄準的不是程式碼,而是人與信任。教訓是:把相依套件最小化、固定版本、提高可重現性、追蹤違和感、支援維護者。
安全維運 Next.js:建立不在已公開 CVE 上掉隊的機制
框架的最大風險是放任已公開的 CVE。以四項做法防守:以實際執行的版本判定、用 Dependabot/osv-scanner 監控、迅速更新、以最小權限執行。本站的看法:個人開發者通常欠缺的不是知識,而是讓維運持續下去的方法;不漏看 CVE 的機制比速度更重要。