Docker Hub 帳號轉組織會把 PAT 悄悄過戶給受害者(CVE-2026-105445)
Docker 官方部落格(Mark Lechner) · 2026-10-12
Docker Hub 把帳號轉成組織時,會把該帳號的個人存取權杖(PAT)改掛到「被指定的組織擁有者」名下,卻不輪替密鑰、也不問對方同意。攻擊者因此能先造出一枚 PAT,轉移之後再用它以受害者身分操作 registry,這個漏洞編號為 CVE-2026-105445。
Docker 在 2026-10-12 發布公告,並於 9 月 30 日當天修補;研究者為 mptrdev.com 的 Peter Molnar 與 Krisztian Hozak,技術細節見其公開頁面。公告稱嚴重度為 critical,但未給 CVSS 分數或向量。
漏洞機制
轉換流程要求填入一個既有的 Docker Hub 帳號作為新組織的擁有者。依公告,自 2024-08-26 起,轉換會做三件事:把 PAT 的擁有者紀錄改成該擁有者、不輪替或撤銷 token 密鑰、也不通知對方。
攻擊鏈很短:
- 攻擊者建立帳號 A,產生具 read/write/delete 範圍的 PAT。
- 把 A 轉成組織,並指定受害者 B 為擁有者。
- PAT 轉到 B 名下,密鑰仍在攻擊者手上,token 持續有效並繼承 B 的權限。
研究者的 PoC 以該 token 執行 docker login 得到「Login Succeeded」,能在受害者命名空間建立並推送 repository,也能推送到受害者所屬組織的 repository,並讀取其私有 repository。
影響邊界
這個 token 只通往 registry 層級:可 pull、push、delete 映像。依公告,它不能登入網頁介面,也不能改密碼、email 或 2FA,所以不是完整的帳號接管。對供應鏈而言,能覆寫受害者名下的映像標籤仍然夠嚴重。
| 項目 | 公告內容 |
|---|---|
| 暴露期間 | 2024-08-26 20:33 UTC 至 2026-09-30 修補(公告中修補時間的 UTC 標示帶有方括號) |
| 已檢視的推送 | 約 304,000 次以轉移 token 完成的推送,皆落在被轉換組織或新擁有者自己的 repository |
| 惡意內容 | 對高風險公開映像做靜態分析,未發現惡意程式、挖礦、C2、竊取憑證、持久化或竄改 |
Docker 也講明一個限制:日誌只能證明 token 被用過,無法證明未被用過。沒被使用的轉移 token 不留痕跡,所以 Docker 把所有經過轉換流程的 PAT 都視為可能受影響。
修補與時間線
研究者於 2026-09-28 首次重現、09-29 完成第二條獨立路徑並送交 Docker。公告時間線(美東時間)顯示 9 月 30 日 11:40 收到通報,約 15:10 部署修補並以 PoC 驗證。
- 9 月 30 日:轉換流程不再轉移 PAT,新擁有者必須自行重建。
- 10 月 2 日:以 email(主旨「Docker Hub Vulnerability Identified & Resolved」)通知受影響使用者。
- 10 月 8 日:停用被轉移的 PAT,擁有者要求保留者除外。
後續承諾包括:被指定為組織擁有者前需取得本人同意並通知、保留 token 擁有權變更的稽核紀錄,以及檢視其他會變更憑證擁有權的流程是否有同樣問題。
影響範圍
受影響的是「帳號收到被轉移 PAT」的使用者與其組織擁有者;Docker 已寄信通知,沒收到信代表帳號上沒有被轉移的 PAT。若你的 CI 用個人 PAT 登入 Docker Hub,或你的帳號曾被指定為某組織擁有者,應該檢查下列項目:
- 到 Account settings → Personal access tokens,撤銷任何不認得或不再使用的 token。
- 檢查近期 registry 推送紀錄與 tag 的 digest,有無無法對應到自己 CI 的變更。
- 組織自動化改用 organization access tokens,不要綁在個人 PAT 上。
研究者另提到 library/ 官方映像「可能」經同一路徑觸及,但頁面標示為未確認;Docker 公告未提及此點。