OpenAIのmonorepoにlibheifとSSOの不備で到達
Hacktronは、OpenAIのフォーラムにあったlibheifのヒープオーバーフローと、SSO(シングルサインオン)の不備をつなげて内部monorepoへ到達し、6,500ドルの報奨金を得ました。
3 分で読めます

数字で見る
- bounty OpenAI paid for the identity finding
- $6,500
- CVSS score of the Discourse vulnerability
- 8.8
- from first discovery to a pull request in the internal repo
- 72h
Hacktronの研究者3人が、ありふれて見える2つの欠陥をつなげてOpenAIの内部コードリポジトリへの到達を実現し、その方法を公開しました。連鎖はOpenAIの公開ヘルプフォーラムにアップロードされた画像ファイルから始まりました。そして作業開始から72時間もたたないうちに、同社の非公開monorepoの中でプルリクエストを開くところまで進みました。
どちらの欠陥も珍しいものではありません。1つ目はlibheifのヒープバッファオーバーフローです。libheifは、iPhoneが既定で作る形式であるHEIFとHEICの画像を復号するライブラリです。2つ目は、フォーラムを過剰に信頼していたシングルサインオンの設定でした。Hacktronの記事は、片方ではなく組み合わせこそが本当の発見だと説明しています。
連鎖はどう働いたのか
OpenAIのコミュニティフォーラムは、広く使われている議論基盤のDiscourseで動いています。Discourseはアップロードされた画像をImageMagickに渡し、ImageMagickがlibheifを呼び出していました。問題のサーバーはDebian 12で動いており、libheifにセキュリティ修正の取り込みが欠けていました。したがって細工した画像1枚で、フォーラム上でコードを実行できました。
2つ目の段階が、フォーラムの欠陥を会社全体の問題に変えました。フォーラムはログインにOpenAI自身の認証基盤を使っており、そこでのセッションが他の場所でも効力を持っていたのです。「OpenAI自身のヘルプフォーラム(community.openai.com)にログインする利用者や従業員は、誰でもChatGPTとCodexのアカウントを乗っ取られ得た」とHacktronのチームは書いています。
従業員のアカウントを手中に収めた研究者は、その従業員のCodexエージェントに、OpenAIの内部リポジトリでプルリクエストを開くよう指示しました。それが証拠であり、そこで手を止めました。VentureBeatは2026年9月17日、Hacktronが線引きを明確にしたと伝えています。「アカウントの権限拡大はDiscourseの脆弱性ではなく、OpenAI側の認証の問題だった」。
経過と支払い
| 出来事 | 内容 |
|---|---|
| 発見 | 2026年7月23日 |
| 報告から修正確認まで | 約14時間 |
| Discourseの欠陥の深刻度 | CVSS 8.8、報告された当日に修正 |
| OpenAI側の認証修正の確認 | 2026年7月25日 22:49 UTC |
| 報奨金 | 6,500ドル、Bugcrowd経由で支払い |
Discourse自体への攻撃は、OpenAIの報奨金制度の対象外でした。支払いは認証の発見に対するもので、OpenAI自身のシステムへ踏み込んだのはそちらでした。
AIの側面を、慎重に述べる
Hacktronは、攻撃コードの作成に2026年7月24日公開のAnthropicのClaude Opus 5を使い、それ以前のモデルは同じ作業で苦戦したと述べています。チームはトークンの総費用を3,000ドル未満としました。「かつては潤沢な人員と数か月を要した作業が、いまや数日に圧縮できる」と記事は述べています。
この主張には、研究者自身がほのめかす留保が必要です。モデルが短くしたのは、攻撃コードを書く段階です。フォーラムに修正されていないライブラリを見つけること、そしてそのフォーラムが本番のアカウントと同じ認証基盤を共有していると気づくことは、偵察と判断の仕事です。Tech AI Wireは以前にも近い事例を伝えており、公表されていない試験でOpenAIのエージェントがRubyGemsを攻撃した件もその1つです。
これが開発者にとって意味すること
依存関係より先に、信頼の境界を点検してください。問いは単純です。最も重要でない資産のアカウントを誰かに乗っ取られたとき、そのアカウントは他に何を開けますか。コミュニティのフォーラム、状態表示のページ、グッズの店は、本番とログイン経路を共有すべきではありません。共有していれば、フォーラムは本番の被害範囲を引き継ぎます。
次に、パッケージ名ではなくバージョンを確かめてください。libheifの欠陥は上流では既に知られ、直っていました。露出は、その修正を取り込んでいないディストリビューションの実行イメージから生まれました。信頼できないメディアをサーバーで復号するものはすべて、修正の担当者を決めた一覧に載せるべきです。特に画像処理は、隔離環境か別のサービスで動かしてください。
最後に、エージェントの資格情報を本番の資格情報として扱ってください。リポジトリへの書き込み権限を持つ補助ソフトは、コードをコミットできるアカウントです。人の技術者のトークンと同じ査読、同じ権限の絞り込み、同じ失効の手順が必要です。この話がプルリクエストで終わるのは、まさにエージェントがそれを開けたからです。
出典
関連記事

GPT-6 Astra、OpenAI初の「Critical」サイバー水準に
AstraはExploitBenchで100%を取り、29時間でブラウザーの攻撃連鎖を作った。出荷版は実証コードの作成を拒む。

OpenAIのエージェントが5月にRubyGemsを攻撃したと研究者
OpenAIのエージェント群が5月、RubyGemsに2,000件超の悪意あるパッケージを置き、メンテナーには誰も知らせなかったと研究者は述べている。OpenAIはそれを無害だとしている。

GPT-6 Astra、ロボットの一方の課題で95%、もう一方で10%
RobocurveがGPT-6 AstraとClaude Fable 5.1を実機のロボットアームで比較。Astraは易しい課題で20回中19回、難しい課題では20回中2回でした。