libexpat 2.8.2 修補 13 項漏洞:整數溢位與越界存取全面整治
libexpat GitHub Releases · 2026-06-25
2026 年 6 月 25 日,XML 解析函式庫 libexpat 發布 2.8.2 版本,一次性修補 13 項安全漏洞,涵蓋多個整數溢位(CWE-190)與越界陣列存取(CWE-125)問題。受影響的程式路徑廣泛分佈於核心解析函式與命令列工具 xmlwf,所有使用 libexpat 2.8.2 以前版本的應用程式均建議立即升級。
漏洞機制
此次修補的漏洞主要分為兩大類型。整數溢位漏洞集中在 libexpat 核心函式中,包括 storeAtts、addBinding、getAttributeId、XML_ParseBuffer、textLen 處理以及 copyString 等六個函式(CVE-2026-56403~CVE-2026-56408)。這些函式在處理 XML 文件的屬性、命名空間繫結或緩衝區內容時,若輸入資料刻意構造,可觸發整數溢位並導致記憶體損毀。
xmlwf 工具同樣存在三個整數溢位漏洞(CVE-2026-56409~CVE-2026-56411),分別出現於路徑拼接、resolveSystemId 函式以及 NOTATION 宣告的記憶體分配路徑中。越界存取漏洞(CVE-2026-56132)則位於 doProlog 函式的腳架索引(scaffolding index)寫入邏輯,屬於陣列越界寫入問題。
此外,CVE-2026-50219 與 CVE-2026-56131 屬於處理器(handler)保護繞過問題:前者禁止在 handler 呼叫期間再次呼叫 XML_GetBuffer、XML_Parse、XML_ParseBuffer;後者則封堵 CVE-2026-50219 殘留的缺口,防止 XML_ResumeParser 在 handler 內部被呼叫,避免記憶體損毀。CVE-2026-56412 則修補了 doCdataSection 中 XML_TOK_DATA_CHARS handler 呼叫缺乏保護的問題。
受影響版本
- libexpat < 2.8.2(所有平台):
CVE-2026-50219、CVE-2026-56131、CVE-2026-56132、CVE-2026-56403~CVE-2026-56412 - xmlwf(libexpat 內建命令列工具)含整數溢位:
CVE-2026-56409、CVE-2026-56410、CVE-2026-56411
需特別注意,CVE-2026-56406 的 CVSS v3.1 評分為 6.9(中),攻擊向量為本機(Local)。漏洞觸發路徑在 XML_ParseBuffer 函式中缺少 XML_Parse 已有的整數溢位檢查,使惡意輸入有機會繞過邊界驗證,造成高度的機密性與完整性衝擊。下游整合 libexpat 的語言執行時期(如 Python pyexpat、PHP XML 擴展)同樣受到影響,需關注對應的發行版更新。
修補與緩解
官方修補方式為升級至 libexpat 2.8.2。原始碼與預編譯二進位(含 Windows 版本)已發布於 GitHub Releases 頁面,所有版本均附有 GPG 簽章驗證。若短期內無法升級,可考慮限制解析器所接受的 XML 輸入來源,避免接受來自不受信任端的任意 XML 文件,但此措施僅能降低曝險,無法完全消除風險。
使用 pkg-config --modversion expat 或 dpkg -l libexpat1 可確認目前安裝版本。Debian、Ubuntu、Alpine 等下游發行版通常會在數日內提供更新套件,建議透過各發行版的安全公告訂閱頻道追蹤最新進度。
原始來源:libexpat/libexpat GitHub Releases — R_2_8_2、libexpat Changes 檔案(R_2_8_2)
PowerDNS 批次安全公告:Recursor 修補 8 個 CVE,Authoritative Server 修補無限記憶體分配漏洞
PowerDNS Blog · 2026-06-25
2026 年 6 月 25 日,PowerDNS 團隊同步發布安全公告 2026-07 與 2026-08,分別針對 Authoritative Server 與 Recursor 兩款產品。Recursor 的更新規模最大,單次修補 8 個 CVE,涵蓋快取毒化、ZONEMD 驗證繞過、資訊洩漏及拒絕服務等多類問題;Authoritative Server 則修補一個可被遠端觸發的無限記憶體分配漏洞。
漏洞機制
安全公告 2026-08 針對 PowerDNS Recursor,修補八項漏洞。其中最嚴重的 CVE-2026-33612(高危)涉及 ZoneToCache 功能可被用於毒化遞迴解析快取,攻擊者若能控制權威 DNS 區域資料即可觸發此問題。CVE-2026-42390 允許攻擊者繞過 ZONEMD 完整性驗證機制,使 Recursor 接受被篡改的區域資料而不發出警告,進一步危及 DNSSEC 保護鏈的完整性。
CVE-2026-40012 屬於資訊洩漏問題:ECS(EDNS Client Subnet)zero-scoped 回應的詳細資訊可能洩漏給下游查詢用戶端。在多租戶或公共遞迴解析服務場景中,此問題可能暴露使用者的查詢子網路資訊。CVE-2026-52690 則使攻擊者可透過偽造 DNS 答案,將某一權威伺服器標記為「不支援 EDNS」,進而降低後續查詢的相容性與安全性。
另外三個驗證不足漏洞(CVE-2026-42387、CVE-2026-42388、CVE-2026-42389)分別對應 ZoneToCache RRSIG 驗證缺陷、catalog zone 輸入驗證空缺,以及對 DNS 標頭欄位無效值的處理不足。CVE-2026-42005 影響 Recursor 的內建 web 伺服器,攻擊者可傳送特製 HTTP 請求造成無上限記憶體消耗,進而引發拒絕服務。
安全公告 2026-07 對應 PowerDNS Authoritative Server 的同一 web 伺服器問題(CVE-2026-42005):在預設關閉的內建 web 伺服器(CWE-770)啟用後,若未限制存取來源,遠端攻擊者即可觸發無限記憶體分配(CVSS 4.3)。此漏洞於 2026 年 4 月 25 日由研究人員 ilya rozentsvaig 回報。Authoritative Server 受影響版本橫跨長達十年的版本歷史,從 3.4.0 至 5.1.1 均受到波及。
受影響版本
PowerDNS Recursor(2026-08)受影響版本:
| 支援分支 | 受影響版本 | 修補版本 |
|---|---|---|
| 5.2.x | 5.2.0 – 5.2.10 | 5.2.11 |
| 5.3.x | 5.3.0 – 5.3.7 | 5.3.8 |
| 5.4.x | 5.4.0 – 5.4.2 | 5.4.3 |
PowerDNS Authoritative Server(2026-07)受影響版本為 3.4.0 至 4.9.15、5.0.5,以及 5.1.1;修補版本為 4.9.16、5.0.6、5.1.2。注意 CVE-2026-42005 同時出現於 Recursor 與 Authoritative Server,兩者均需升級。
修補與緩解
升級至上述修補版本是最直接的修補方式。對於 Recursor,不使用 ZoneToCache 功能的部署可降低 CVE-2026-33612 與 CVE-2026-42387 的曝險程度,但仍需升級以修補其餘漏洞。對於 Authoritative Server,若暫時無法升級,可在防火牆層面限制對內建 web 伺服器(預設連接埠 8081)的存取,僅允許受信任的管理網段連線。
使用 ECS 功能(use-incoming-edns-subnet)的遞迴解析器部署應優先升級,以修補 CVE-2026-40012 的資訊洩漏問題。已啟用 catalog zone 的服務亦需特別注意 CVE-2026-42388 的輸入驗證缺口。
原始來源:PowerDNS Security Advisory 2026-08 for PowerDNS Recursor、PowerDNS Security Advisory 2026-07 for Authoritative Server
Go SSH 套件高危漏洞 CVE-2026-42508:已撤銷 CA 金鑰未受正確檢查,身份驗證可被繞過
GitHub Advisory Database (GHSA-5cgq-3rg8-m6cv) · 2026-06-25
Go 官方擴展函式庫 golang.org/x/crypto 的 SSH known hosts 套件存在嚴重身份驗證繞過漏洞,識別為 CVE-2026-42508(GHSA-5cgq-3rg8-m6cv,GO-2026-5021)。漏洞根源在於 CA 金鑰的 SignatureKey 欄位並未被納入撤銷狀態(@revoked)的驗證流程,使已撤銷的 CA 子金鑰仍可通過驗證,攻擊者藉此得以冒充已撤銷的受信任主機。CVSS v3.1 評分為 9.1(Critical),於 2026 年 6 月 25 日公開揭露。
漏洞機制
在 golang.org/x/crypto/ssh/knownhosts 套件中,hostKeyDB.IsRevoked 函式負責判斷一把公鑰是否被標記為 @revoked。原有邏輯僅對主要金鑰(key)進行撤銷狀態比對,卻未同時檢查關聯的 key.SignatureKey 欄位——當 CA 採用子金鑰(SignatureKey)簽發憑證時,即便該子金鑰已被撤銷,函式仍會回傳「未撤銷」的結果,進而允許以撤銷金鑰簽署的連線通過驗證。
此漏洞的攻擊向量為網路(Network),無需認證亦無需使用者互動(AC:L/PR:N/UI:N),可直接針對使用受影響套件的 SSH 用戶端發動攻擊。成功利用此漏洞的攻擊者可冒充已撤銷金鑰所對應的受信任伺服器,造成高度的機密性與完整性損失(C:H/I:H/A:N)。弱點分類為 CWE-295(Improper Certificate Validation)。EPSS 機率目前為 0.04%,尚無已知在野利用紀錄。
修補程式透過 Go Change List #781220 提交,對應 Go Issue #79568。修補後的邏輯同時對 key 與 key.SignatureKey 兩個欄位執行撤銷狀態檢查,確保任一欄位被標記為 @revoked 時均能正確拒絕連線。
受影響版本
golang.org/x/crypto<v0.52.0(所有使用knownhosts套件並依賴 CA 撤銷機制的應用程式)- 特別注意:僅在 known_hosts 檔案中使用
@revoked標記的部署才面臨實際威脅;若未使用 CA 授權或撤銷機制,則無直接風險,但仍建議升級
修補與緩解
唯一完整的修補方式為升級 golang.org/x/crypto 至 v0.52.0 或更新版本,並重新建置所有依賴此套件的服務。可使用 govulncheck 工具掃描專案依賴樹,確認是否仍有受影響版本殘留:
govulncheck ./...對於無法立即升級的部署,可考慮暫時移除 known_hosts 中的 @revoked 標記,改以其他機制管控金鑰信任關係;但此做法會喪失撤銷保護,不建議長期維持。Go 安全團隊已透過 golang-announce 群組發布公告,建議所有使用者訂閱此群組以接收後續安全通知。
原始來源:GHSA-5cgq-3rg8-m6cv — GitHub Advisory Database、GO-2026-5021 — Go Vulnerability Database