ホームへ戻る

AI 代理安全與執行環境

Hermes Agent 0.21.2、プロファイル間のデータ漏洩と SQLite WAL の競合を修正

Nous Research の修正版は、共有状態とユーザーデータベースを再び分離し、セッション、MCP 認証情報、添付ファイルがプロファイル間で流出する経路を塞いだ。Docker イメージは公開済みだが、修正範囲が広く、独立したセキュリティ勧告もないため、導入者は事前にバックアップと検証を行うべきだ。

Digital Bodleian This file comes from the Bodleian Libraries, a group of research libraries in Oxford University.This tag does not indicate the copyright status of the attached work. A normal copyright tag is still required. See Commons:Li… · CC BY 4.0 · Image source
zh-Hant

Nous Research は9月11日、Hermes Agent v0.21.2をリリースした。v0.21.0でセッション接続を書き換えた後に発生した `state.db` の破損、ロック、分離の問題への対処が中心となっている。従来は profile gateway、デスクトップダッシュボード、cron が書き込み可能な SQLite 接続を同時に取得することがあり、既存の POSIX lock が生の `open()` によって妨げられる場合さえあった。新版では hosted-room の状態を `shared-state.db` に移し、ダッシュボードが読み取り専用で開くことを優先するようにした。さらに、すべての接続を追跡用レジストリ経由にし、`doctor --fix` は checkpoint の安全性を確認できない場合、実行を拒否する。

WAL の処理経路にも、よりきめ細かな障害処理が追加された。OpenZFS における削除済み dentry、接続の終了と新規メッセージ追加の競合、WSL2 の一時的な I/O エラーが発生しても、正常なデータベースを直ちに恒久的な破損状態として扱わなくなった。FTS5 インデックスの障害時には、会話データベース全体をブロックする代わりに検索機能のみを利用不能へ降格し、再構築を予定する。異常なタイムスタンプ、不正な JSON、SQLite のパラメーター上限を超えるバッチ操作についても、行ごとの警告または分割実行で処理するよう変更された。

さらに重要なのが、複数プロファイル間の分離に関する修正だ。旧版では `HERMES_HOME` の競合により別の profile のデータベースへ接続する可能性があり、生の session ID で検索すると他ユーザーのトランスクリプトを読み取れる場合もあった。セカンダリ profile の stdio MCP server にデフォルト profile の vault secrets が渡る可能性もあり、メディア添付ファイルを通じて兄弟 profile の `.env`、`auth.json`、`state.db` が持ち出される恐れもあった。0.21.2では、データベース、allowlist、ホスト認証情報、webhook、bearer token を、実際にルーティングされた profile に結び付けたとしている。

これは信頼性と機密性の両方に影響するアップデートであり、単なる通常の修正として扱うべきではない。公式 Docker Hub では、x86-64およびArm64向けのバージョン固定イメージが公開されている。ただし、修正内容の全体像は主にプロジェクト自身の release notes に基づいており、対応する CVE、第三者監査、定量化された回帰テスト結果は確認されていない。アップグレード前には各 profile のデータベースをバックアップし、旧 gateway writer を停止したうえで、バージョン固定されたイメージ digest を使用し、検索、復旧、MCP の起動、profile 間の添付ファイル処理をテストすべきだ。すでに破損しているデータベースについては、まず `hermes doctor` と読み取り専用の検査モードを使い、構造的な損傷かインデックスの損傷かを判定する必要がある。

出典

  1. Hermes Agent v0.21.2 — The state.db Patch Release
  2. nousresearch/hermes-agent Docker tags