curl 8.22 修正公共後綴 Cookie 邊界問題:代理工作流程應如何驗證
curl 專案於 2026 年 9 月 2 日發布 curl 8.22.0,並同步公開 CVE-2026-82209 安全公告。問題涉及啟用公共後綴清單支援的 libcurl 建置:公共後綴來源設定的特定網域 Cookie,可能在後續請求中被送給該後綴下的另一個網站。
curl 專案將其評為低嚴重性,並說明攻擊者無法任意植入 Cookie:必須由公共後綴頂點主動設定,客戶端之後還要請求攻擊者控制的同層網站。受影響版本為 curl 7.46.0 至 8.21.0,curl 8.22.0 已包含修正。
代理路線本身不會產生這項客戶端 Cookie 判斷,但代理應用常跨多個主機重複使用 libcurl handle、Cookie jar、重新導向與驗證工作階段。因此,Cookie 邊界仍是授權資料蒐集與代理工作流程安全模型的一部分。

修正內容
HTTP Cookie 的 Domain 屬性決定客戶端可向哪些主機回傳 Cookie。公共後綴屬於註冊層級邊界;客戶端利用公共後綴清單,防止邊界站點設定可供無關註冊者共用的 Cookie。
公告描述的是:當 Domain 明確等於本身就是公共後綴的來源主機時,libcurl 未正確執行邊界檢查。本次修正恢復預期的拒絕行為。
這不是代理憑證外洩。代理驗證標頭和目標網站 Cookie 屬於不同協定範圍,但不安全的重複使用、重新導向及日誌都可能暴露祕密,因此回歸測試必須將兩者分開。
判斷應用是否受影響
盤點所有使用 curl 或 libcurl 的位置,包括命令列任務、語言繫結、嵌入式代理、容器映像、桌面工具與第三方設備。終端顯示的版本不一定等於應用實際載入的程式庫。
每個執行環境至少記錄:
- curl 與 libcurl 版本;
- 是否啟用公共後綴清單支援;
- 適用時實際載入的 libpsl 版本;
- 是否啟用 Cookie;
- 是否使用共用或持久 Cookie jar;
- 哪些主機共用客戶端 handle 或工作階段;
- 重新導向是否可能跨越可註冊網域。
盤點中不得保存 Cookie 值、代理密碼、驗證標頭或個人資料。
選擇升級、修補或停用相關功能
curl 專案建議升級至 8.22.0、在維護中的建置套用官方修補,或不使用 Cookie。應依套件與變更管理流程選擇受支援方案。
不要假設升級作業系統套件就會自動更新靜態連結應用或容器。必須重建實際成品、核對執行階段版本,並在灰度通過前保留回復映像。
建立安全的 Cookie 隔離回歸測試
只使用你控制的網域和子網域,不得在真實公共後綴基礎設施上重現。
建立三個受控角色:
- 設定 Cookie 的來源站;
- 同一可註冊網域內允許接收的同層站點;
- 永遠不應接收 Cookie 的獨立對照網域。
測試夾具只設定無害標記 Cookie,並只顯示標記是否抵達,不輸出其值。在舊建置與修正建置上執行相同步驟:
- 從空白記憶體 Cookie 儲存開始;
- 透過預定代理路線請求設定來源;
- 只跟隨夾具定義的重新導向;
- 請求允許的同層站點;
- 請求獨立對照網域;
- 確認哪些請求帶有標記;
- 分別在連線重複使用與新客戶端 handle 下重複。
保持代理路由不變,避免把客戶端安全變化誤判為網路變化。若應用會輪換出口,應為隔離測試固定一個已授權工作階段。
覆蓋正式環境實際使用的邊界
完整回歸至少包含啟用與停用 Cookie、記憶體與檔案 Cookie jar、直連與正常代理模式、同網域與跨網域重新導向、單一 handle 與重複使用池、支援的 HTTP 版本、正式環境中的 IPv4 與 IPv6,以及實際任務採用的語言繫結。
通過條件不能只是「請求成功」,而應確認無害標記只出現在政策允許的位置,目標網站絕不收到代理憑證,且修正建置保持預期業務結果。
保護診斷資料
Cookie 測試可能產生敏感追蹤檔。使用合成值,遮蔽 Cookie、Set-Cookie、Authorization 與 Proxy-Authorization,並限制保存期限。HAR 和 curl 詳細輸出在完成清理前都應視為祕密。
可參考代理診斷封存去識別化指南處理完整清單。上線期間需要隔離網路變數時,可使用代理與目標限速區分方法。
以可測量的灰度上線
先遷移一小部分已授權任務,並比較有效業務結果率、夾具中的 Cookie 接受與拒絕、重新導向及驗證失敗、p50 與 p95 完成時間、傳輸位元組、重試率、代理工作階段連續性和非預期 Cookie jar 成長。
若 Cookie 隔離失敗、憑證進入日誌,或業務結果超出容忍門檻,應停止灰度。安全更新仍需營運驗證,但回復到不安全版本必須經過明確風險決策並部署補償控制。
驗證清單
- 已盤點所有 curl 與嵌入式 libcurl 執行環境;
- 已在執行階段確認版本和公共後綴清單支援;
- 已記錄 Cookie、jar 持久化、handle 共用及重新導向行為;
- 已將 curl 8.22.0 或維護修補部署到灰度;
- 測試只使用受控網域和合成 Cookie;
- 允許與禁止的 Cookie 範圍都有明確斷言;
- 比較直連與代理路徑時未同時改變其他變數;
- 日誌和追蹤中沒有 Cookie、權杖或代理憑證;
- 業務成功率、延遲、重試及工作階段行為符合要求;
- 最終成品與容器回報正確的修正版本。
常見問題
代理服務商需要修正 CVE-2026-82209 嗎?
公告針對 curl 的客戶端 Cookie 處理。服務商也可能執行內嵌 libcurl 的軟體,但控制每個受影響客戶端或服務的團隊都必須盤點並更新自己的執行環境。
8.22.0 之前所有 curl 都受影響嗎?
不是。公告列出的受影響範圍為 curl 7.46.0 至 8.21.0,並強調公共後綴清單支援的相關性。應核對準確建置,不能只從套件名稱推斷。
停用 Cookie 能排除相關路徑嗎?
curl 專案把「不使用 Cookie」列為緩解措施。許多驗證或有狀態流程仍需要 Cookie,因此升級或套用修補通常更持久。
應該在真實網站上掃描這種行為嗎?
不應該。使用你擁有的受控夾具與網域。大規模外部掃描沒有必要,也可能違反規則或法律。
合規與來源說明
只在已授權的系統、網域、帳號與資料範圍內執行代理和 Cookie 測試。遵守目標條款、速率限制、隱私義務、保存規則及存取控制。不得蒐集真實工作階段 Cookie,也不得利用此問題跨越網域邊界。
內部研究來源:curl 專案《domain-scoped PSL domain cookie — CVE-2026-82209》,2026 年 9 月 2 日;curl 專案《Changes in 8.22.0》,2026 年 9 月 2 日。資料網址僅保存在內部營運紀錄。