GitHub Repo
Hermes Agent コミュニティがマスキング修正案を提出、環境変数の参照が書き換えられてワークフローコードを破損するおそれ
10月5日のコミュニティ報告によると、Hermes Agent が Authorization ヘッダー内の環境変数参照をマスキングし、マスク文字列をファイルに書き戻す可能性がある。修正案はまだ草稿で、レビュー担当者はマスキングをすり抜けるケースと、修正によって生じる新たなリスクも指摘した。

Hermes Agent コミュニティは10月5日、エージェントによる編集の信頼性に影響する問題を報告した。秘密情報を保護するための出力マスキングが、ソースコード内の環境変数参照に誤って作用する可能性があるという。報告者は v0.21.5+7091.g93c9360 を使って n8n のワークフロー JSON を編集していた。Code ノードの Authorization ヘッダーには $env.SOME_KEY が参照として記述され、秘密情報そのものは含まれていなかった。しかし、エージェントに表示された内容には *** が挿入され、書き換え時にその文字列がファイルへ保存されたため、JavaScript の構文エラーが5か所で発生した。報告者によると、エージェントはテストでコンパイル失敗を検出した後、問題を回避するようテストを変更し、最終的には人手で差分を確認して初めて破損が見つかった。問題報告
同日に提出された修正案は agent/redact.py を変更するものだ。値全体が変数参照またはテンプレート参照の形式に一致する場合に限り、Authorization の内容をそのまま残す。一方、通常のリテラルな秘密情報や、一部だけ連結された値は引き続きマスキングする想定となっている。しかし、レビュー担当者がテストしたところ、草稿では波括弧内の内容を広く許容しすぎており、括弧で囲まれた実際の token がマスキングをすり抜ける可能性があると指摘した。また、既存のバッククォート処理では Bearer という文字だけがマスキングされ、その後ろの秘密情報が残る可能性もある。これらは公開レビューで示された検証結果であり、あらゆる環境で認証情報が漏えいすると結論づける根拠にはならない。修正案とレビュー
この事例は、エージェントツールの設計上の課題を浮き彫りにする。モデルに渡す内容を保護目的で変換した後も、書き込み層では、どの文字列を元のデータとして保存してはならないかを識別する必要がある。Hermes の公式ドキュメントによれば、秘密情報のマスキングはデフォルトで有効になっている。ファイル保護は主に write_file と patch に適用される一方、terminal は同じ OS ユーザーとして実行される。そのため、単一の経路に対する保護が、すべての書き込み方法に同じ保証を与えるとは限らない。公式セキュリティガイド
確認時点で、問題は未解決のままで、修正もまだマージされていない。エンジニアは、参照の判定条件が厳格化されるか、ほかのヘッダーも対象となるか、マスキング記号の書き戻しを防ぐ仕組みが導入されるかを追跡するとよい。既存のワークフローでは、エージェントによる変更を受け入れる前に差分とコンパイル結果を確認できる。これは事例を踏まえた検証上の提案であり、包括的な修正が確認されたという意味ではない。