セッションハイジャックとリモートコード実行を可能にするZammadの脆弱性、PoCエクスプロイトが公開

Zammadに存在する重大な脆弱性「CVE-2026-102489」の概念実証(PoC)エクスプロイトが公開されました。この脆弱性を悪用すると、アクティブなユーザーのセッションCookieが漏えいし、Zammadを実行しているOSユーザーの権限でリモートコード実行(RCE)が可能になります。

この脆弱性は、オランダの脆弱性開示機関DIVD(Dutch Institute for Vulnerability Disclosure)が9月に受けた侵害で、ローカル権限昇格の脆弱性「CVE-2026-102490」とともに悪用されたと報じられています。

Zammadの脆弱性

Horizon3.aiの攻撃チームは10月7日、技術的な詳細とエクスプロイトコードを公開しました。それによると、認証されていない攻撃者がZammadのWebSocketエンドポイント(/ws)に細工したメッセージを送信できます。

この不正な形式のイベントによってアプリケーションエラーが発生します。すると、レスポンスに接続中クライアントの内部状態が含まれてしまい、HTTPのCookieヘッダーや有効な_zammad_session値が漏えいします。

原因は、ZammadがRubyのWebSocketイベントを処理する方法にあります。アプリケーションは、接続中のクライアントのデータをグローバルな@clientsオブジェクトに保持しており、ここにはリクエストヘッダーも含まれています。

指定されたイベント名が`Sessions::Event::Base`に解決される場合、Zammadはクライアントレジストリを使ってこのクラスのインスタンス化を試みます。ところが、このベースハンドラーには想定される`run()`メソッドが実装されておらず、RubyのNoMethodErrorが発生します。

脆弱なコードは、無害化した失敗レスポンスを返すのではなく、オブジェクトの表現を含むエラー文字列を返します。その結果、インスタンス変数と@clientsレジストリが露出します。攻撃者は、接続中のアクティブなユーザーのセッションデータを入手できます。

公開されたPoCが機能するには、悪用の間に少なくとも1人の認証済みユーザーがWebSocketサービスに接続している必要があります。攻撃者はその後、使用可能な特権セッションのCookieを特定しなければなりません。理想的には管理者アカウントのものです。これをもとに攻撃をさらに進めます。

Horizon3.aiによると、攻撃者が管理者セッションを乗っ取った場合、Zammadのパッケージインストール機能を悪用して、攻撃者が制御するファイルをアプリケーションディレクトリに書き込めます。PoCは、組み込みのパスワードリセットメールのビューを置き換える悪意あるERBテンプレートをインストールするとされています。

攻撃者がパスワードリセットを開始すると、Zammadのメーラーコンポーネントが改ざんされたテンプレートをレンダリングします。ERBテンプレートはサーバーサイドのレンダリング時にRubyコードを実行できます。このため、セッションの乗っ取りが、ZammadのOSアカウント権限での任意のコマンド実行へとエスカレートします。このエクスプロイトは、実行後にインストールしたパッケージも削除するため、目立つ痕跡を最小限に抑えられる可能性があります。

DIVDによると、攻撃者が最初にシステムへアクセスしたのは9月21日で、翌日に不審な活動を検知しました。DIVDは初期アクセスの原因を、これまで知られていなかった2件のZammadの脆弱性と結論づけました。1件はセッションハイジャックとRCEを可能にするCVE-2026-102489、もう1件はZammadユーザーからrootへ権限を昇格させるCVE-2026-102490です。

DIVDは、フォレンジックの痕跡や攻撃者のスクリプトを根拠に、この侵入を「エージェント型AIを利用した攻撃」の疑いがあるものと位置づけています。ただし調査は継続中で、既知の公開された脅威アクターとの関連はまだ確認されていません。

ネットワークセグメンテーションとインシデント対応により、被害のさらなる拡大は抑えられました。一方でDIVDは、ボランティア関連のデータが流出した可能性があると確認しています。対象にはメールアドレスのほか、連絡先情報も含まれる可能性があります。

DIVDは、セッションハイジャックからRCEに至る攻撃チェーンの影響を受けるバージョンとして、Zammad 6.3.0から6.5.4までを挙げています。7.0.0から7.1.3までのバージョンにも脆弱性は存在するとされますが、DIVDが確認した環境条件では悪用できません。CVE-2026-102490は、Zammad 1.5.0から7.1.0-alphaまでのバージョンに影響し、ローカル権限昇格を可能にします。

実際に動作するエクスプロイトコードが公開されたことで、防御側の対応は急務となっています。認証不要の情報漏えいバグであっても、アクティブな特権セッションが存在すれば、直接RCEにつながる経路に変わり得るためです。

MTTRを21分短縮し、被害が出る前にサイバー脅威を阻止します。ANYRUNのサンドボックスをSOCに統合

翻訳元: https://gbhackers.com/poc-exploit-released-for-zammad-vulnerability/

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