何が起きたか
Google OSS Agent Mesh (SAM) 0.1.0-alpha.1から0.1.0-alpha.8のコントロールプレーン登録ステータスハンドラー(internal/controlplane/server.goのGET /enroll/statusにおけるHandleEnrollStatus)は認証が欠如しており(CWE-306)、認証情報を十分に保護していない(CWE-522)。認証されていないリモート攻撃者は、認証されていないGET /infoエンドポイントから取得したpeer_idを提供して、承認済みのブートストラップ登録ピアの署名付きBiscuitアイデンティティトークンを取得できる;POST /enrollの関連する欠陥により、任意のブートストラップトークン保持者が別のピアの認証情報を再取得できる。開示されたトークンは、/policiesでベアラー認証情報として再利用してメッシュ認証ポリシーを読み取り、/routers/leaseで広告されたルーターのマルチアドレスを上書きできる。
なぜ重要か
SAMはピアツーピアのエージェント通信のためのGoogle OSSエージェントメッシュである;ピアの署名付きアイデンティティトークンが漏えいすると、外部者がメッシュ内でそのピアのアイデンティティを偽装し、認証ポリシーを読み取り、ルーティングを乗っ取る(ルーターのマルチアドレス上書き)ことができる — メッシュ展開でエージェントを妨害または偽装する認証されていない経路である。
攻撃経路
認証されていないGET /enroll/status(およびPOST /enroll)を使用してピアの署名付きBiscuitアイデンティティトークンを収集し、それを/policiesと/routers/leaseでベアラー認証情報として再利用する。
影響を受けるシステム
Google OSS Agent Mesh (SAM) 0.1.0-alpha.1から0.1.0-alpha.8
緩和策
SAM 0.1.0-alpha.9以降にアップグレードする。これにより、認証情報を提供するエンドポイントで登録秘密鍵の暗号学的所有証明が必須となり、レート制限が適用され、ルーターリースアドレスが検証される。