水彩網際網路下載路線進入彼此隔離的目標資料夾

curl 專案於 2026 年 9 月 2 日發布 CVE-2026-80256。這項中度風險問題只影響 Windows 上的 wcurl:遠端檔名中的百分比編碼反斜線,可能在解碼後被解釋為路徑分隔符,讓新下載檔案建立在使用者預期目錄之外。

現代 curl 的禁止覆寫保護生效時,該條件不會覆寫既有檔案;檔案建立也仍受目前使用者權限限制。不過,透過代理執行 Windows 下載工作的團隊仍應升級,並在恢復無人值守流程前驗證從遠端檔名到最終檔案系統路徑的完整鏈路。

準確確認受影響版本

官方公告列出的範圍為:

  • curl 8.14.0 至 8.21.0 隨附的 wcurl;
  • 獨立 wcurl 2024.12.08 至 2026.01.05。

修正版本是 curl 8.22.0 以上隨附的 wcurl,以及獨立 wcurl 2026.08.30 以上。問題只存在於 Windows。

這是 wcurl 檔名處理問題,並不表示所有 curl 下載、所有作業系統或所有代理服務都受影響。必須盤點工作實際呼叫的包裝器與版本,不能只看套件名稱推斷。

為何代理下載管線需要關注

使用代理的研究與收集系統經常從多個獲准主機把檔案下載至暫存目錄,也可能依據回應中繼資料或遠端路徑產生輸出名稱。代理只改變傳輸路線,不會讓遠端檔名自動變得可信。

路徑逸出可能影響:

  • 排程執行的市場研究下載;
  • 透過住宅出口收集區域素材;
  • 被後續程序監視的資料匯入資料夾;
  • 呼叫 wcurl 的瀏覽器或命令包裝器;
  • 多個工作程序共用的暫存目錄;
  • 假設所有輸出都在同一根目錄的清理工作。

安全邊界應以解析後的檔案系統目的地為準,而不是肉眼看到的檔名字串。

立即處置步驟

首先只暫停受影響的 Windows 無人值守工作。沒有證據時,不要停止其他系統的無關 curl 工作流程。

接著:

  1. 找出每個 wcurl 呼叫及最終解析的可執行檔路徑;
  2. 記錄 wcurl 與隨附 curl 版本;
  3. 升級至 curl 8.22.0 或獨立 wcurl 2026.08.30 以上;
  4. 重新啟動排程器與工作程序;
  5. 檢查授權工作根目錄與允許父路徑中最近寫入的檔案;
  6. 對異常檔案只保存最少中繼資料,不開啟或執行;
  7. 只有其他證據顯示憑證暴露時才輪替憑證。

調查階段不要大範圍刪除檔案或清空下載目錄,應保留證據並依正式事件回應流程處理。

無法立即升級時的暫時緩解

官方建議明確指定輸出檔名,或停用檔名百分比解碼。這些控制可降低對不可信遠端檔名的依賴。

緩解措施只能暫時使用,並要確認包裝器確實把選項傳至最終 wcurl 程序。設定檔、別名、Shell 函式或工作執行器都可能覆蓋你檢查過的命令。

保留禁止覆寫保護,但不要把它當成完整目錄隔離。防止覆寫既有檔案,不能證明新檔案仍在核准目錄內。

建立隔離回歸測試

在一次性 Windows 測試環境中,使用受控 HTTPS 端點與空白暫存目錄。提供無害且帶唯一標記的檔案,涵蓋:

  • 一般預期檔名;
  • 空格與普通標點;
  • 百分比編碼反斜線;
  • 看似包含巢狀目錄的遠端名稱;
  • 重複分隔符;
  • 與既有檔案衝突的名稱;
  • 較長但允許的檔名;
  • 明確指定的安全本機檔名。

不要使用可執行內容。含隨機測試編號的短文字檔已足夠。

每個案例記錄原始遠端名稱、解碼名稱、工作目錄、明確輸出選項、程序結束碼、最終正規路徑、是否建立檔案與檔案雜湊。

以正規路徑斷言目錄隔離

字串前綴比較並不可靠。將最終目的地與核准根目錄都解析成正規絕對路徑,再驗證目的地確實是根目錄子項。比較邏輯應處理 Windows 磁碟機代號、分隔符正規化與大小寫語意。

以下情況必須失敗:

  • 解析目的地位於核准根目錄之外;
  • 磁碟機或共享位置改變;
  • 意外建立路徑區段;
  • 既有檔案被取代;
  • 出現替代資料流或保留裝置名稱;
  • 無法正規化最終路徑;
  • 包裝器回報成功,卻無法驗證輸出路徑。

目錄隔離斷言不需開啟檔案;路徑中繼資料與雜湊已足夠。

單獨測試真實代理路線

先在受控端點不使用代理執行檔名矩陣,再透過正式環境採用的核准代理模式重複。HTTP 代理、HTTPS CONNECT 與核准區域路線應分別測試。

所有路線的檔案系統結果必須一致。路線證據用於確認閘道與出口策略,但不能代替目的地路徑驗證。

可用代理繞過稽核確認代理失敗不會觸發靜默直接連線,並以代理支援升級資料包在路線行為不同時保存去識別化證據。

稽核包裝器與排程器

很多問題在套件升級後仍存在,因為正式環境呼叫的不是工程師測試的二進位檔。檢查命令別名、PowerShell 函式、包裝腳本、工作排程器路徑與工作目錄、環境路徑順序、檔名設定、服務帳號權限、下載後移動或解壓,以及會改變目錄的重試邏輯。

日誌應記錄最終可執行檔、版本、工作目錄、正規輸出路徑、案例編號與結果。不得記錄代理密碼、Cookie、驗證標頭或敏感來源網址。

驗證下游交接

即使下載檔案被限制在目錄內,下游程序若盲目信任檔名或直接解壓,仍可能產生風險。暫存區應不可執行;依組織政策掃描內容、驗證類型與大小,並在路徑及完整性檢查通過後再移動。

如果匯入監視器會自動處理目錄,應在受控回歸期間暫停,避免無害夾具在蒐集證據前被使用。

部署檢查清單

  • [ ] 所有 Windows wcurl 呼叫與實際可執行路徑已盤點;
  • [ ] 受影響版本已升級至修正版本;
  • [ ] 排程器與長期工作程序已重新啟動;
  • [ ] 暫時緩解已在最終程序邊界驗證;
  • [ ] 輸出目錄專用且權限最小;
  • [ ] 正規路徑會與核准根目錄比較;
  • [ ] 編碼分隔符、衝突與巢狀名稱案例均通過;
  • [ ] 直接與核准代理路線產生相同受控落點;
  • [ ] 代理失敗不會觸發靜默直接下載;
  • [ ] 日誌不含憑證與敏感內容;
  • [ ] 驗證前下游解壓和匯入保持停用。

常見問題

Linux 或 macOS 是否受影響?

官方公告指出問題只存在於 Windows。仍需準確盤點包裝器,才能判定特定主機不受影響。

禁止覆寫能完全緩解嗎?

不能。它保護既有目標不被覆寫,但在權限允許時,仍可能於所選目錄之外建立新檔案。因此仍需升級與驗證隔離。

使用住宅代理會改變風險嗎?

不會。代理負責傳輸回應,wcurl 決定本機檔名。應比較代理與直接路線的包裝器行為,但修正重點仍是 Windows 檔名處理。

應使用真實下載檔案測試嗎?

不應該。只使用無害受控夾具,不要下載可疑內容或為了重現而探測未獲准主機。

來源與合規說明

內部研究依據:curl 專案安全公告「wcurl backslash bypass」,CVE-2026-80256,發布於 2026 年 9 月 2 日;curl 8.22.0 發布資料。外部研究 URL 只保存在內部營運紀錄,本公開文章不包含外部連結。

僅在你擁有或獲准評估的系統、代理帳號、端點與檔案共享上測試。遵守目標條款、供應商限制、隱私要求和組織事件回應流程。不得執行不可信測試檔案,也不得利用檔名測試在第三方系統放置檔案。