Zammadの重大な脆弱性、PoCエクスプロイトが公開 セッション乗っ取りとリモートコード実行が可能に

認証不要でセッション情報が漏えいし、セッション乗っ取りからリモートコード実行(RCE)へと連鎖するZammadの脆弱性「CVE-2026-102489」について、概念実証(PoC)エクスプロイトが公開されました。

今回の公開は、オランダの脆弱性開示機関DIVD(Dutch Institute for Vulnerability Disclosure)で発生した侵害を受けたものです。DIVDは9月24日にこのインシデントを公表しました。

調査の結果、悪用された2件のゼロデイ脆弱性が特定されました。1件目は、セッション乗っ取りとコード実行を可能にするCVE-2026-102489です。2件目は、root権限への権限昇格を可能にするCVE-2026-102490です。

DIVDは、攻撃者のスクリプト内に説明的なコメントが残されていたことなどのフォレンジック上の痕跡から、この攻撃をエージェント型AIによるものと判断しました。

このレジストリは、イベントの種類やリクエスト元のクライアントによる絞り込みを受けないまま、イベントハンドラに渡されます。/wsエンドポイントでベースイベントを指定するリクエストを送ると、ディスパッチャーは接続レジストリを渡してSessions::Event::Baseをインスタンス化します。

ところが、このクラスには想定されるメソッドrun()が実装されていません。その結果、RubyはNoMethodErrorを発生させます。このエラーメッセージには、レシーバーのオブジェクト表現とそのインスタンス変数が含まれています。

なお、実証されたパッケージインストール経由のコード実行には、管理者権限が必要です。

Horizon3.aiは、DIVDの事例資料、侵害指標(IoC)の確認スクリプト、Zammadのソースリポジトリを組み込んだAI支援型の脆弱性調査ハーネスを使い、この問題を明らかにしたと説明しています。

初期の分析では情報漏えいの可能性は特定できたものの、認証不要で発動できるトリガーは見つかりませんでした。その後、WebSocketを標的としたファジングを実施したところ、エラーを引き起こすイベントリクエストが数分で判明しました。

続いてパスワードリセットを開始すると、Zammadのメーラーがそのテンプレートを描画します。ERBはRubyの埋め込みに対応しているため、改ざんされたビューは、Zammadサービスアカウントの権限で攻撃者が用意したコードを実行します。

これでリモートコード実行は成立しますが、それだけではroot権限は得られません。Horizon3.aiは、CVE-2026-102490に該当するとみられる別の権限昇格経路の詳細を公開していません。分析の公表時点で、この問題は未修正のままだったためだと説明しています。

DIVDは、セッション乗っ取りからRCEに至る攻撃チェーンの影響を受けるバージョンとして、Zammad 6.3.0から6.5.4までを挙げています。バージョン7.0.0から7.1.3にも同じ欠陥は存在するものの、それらのバージョンの環境条件では悪用できないと報告しています。

バージョンごとに悪用可否が異なる点は重要です。DIVDのアップグレード指針を、別のroot権限昇格の脆弱性が影響を受けるすべての環境やインストール構成で完全に解消されたという確認と受け取るべきではありません。

1万6,000以上のSOCチームがANY.RUNを導入し、脅威調査を効率化して手作業を削減しています。自社チームでの活用を検討する

翻訳元: https://cyberpress.org/poc-exploit-released-for-critical-zammad-flaw/

本記事は cyberpress.org の記事を翻訳・要約したものです。