資安雷達 2026 年 8 月 19 日

2026-08-19 — CPython urllib 認證外洩、Lemur SSRF 連環公告與 moby/go-archive 解壓縮路徑穿越三則資安修補

primary=https://www.openwall.com/lists/oss-security/2026/08/18/3 primary=https://github.com/python/cpython/pull/155696 primary=https://github.com/advisories/GHSA-xpmj-wjcp-6pww primary=https://github.com/advisories/GHSA-f3qq-49m6-rw8f primary=https://github.com/advisories/GHSA-v5rc-cpwc-cfpr primary=https://github.com/advisories/GHSA-hfg8-hc9c-6c3h

CPython urllib 認證管理器跨協定外洩:HTTPS 密碼被誤送到 HTTP

oss-security 郵件列表 · 2026-08-18

2026年8月17日,CPython 專案在 oss-security 郵件列表公開 CVE-2026-15806,修補 urllib.request.HTTPPasswordMgr 未依 URL scheme 區分認證資訊的問題。回報者 Kirill Podoprigora 指出,此類別自 Python 3.10 到開發中的 3.15 分支均受影響,修補已透過 gh-155694 / PR #155696 合併進主線與各維護分支。

漏洞機制

HTTPPasswordMgrHTTPPasswordMgrWithPriorAuth 內部以 (realm, host, scheme) 儲存帳密,但查詢比對時只用 host 與 path,從未檢查 scheme 是否一致。結果是同一個 host 上為 https URL 註冊的帳密,會被原封不動回傳給 http 連線使用。若攻擊者能透過中間人降級連線,或誘導受害端跟隨 redirect 轉往未加密的 http,就能在明碼流量中攔截原本只該出現在 TLS 連線裡的認證資訊。

受影響版本

  • Python 3.10 / 3.11 / 3.12 — 僅回溯安全性修補
  • Python 3.13 / 3.14 / 3.15 — 完整修補併入一般版本

修補與緩解

修補後的比對邏輯在既有 host/path 檢查之外加入 scheme 判斷,但為相容代理伺服器認證(proxy auth 慣例上不帶 scheme),沒有 scheme 的 URI 仍可比對任何 scheme,維持向下相容。使用 HTTPPasswordMgr 系列類別管理多站台認證的程式,應盡快升級至含修補的次版本,並檢視是否曾依賴「http/https 共用同一組帳密」的舊行為來設計認證流程。

原始來源:oss-security 郵件列表公告CPython PR #155696


Lemur 憑證管理平台連環 SSRF:ACME 授權設定與撤銷驗證接連被繞過

GitHub Advisory Database · 2026-08-18

Netflix 開源的憑證管理平台 Lemur,自 2026年7月6日起在 GitHub Advisory Database 陸續公開一組圍繞 ACME 授權機構設定與憑證撤銷驗證的 SSRF 漏洞群,本輪於 8月18日集中收錄,含 GHSA-xpmj-wjcp-6pwwCVE-2026-70666)在內共 8 份關聯公告,全數指向 Lemur ≤ 1.9.2,修補版本為 1.9.3。這些公告彼此是同一輪安全稽核下的連鎖修補:前一份的修法不完整,催生了下一份公告。

漏洞機制

最初的 GHSA-xpmj-wjcp-6pww 指出,Lemur 只在「建立」ACME authority 時檢查 acme_url 是否落在允許清單內,PUT 更新端點卻不會重新驗證。具備 authority 角色的使用者可把既有 authority 的 acme_url 改成攻擊者控制的伺服器,讓其回應內部網址,誘使 Lemur 在核發憑證時對內部服務發出帶認證的 POST 請求。GHSA-v5rc-cpwc-cfprCVE-2026-71303)確認同一條更新端點的驗證缺口仍未補齊;另一份 GHSA-f3qq-49m6-rw8fCVE-2026-70667)則指出憑證撤銷檢查(CRL/OCSP)的 SSRF 防護可用 HTTP redirect 與 DNS rebinding 兩種方式繞過——防護只在驗證當下檢查一次網址或解析一次 IP,實際擷取時不會重新驗證。

受影響版本

  • lemur (PyPI) ≤ 1.9.2 — 三份已核實公告受影響版本一致
  • 修補版本:1.9.3
公告CVECVSS問題摘要
GHSA-xpmj-wjcp-6pwwCVE-2026-706667.4(High)ACME authority 更新端點未驗證 acme_url
GHSA-v5rc-cpwc-cfprCVE-2026-713037.7(High)同一缺口的補強仍不完整
GHSA-f3qq-49m6-rw8fCVE-2026-706676.3(Moderate)CRL/OCSP 檢查可被 redirect/DNS rebinding 繞過

修補與緩解

1.9.3 同時修補 authority 更新端點的 URL 驗證,並把撤銷檢查流程改為在實際擷取當下重新解析與重新驗證目標,而非只在稽核時檢查一次。此叢集另外還包含 GHSA-6c8m-q6g9-vrw3GHSA-cfh6-pv5c-38jvGHSA-g7p5-89mh-248hGHSA-4h97-p9wq-chqjGHSA-pxmc-2ffp-8j67 等公告,同屬這輪針對 Lemur 憑證簽發與撤銷流程的協同揭露。維運者應盡速升級,並檢查既有 authority 設定是否曾被非預期修改。

原始來源:GHSA-xpmj-wjcp-6pwwGHSA-f3qq-49m6-rw8fGHSA-v5rc-cpwc-cfpr


moby/go-archive 解壓縮路徑穿越:符號連結能把檔案寫到目的目錄外

GitHub Advisory Database · 2026-08-18

Moby 專案於 2026年8月11日公開 GHSA-hfg8-hc9c-6c3hCVE-2026-17106),指出從 moby/moby 拆分出來的獨立模組 go-archive,在 0.3.0 之前的版本解開 tar 壓縮檔時,可能把檔案寫到指定的解壓目的目錄之外。此漏洞於 8月18日收錄進 GitHub Advisory Database。

漏洞機制

問題出在解壓函式的路徑檢查順序:程式先以字串層級(lexical)比對條目路徑是否含有 ../ 之類的穿越字元,之後才呼叫作業系統的路徑解析與寫入操作。若壓縮檔中夾帶符號連結(symlink)條目,後續看似「乾淨」的相對路徑,在 OS 實際解析時會被連結帶出解壓目的目錄之外。也就是說,字串檢查發生在連結被解析之前,攻擊者可用 CWE-59(連結跟隨)繞過原本針對 CWE-22(路徑穿越)設計的防線。

archive.tar 內容示意:
  innocuous            -> symlink 指向 /etc
  innocuous/cron.d/evil   實際落點變成 /etc/cron.d/evil

受影響版本

  • github.com/moby/go-archive < 0.3.0
  • 修補版本:0.3.0

修補與緩解

官方將此漏洞的 CVSS v4 評為 7.1(High),弱點分類同時列出 CWE-22CWE-59。修補後的解壓邏輯改為每解析完一段路徑就即時確認仍位於目的目錄內,而不是等整條路徑組好才做一次檢查。使用此套件建置容器映像或還原備份的工具應升級至 0.3.0 以上;短期內若必須解壓不受信任的壓縮檔,建議限制在隔離環境中執行。

原始來源:GHSA-hfg8-hc9c-6c3h


End of article
0
Would love your thoughts, please comment.x
()
x