
curl 專案於 2026 年 9 月 2 日隨 curl 8.22.0 發布 CVE-2026-80231。這個低風險問題涉及 Windows 與 macOS 的 HTTPS 連線重複使用:後續傳輸即使透過 CURLSSLOPT_NATIVE_CA 要求不同的原生 CA 儲存區設定,也可能重複使用同一主機名稱下已建立的連線。
重複使用中的 TLS 連線不會重新執行憑證握手。若連線池把不同信任設定誤判為等價,後續請求就可能沿用建立舊連線時的驗證結果。
該問題同時影響 libcurl 應用程式與 curl 命令列工具。它不是代理供應商漏洞,但代理與資料蒐集系統通常大量重複使用客戶端、控制代碼及連線池,因此升級後仍應驗證真正的信任邊界。
精確判斷影響範圍
官方公告列出的範圍為:
- 受影響版本:curl 7.71.0 至 8.21.0;
- 已修正版本:curl 8.22.0 及以上;
- 受影響系統:Windows 與 macOS;
- 受影響行為:後續傳輸的原生 CA 設定不同,卻重複使用舊 HTTPS 連線;
- 嚴重性:低風險。
不要把所有 curl 部署都判定為受影響。純 Linux 工作節點不在公告範圍;從不切換原生 CA 設定的服務也可能無法觸發此路徑。應先核對執行時版本、作業系統、TLS 設定與連線池行為。
為何代理架構需要關注
HTTPS 代理與 HTTPS 來源站點可能形成兩個獨立 TLS 跳點。代理憑證由代理專用信任選項控制,來源站點憑證則由來源信任選項控制。一次請求成功,只能證明目前連線曾在某個設定下通過驗證,不能證明建立連線時使用的就是本次要求的設定。
下列情境更需要檢查:
- 公網蒐集工作使用系統信任庫,內部研究工作使用私有 CA;
- 區域工作節點變更信任選項但未重建連線池;
- 長期執行的服務跨租戶重複使用 easy handle;
- 測試工具對同一主機交替使用原生 CA 與檔案 CA;
- HTTPS 代理客戶端隔離了代理信任,卻未隔離來源站連線。
安全原則是:所有會改變 TLS 身分或信任判斷的設定,都必須納入連線池鍵。
立即回應步驟
- 盤點 Windows 與 macOS 工作節點上的 curl、libcurl 版本。
- 查找
CURLSSLOPT_NATIVE_CA、--ca-native與封裝層等價設定。 - 定位共享控制代碼、multi handle、連線快取和長生命週期客戶端池。
- 升級到 curl 8.22.0 及以上,或透過正式依賴流程套用修補程式。
- 重新啟動長期執行程序,清除舊程式庫與既有連線。
- 在恢復混合信任策略連線池前執行受控回歸測試。
官方臨時緩解措施是在使用原生 CA 儲存區的傳輸中啟用 CURLOPT_FORBID_REUSE。它會增加建立連線的成本,應量測延遲與資源影響,並視為升級前的過渡方案。
建立安全回歸矩陣
只使用組織擁有的測試端點與憑證。準備兩套信任設定:
- 設定 A 信任作業系統原生 CA 儲存區;
- 設定 B 只信任專用測試 CA,或明確排除設定 A 會接受的憑證。
針對同一測試主機執行:
- 使用設定 A 建立連線並記錄是否為新連線;
- 在同一客戶端池中切換到設定 B;
- 確認第二次請求會按設定 B 新建 TLS 連線,或依預期憑證驗證失敗;
- 反向執行設定 B 到設定 A;
- 關閉連線重複使用後再測一次,作為控制組;
- 涵蓋閒置逾時與連線池淘汰情境;
- 在實際部署的 Windows 與 macOS 建置上分別測試。
不得使用 --insecure 或關閉驗證來讓測試通過。只有憑證決策與目前信任設定一致,測試才算成功。
分離代理信任與來源站信任
存在 HTTPS 代理時,應分別記錄:
- 代理主機名稱、憑證鏈、信任來源與連線識別碼;
- 來源站主機名稱、憑證鏈、信任來源與連線識別碼;
- 是否透過 CONNECT 通道存取來源站;
- 兩個 TLS 連線分別是新建或重複使用;
- 每個跳點的原生 CA 旗標與自訂 CA 設定。
可參考代理 TLS 信任設定隔離指南設計連線池鍵,並以代理繞過稽核確認受信路徑失敗時不會靜默直連。
記錄不得包含私鑰、代理密碼、授權標頭、Cookie 或完整敏感 URL。測試編號、主機類型、憑證指紋、信任設定 ID 與重複使用結果通常已足夠。
驗收清單
- [ ] 切換原生 CA 設定後不會重複使用舊設定建立的連線。
- [ ] 反向切換同樣得到與目前設定一致的結果。
- [ ] 代理 TLS 與來源站 TLS 設定彼此獨立。
- [ ] 直連與代理測試都有可歸因的連線識別碼。
- [ ] 憑證拒絕為硬失敗,不會觸發未授權直連。
- [ ] 重新啟動後執行時確認為 curl 8.22.0 或已驗證修補版本。
- [ ] 遙測可區分新建與重複使用連線,且不洩漏憑證。
FAQ
Linux 是否受影響?
官方公告把問題限定在 Windows 與 macOS。混合作業系統叢集仍應核對每個實際二進位檔,不要依節點名稱推斷。
curl 命令列工具是否受影響?
受影響。公告明確指出命令列工具與 libcurl 應用程式都在範圍內。
住宅代理會造成此問題嗎?
不會。問題源自 curl 在原生 CA 設定不同時錯誤重複使用 HTTPS 連線。代理會增加一個可能獨立的 TLS 跳點,因此應分別驗證兩條信任路徑。
停用重複使用是否足夠?
這是官方提供的臨時措施,但會影響效能,也不能取代升級。應設定明確的移除計畫。
來源與合規說明
內部研究依據:curl 專案「native CA store conn reuse」安全公告,CVE-2026-80231,發布於 2026 年 9 月 2 日;curl 8.22.0 發布資料。外部資料 URL 只保存在內部營運記錄中,公開文章不含外部連結。
只在擁有或獲授權的系統、端點、代理帳號與信任庫上進行憑證測試,並遵守服務條款、隱私要求、速率限制與組織變更流程。