10月2日、Sysdigが「AI agent exploits Zammad zero-days in DIVD breach: What we know and how to detect it」と題した記事を公開した。AIエージェントが2つのゼロデイ脆弱性を連鎖させてオランダの脆弱性開示機関DIVDに侵入し、データを窃取した実際のインシデントの詳細と、その検出・対応方法を解説している。
盗まれた認証情報はゼロ。必要だったのはゼロデイ2本とAIエージェントだけだった
2026年9月21日、AIによる自律型脅威アクター(Agentic Threat Actor、以下ATA)が、DIVD(オランダ脆弱性開示機関)に侵入した。DIVDはインターネット上の脆弱なシステムを発見して所有者に警告するボランティア組織であり、CSIRTコミュニティにおける著名な非営利の脆弱性調整機関として知られる。その性質上、内部には多数の未公開脆弱性情報や脆弱システムのリストが蓄積されており、攻撃者にとって価値の高いターゲットだ。皮肉にも、脆弱性を探す側が未知の脆弱性を突かれた形となる。
ATAが悪用したのは、オープンソースのヘルプデスクソフトウェアZammadに存在した2つのゼロデイ脆弱性、CVE-2026-102489(RCE)とCVE-2026-102490(LPE)だ。なお、ZammadはRuby on Railsで構築されたオープンソースのヘルプデスク・チケッティングシステムであり、2,000社以上の組織が導入している。この2つを連鎖させることで、セッションハイジャックからroot取得まで数秒で完了した。
DIVDはこのATAを「騒々しく、非常に散らかったやり方」と表現している。AIエージェントは非決定論的に、マシンスピードで次の行動を選択し続けるため、痕跡が多く残った。その"騒がしさ"のおかげでDIVDは1日以内に侵入を検知できたが、攻撃の速度を考えると、それでも手遅れだった。
2つのゼロデイの中身
CVE-2026-102489はZammadバージョン6.3.0〜6.5.4に影響するリモートコード実行(RCE)の欠陥で、CVSSスコアは8.7(High)だ。低複雑性、権限不要、インターネット公開面から直接到達可能という条件が揃っており、初期侵入の足がかりとして機能する。
CVE-2026-102490はローカル特権昇格(LPE)の欠陥で、CVSSスコアは8.5(High)だ。元記事の記述によれば、バージョン1.5.0〜7.1.0-alphaという広範な範囲に影響するとされており、ローカルアクセスと最小限の権限のみで悪用可能だ。この2つを組み合わせた場合のCVSSスコアは9.4(Critical)となる。
ATAの攻撃手順:4つのステージ
今回の侵入で注目すべきは、攻撃の技術的な巧みさよりも、AIエージェントが自律的に判断を重ねながら一連の攻撃チェーンを完結させた点だ。以下にその流れを順に追う。
ステージ1:CVE-2026-102489による初期侵入
ATAはセッションハイジャックを通じてZammadサービスユーザーとしてコードを実行した。検出の観点では、ZammadのRailsやPumaプロセスが対話型シェルを生成したり、未知のホストへアウトバウンド接続を開いたりする動きは、通常の動作プロファイルから明らかに逸脱する。新規IPアドレスからのログイン直後のセッション使用も監視対象となる。
ステージ2:CVE-2026-102490による特権昇格(数秒で完了)
セッション乗っ取りからroot取得まで数秒で完了した。サービスアカウントが実効ユーザーIDをrootに変更する操作は、それ自体が高精度な異常シグナルとなる。Sysdigは、オープンソースのランタイムセキュリティエンジンであるFalco向けの以下のルールがこの挙動をカバーすると紹介している(Falcoルール一覧)。
Launch Privileged ContainerNon sudo setuidSet Setuid or Setgid bitChange thread namespacePotential Local Privilege Escalation via Environment Variables Misusesudo potential privilege escalation
ステージ3:パスワードスプレーとMitM攻撃
root取得後、ATAはパスワードスプレーとMitM(中間者)攻撃を実行した。ここで興味深いのが、ATAが自分自身のMitM攻撃をパスワードスプレーで妨害してしまった点だ。訓練不足のエージェントゆえの自己干渉であり、これが「騒々しい」と評された理由の一つでもある。また、コード内のコメントには「no phishing」「no spam」といった記述が残されており、エージェントが自分の行動を説明・記録していた。このようなコード内自己注釈はAIエージェントによる攻撃の特徴として、以前Sysdigが分析したJADEPUFFERでも確認されている。
ステージ4:データアクセスと窃取
ヘルプデスクは認証情報の集積点だ。Zammadはデータベース認証情報、メール・APIトークン、サポートチームが触れるすべてのシステムのAPIキーを保持する。root取得により、それらが一度に露出した。確認済みの流出データはボランティアのDIVDメールアドレスだが、ボランティアの連絡先情報、CSIRTチケッティングシステム内のメール全件(脆弱なシステムのIPアドレス、報告された脆弱性、マスクされたパスワードのクレデンシャルダンプ抽出物を含む可能性)、JiraおよびConfluenceのプロジェクトサポート環境についても流出の可能性がある。Google Workspace、HRシステム、Slack、GitHub/GitLab上のソースコード、保有する脆弱なシステムリストや非武装化PoCといった機微な研究データについては現在調査中だ。
対応策
Zammadのアップグレードまたはオフライン化
バージョン7.0.0以降にアップグレードするか、インスタンスをオフラインにすることが第一の対処となる。7.x系ではRCEは再現不可だが、LPEの修正状況は引き続き確認が必要だ。追加のIoC情報はDIVD-2026-00015で公開されている。
ヘルプデスクのネットワーク分離
ヘルプデスクを専用セグメントに置き、デフォルト拒否のエグレスポリシーを適用することが有効だ。侵害されたヘルプデスクホストが他のサービスに到達できない構成が、今回のDIVDの被害拡大を実際に防いだ。
シグネチャではなく振る舞いで検出する
ゼロデイにはシグネチャが存在しない。「サービスアカウントがシェルを生成する」「rootに昇格する」「未知のホストへ接続する」——これらはCVEが既知か否かに関わらず、人間によるものでもAIによるものでも同じ振る舞いとして現れる。振る舞いベースのランタイム検出が、未知の脅威に対する現実的な防御の軸となる。
マシンスピードに備えた対応計画
root到達まで数秒のエージェントはチケット対応を待たない。高精度アラートに対するプロセス終了・ホスト隔離の自動封じ込めをあらかじめ承認しておくこと、そしてDIVDが実行したデータセンター全体の遮断を事前にリハーサルしておくことが求められる。
まとめ
今回の攻撃で盗まれた認証情報はゼロだった。必要だったのはゼロデイ2本とAIエージェントだけだ。脆弱性を探す側のDIVD自身が被害を受けたという事実は、セキュリティに真剣な組織であっても例外ではないことを示している。今回のATAは「騒がしかった」ために早期発見とネットワーク分離が機能したが、より洗練されたエージェントなら同じことをより静かに実行できる。振る舞いベースのランタイム検出と事前定義された自動対応が、現実的な防御の柱となるというのが、本インシデントの最大の教訓だ。
詳細はAI agent exploits Zammad zero-days in DIVD breach: What we know and how to detect itを参照していただきたい。