Hacktron 入侵 OpenAI:堆疊溢位與 SSO 設定錯誤導致內部儲存庫遭入侵
重點摘要
Hacktron 結合了 libheif 中的堆疊緩衝區溢位(透過 Discourse 的圖片上傳管道進行攻擊)與 OpenAI 的 SSO 設定錯誤,成功劫持了員工的 ChatGPT/Codex 帳號,獲得了內部 GitHub 儲存庫的存取權,並在 OpenAI 的私有 monorepo 中開啟了一個 pull request——整個過程僅耗時 72 小時。
攻擊鏈概述
此次攻擊利用了九個環環相扣的組件:
- libheif 圖片解碼器 – 存在易受攻擊的堆疊溢位。
- Debian – 修復程式未及時回溯 (backport)。
- ImageMagick – 呼叫 libheif 進行 HEIC/HEIF 轉換。
- Discourse – OpenAI 的社群論壇使用 ImageMagick 處理上傳。
- OpenAI 論壇 (community.openai.com) – 使用者控制圖片的進入點。
- OpenAI SSO – 允許權杖 (token) 接管的身分驗證漏洞。
- ChatGPT / Codex – 與內部服務連結的受駭帳號。
- GitHub – 與 Codex 的整合提供了儲存庫存取權。
- 內部儲存庫 – OpenAI 的私有 monorepo 遭到存取。
此攻擊鏈展示了當 SSO 信任機制設定不當時,單一函式庫漏洞如何透過第三方服務擴散至高價值目標。
漏洞詳情
libheif 堆疊緩衝區溢位
- 根本原因 – libheif 覆蓋 (overlay) 處理程式碼中的邊界檢查錯誤(上游於一年前提交,未標記為安全性修復,無 CVE)。
- 受影響版本 – Debian 12 搭載 libheif 1.19.7;Debian 13 搭載 1.19.8。在 2026 年 8 月 8 日 Debian 發布安全性更新前,兩者皆缺乏回溯修復。
- 攻擊向量 – Discourse 將 HEIC/HEIF 檔案轉發給 ImageMagick 的
magick指令,使 libheif 直接暴露於攻擊者控制的負載下。 - 攻擊手法 – 製作特殊的 HEIC 圖片觸發越界讀寫,從而在主機上執行任意程式碼。
OpenAI SSO 設定錯誤
- OpenAI 社群論壇上的「使用 OpenAI 登入」流程在未經充分驗證的情況下信任了論壇的驗證權杖。
- 一旦攻擊者取得有效的 ChatGPT/Codex 工作階段權杖,SSO 機制允許該權杖被用於任何連結的服務,包括內部的 GitHub 組織。
攻擊執行時間軸
| 時間 (UTC) | 動作 |
|---|---|
| 7 月 23 日 | 在審核 Discourse 圖片管道時發現 libheif 問題。 |
| 7 月 24 日 | 使用 Claude Opus 4.8 開發本地 RCE 攻擊程式;在處理 ASLR 時遇到困難。 |
| 7 月 25 日 06:00 | Claude Opus 5 生成了可靠的 x86-64 攻擊程式;透過圖片上傳確認本地 RCE。 |
| 7 月 25 日 10:00 | 自主 Claude 迴圈在 Discourse Cloud 上實現 RCE,讀取 /etc/hosts。 |
| 7 月 25 日 ~12:00 | 使用相同的攻擊程式在 OpenAI 的 Discourse 實例上獲得 RCE,隨後劫持了一名員工的 ChatGPT/Codex 工作階段。 |
| 7 月 25 日 ~14:00 | 指示被劫持的 Codex 在 OpenAI 的內部 monorepo 中開啟 PR #1186742 作為存取證明。 |
| 7 月 26 日 | 向 Discourse 回報 libheif 漏洞,並向 OpenAI 回報 SSO 問題;獲得 6,500 美元獎金。 |
從發現到存取儲存庫的整個過程耗時 不到 72 小時。
大型語言模型的角色
- Claude Opus 4.8 需要多次對話與手動調整才能繞過 ASLR。
- Claude Opus 5 在數小時內產出了可用的攻擊程式,並自動從 ARM64 移植到 x86-64 的 Discourse 環境。
- 研究人員估計,AI 輔助將原本需要數週的手動開發工作縮短至 數小時的模型運算時間 與少許的人工監督。
- 整個 HEIF-Heist 行動(涵蓋 Slack、Meta、GitHub Enterprise 等)的權杖成本 不到 3,000 美元,顯示了複雜攻擊的經濟門檻極低。
影響評估
- 範圍 – 任何透過社群論壇驗證的 OpenAI 員工或外部使用者,其 ChatGPT/Codex 帳號皆可能被接管,進而暴露 GitHub、Slack 與電子郵件等連結服務。
- 潛在損害 – 存取私有 monorepo 可能洩露未發布的模型程式碼、訓練管道或內部工具。6,500 美元的獎金與這些資產的潛在市場價值(估計達數百萬美元)相比微不足道。
- 現實意義 – 證明了 AI 增強的攻擊開發 可以將數月的工作壓縮至數天,降低了進階攻擊的傳統「技術門檻」。
社群與廠商回應
- OpenAI – 確認報告、支付獎金並協調修復 SSO 流程。
- Discourse – 發布安全性公告 (GHSA-vhm9-85gw-x335),將 ImageMagick 沙盒化,並在 48 小時內發布修補後的 Docker 映像檔。
- Debian – 於 2026 年 8 月 8 日發布 libheif 的安全性更新(影響 Debian 12 與 13)。
防禦建議
即時緩解措施
- 重建 Discourse 安裝 – 拉取最新的 Docker 映像檔並執行
./launcher rebuild app以確保使用修補後的 libheif。 - 沙盒化 ImageMagick – 使用 Landlock、AppArmor 或類似機制;Discourse 現已在 Landlock 沙盒下執行
magick。 - 停用 HEIF/AVIF – 若非必要,請設定 ImageMagick 的原則以拒絕這些格式。
長期強化
- 修補 libheif – 升級至最新的上游版本(截至 2026 年 9 月 14 日為 v1.23.4)或套用發行版的安全性修補程式。
- 隔離圖片處理 – 在權限最小化的短暫容器或虛擬機中執行解碼器。
- 審查 SSO 權杖處理 – 確保第三方服務在未經額外驗證的情況下無法重複使用驗證權杖。
- 供應鏈監控 – 追蹤上游提交中未標記的安全性修復;考慮為安全性相關變更採用自動化的 CVE 標記。
社群見解 (Hacker News 評論)
btown: 自主 Claude 迴圈展示了目標導向的 AI 如何在確信合理的情況下「玩遊戲」並突破防護措施。(link)
nikcub: libheif 功能豐富的格式(覆蓋、旋轉、縮圖)相較於 JPEG 大幅擴展了攻擊面;建議將上傳限制為簡單格式,並在客戶端處理轉換(例如 WebAssembly)。
oefrha: 未沙盒化的 ImageMagick 長期以來一直是安全性夢魘;或許有必要將其替換為更安全的解析器,如 Google Wuffs。
sams99: Discourse 現已在 Landlock 沙盒下執行外部二進位檔,並正從 ImageMagick 遷移至 libvips;強調鑑於 CVE 激增,定期更新的重要性。
usernomdeguerre: 質疑快速生成攻擊程式是否歸因於駭客攻擊的可機器驗證特性,從而實現更快的模型訓練。
giza182: 指出 Claude 協助製作攻擊程式,引發了關於模型對非法請求拒絕政策的質疑。
6thbit: 強調未標記的安全性修復可能導致下游發行版面臨數月的漏洞風險。
經濟視角
- 研究成本 – 為期兩個月的 HEIF-Heist 調查中,權杖使用量約為 3,000 美元。
- 獎金 – OpenAI 支付了 6,500 美元,許多評論者認為此金額遠低於所揭露存取權的市場價值。
- 威脅模型轉變 – 攻擊複雜記憶體損毀漏洞的門檻正從「專家團隊、數月時間」降至「小型團隊、數天時間、廉價 AI 算力」。
結論
Hacktron 的報告證明了 AI 輔助的攻擊開發可以迅速將低嚴重性的函式庫漏洞轉變為對前沿 AI 公司的全面入侵。組織必須將開源依賴項(特別是圖片解碼器)視為高風險組件,強制執行嚴格的 SSO 權杖隔離,並採用沙盒化與供應鏈監控,以領先日益強大的自動化攻擊者。
Sources
相關
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch