curl 8.22 修正 wolfSSL CA 快取覆蓋信任設定:代理客戶端稽核指南

curl 專案於 2026 年 9 月 2 日隨 curl 8.22.0 公布 CVE-2026-82208。公告描述一個範圍很窄的憑證驗證問題:應用程式使用 wolfSSL TLS 後端建置的 libcurl、啟用 CA 快取,並透過 CURLOPT_SSL_CTX_FUNCTION 回呼替換信任庫。
在這個組合下,回呼返回後,libcurl 可能靜默重新安裝快取 CA 庫。原本被回呼所選信任庫拒絕、卻被舊快取信任的憑證,可能被錯誤接受。curl 專案將嚴重性評為低。
代理自動化團隊應檢查內嵌 libcurl 的 SDK、蒐集器與驗證工作程序,但不能把範圍擴大成所有 curl 或所有代理連線。命令列 curl 不受影響,其他 TLS 後端也不在公告所述範圍。
核對所有觸發條件
只有以下條件全部成立或無法確認時,部署才應視為可能受影響:
- 執行中的 libcurl 版本為 8.9.1 至 8.21.0;
- 使用 wolfSSL TLS 後端建置;
- 已啟用 CA 快取;
- 應用程式設定
CURLOPT_SSL_CTX_FUNCTION回呼; - 回呼會替換或修改信任庫。
公告列出早於 8.9.1 和 8.22.0 以上版本不受影響。不要以同一主機的 curl 命令版本推測應用程式執行庫;應用可能捆綁或動態載入另一個 libcurl。
盤點執行庫、後端與回呼
以實際部署成品為準,為每個服務記錄:
application_build
loaded_libcurl_version
tls_backend
ca_cache_enabled
ssl_context_callback_present
trust_store_replaced
deployment_region
應用程式和信任設定只記錄別名,不得記錄 CA 私密資料、代理密碼、權杖、Cookie 或客戶識別資訊。
優先檢查長時間執行、會重用 TLS 設定或共享 handle 的資料蒐集、廣告驗證與市場研究程序。此問題針對信任庫選擇,不涉及住宅 IP 輪替、代理工作階段黏著性或 DNS。
依官方順序修正
curl 公告依序建議:
- 將 curl 與 libcurl 升級至 8.22.0;
- 套用官方修補程式並重新建置受影響版本;
- 前兩項暫不可行時,避免在 wolfSSL 後端使用
CURLOPT_SSL_CTX_FUNCTION。
安全升級必須確認程序實際載入的程式庫,並重新啟動或排空可能保留舊狀態的工作程序。可為無關相容性問題準備回復成品,但回復不得重新引入受影響的信任路徑。
建立信任隔離測試
只使用授權實驗環境中的自建測試端點與憑證,不得為第三方名稱製作誤導性憑證。
準備兩套測試信任設定:
- 快取基準信任測試 CA A;
- 回呼選定的新設定只信任測試 CA B,並拒絕 A。
依序執行:
- 在隔離環境初始化符合受影響條件的客戶端設定;
- 使用基準設定填入 CA 快取;
- 安裝回呼選定的新信任設定;
- 連線至使用測試 CA A 憑證的端點;
- 斷言連線被拒絕;
- 連線至測試 CA B 端點並斷言成功;
- 在 libcurl 8.22.0 上搭配連線重用與程序重啟重複測試。
通過條件是嚴格執行回呼所選信任決策。TCP 連線、HTTP 回應或代理通道成功都不足以單獨證明驗證正確。
分別驗證代理及目標信任邊界
應用程式可能同時驗證 HTTPS 代理和來源站 TLS。必須明確記錄每個邊界所用信任庫與回呼:
| 邊界 | 預期信任設定 | 驗證證據 |
|---|---|---|
| HTTPS 代理 | 核准的代理 CA 集合 | 代理 TLS 結果 |
| CONNECT 內來源站 | 核准的來源站 CA 集合 | 來源站 TLS 結果 |
| 直連測試端點 | 回呼選定測試集合 | 受控憑證結果 |
| 重用連線 | 邊界身分不變 | 連線與信任別名 |
不得為了通過測試而關閉憑證驗證,否則會移除測試原本要保障的安全屬性。
觀察升級回歸
金絲雀期間監控去識別化的憑證失敗原因類別、TLS 交握延遲、新連線速率、代理通道成功率、首次請求成功率及有界重試量。正確拒絕增加可能表示舊行為過度寬鬆,應調查而不是放寬驗證。
憑證拒絕也不是輪替代理出口或改為直連的訊號;那些動作只會掩蓋信任錯誤。
升級檢查清單
- [ ] 已確認程序實際載入的 libcurl 版本。
- [ ] 已識別每個成品的 TLS 後端。
- [ ] 已定位 wolfSSL 8.9.1 至 8.21.0 建置。
- [ ] 已確認或排除 CA 快取。
- [ ] 已盤點 SSL context 回呼及信任替換。
- [ ] 已部署 libcurl 8.22.0 或官方修補。
- [ ] 已重新啟動或排空長駐工作程序。
- [ ] 設定替換後測試 CA A 會被拒絕。
- [ ] 測試 CA B 仍按預期被接受。
- [ ] 已分開驗證代理及來源站信任邊界。
- [ ] 未加入任何憑證驗證繞過。
- [ ] 日誌與測試資料不含憑證或私密材料。
相關 98IP 內容包括代理憑證輪替、curl 代理驗證 407 疑難排解及代理容錯移轉復原演練。
常見問題
命令列 curl 會受到影響嗎?
不會。公告明確指出命令列工具不受影響;相關路徑是符合特定 wolfSSL、CA 快取及回呼條件的 libcurl 應用程式。
OpenSSL 或其他 TLS 後端會受影響嗎?
公告指出問題只存在於 wolfSSL 後端。應核對實際執行後端,不要只依賴建置文件。
能否暫時關閉憑證驗證?
不能,這會造成更廣泛的信任風險。應升級、修補,或依官方建議避開受影響的回呼組合。
輪替代理 IP 能緩解問題嗎?
不能。代理輪替改變路由,不會改變客戶端驗證憑證所使用的 CA 庫。
合規說明
只使用自有或獲授權的測試憑證、網域及端點。保護信任庫資料,遵循事件應變與變更控制要求,並只將代理用於合法、遵守目的服務條款、隱私規則及速率限制的工作負載。
資料說明:curl 專案「wolfSSL CA-cache hit overrides callback」,CVE-2026-82208,發布於 2026 年 9 月 2 日;curl 8.22.0 發布說明,2026 年 9 月 2 日。