GitHub Repo
Hermes Agentコミュニティ、承認ショートカットの権限チェック漏れを報告—グループの一般ユーザーが実行待ちコマンドを承認できる可能性
10月30日のHermes Agentコミュニティ報告によると、テキストや絵文字による承認ショートカットが管理者向けコマンド制限を回避する可能性がある。公開コードでは、この経路が承認ハンドラーを直接呼び出すことを確認できるが、実際の影響は独立した再現とメンテナーの確認を待っている。

Hermes Agentでは10月30日、承認権限の不整合に関するコミュニティ報告が寄せられた。管理者リストを設定すると、一般ユーザーは/approveを実行できない一方、テキストで返信すれば同じ実行待ちコマンドを承認できる可能性があるという。報告者によると、v0.22.5と調査対象のmainブランチのコミットの両方でこの挙動が確認された。調査時点でIssueはオープンのままで、関連する修正は記載されていない。コミュニティ報告
公式ドキュメントでは、メッセージングプラットフォームのユーザーを2つの層に分けている。allow_admin_fromに含まれる管理者は登録済みのすべてのコマンドを実行でき、それ以外の許可ユーザーはuser_allowed_commandsで指定されたコマンドのみを使用できる。グループにも対応する設定がある。管理者リストを設定していないスコープでは互換モードが維持され、許可されたユーザーは全コマンドを実行できる。したがって、今回の報告が問題としているのは、権限の階層化を有効にした場合の承認処理の一貫性だ。公式コマンドドキュメント
問題があるとされるのは、エージェントの処理中に行われるテキスト承認の振り分け経路だ。公開されているgateway/run_busy.pyを見ると、_route_plaintext_approval_while_busyはgateway制御が許可され、保留中の承認がある場合に短い返信を検出し、そのメッセージを承認コマンドとして扱い直したうえで、承認または拒否のハンドラーを直接呼び出す。この関数自体は_check_slash_accessを呼び出していない。コードのコメントによると、このショートカットは返信ですぐに待機状態を解除し、キューに入れることでデッドロックが発生するのを防ぐために設けられている。公開コード
技術的には、入力ショートカットがアクションハンドラーを共有していても、認可チェックを共有していなければ、入口によって権限の扱いが異なる結果を招く可能性がある。報告内容に基づくと、リスクが生じるには、アクセスを許可された非管理者と承認待ちのコマンドが同時に存在する必要がある。未許可の外部ユーザーもシステムにアクセスできると推論できるだけの証拠は、現時点ではない。
プロジェクトのセキュリティポリシーでは、許可リストに含まれる呼び出し元は同等に信頼できるものとして扱われるとしている。権限を分離する必要があるデプロイでは、別々のインスタンスと許可リストを使うよう求めている。今後は、この信頼モデルとコマンド権限の階層化を定めたドキュメントについて、メンテナーがどう整合を取るか、また一般ユーザー、グループスコープ、テキストショートカットを対象とする回帰テストを追加するかが注目される。現段階では、これは確認待ちの機能権限に関する報告であり、公開済みのセキュリティアドバイザリーとみなすべきではない。セキュリティポリシー