何が起きたか
実行可能なDockerサンドボックスと信頼されたアプリケーションサービス間の不十分な分離により、クロステナントアクセスが可能になります。サンドボックス保持者は他のテナントのサンドボックスを列挙および操作し、未認証のプロビジョナーに到達でき、サンドボックスは共有内部サービスに到達できます。結果として、クロステナントのデータ開示/変更、サンドボックス状態の操作、およびサンドボックス削除によるDoSが発生し、すべてコンテナエスケープやカーネルバグなしで、デフォルトのDB資格情報が変更されておらず、公開されたPostgreSQLロールがスーパーユーザーである場合にはRCEにエスカレートします。
なぜ重要か
これは、テナントが相互に分離されているはずのサンドボックスでコードを実行するAIエージェント開発プラットフォームにおけるマルチテナント分離障害です。低権限アカウントを持つ攻撃者は、他のテナントのエージェント状態、ファイル、および秘密情報にアクセスし、共有データベースサービスにピボットできます。これは、AI/SaaSマルチテナントデプロイメントが依存する正確な分離境界です。
攻撃経路
自身の実行可能なDockerサンドボックスでコマンドを実行できる低権限の認証済みユーザーは、他のテナントのサンドボックスAPIに到達し、そのファイルと秘密情報を読み取り、アクティブなサンドボックスでコマンドを実行し、未認証のプロビジョナーを介してサンドボックスを列挙/作成/削除できます。管理者/データベース/MinIOの資格情報を知る必要はありません。サンドボックスは共有内部サービスにも到達でき、出荷時のデフォルトのPostgreSQL/Neo4j/MinIO資格情報が変更されていない場合、攻撃者はそれらを使用でき、PostgreSQLアカウントがスーパーユーザーである場合には、PostgreSQLコンテナ内でコマンド実行を得ることができます。
影響を受けるシステム
Yuxi >= 0.6.0.beta1、< 0.7.1
緩和策
Yuxi 0.7.1にアップグレードしてください。Composeファイルをアップグレードしても自動的にローテーションされないため、以前に文書化/出荷時のデフォルトに設定された永続化されたPostgreSQL、Neo4j、およびMinIOの資格情報を別途ローテーションしてください。