何が起きたか
マージされたプルリクエストで検証済み(取得済み):`toolsets_for_source`は`chat_id`を`:`で分割してルートごとのツールセット付与を復元しており、`build:external`という名前のルートが`build`ツールセットを継承できる。署名付きリクエストで実際のaiohttpハンドラーを通じてmainブランチで再現。GHSA-2fmg-cjqm-hhrjで報告済み。
なぜ重要か
Webhook駆動のエージェント呼び出しは、エージェントゲートウェイの標準的な統合パターンである。この解析の不整合により、1つの弱いwebhook認証情報を保持する攻撃者が別のルートのターミナル/ファイルツールに到達でき、エージェントホスト上で任意のコマンド/ファイルアクセスが可能になる。
攻撃経路
Webhookゲートウェイはセッション`chat_id`を`webhook:{route_name}:{delivery_id}`として構築し、`:`で分割して認可ルートを再導出するが、認証は正確なURLセグメントを使用する。`delivery_id`は呼び出し元が指定可能(X-GitHub-Delivery、svix-id、X-Request-ID)であるため、`build:external`のような細工されたルート名はルート`build`として解決され、その特権ツールセットを継承する。
影響を受けるシステム
Nous Research Hermes Agent — webhookプラットフォームゲートウェイ(PR #115285で修正、GHSA-2fmg-cjqm-hhrj)
緩和策
PR #115285でマージされた修正を適用すること(認証済みURLセグメントからスタンプされた`source.user_id`に`toolsets_for_source`のキーを`chat_id`の分割ではなく変更)。Hermes Agentを更新すること。