Apache Software FoundationのPolarisにおける複数の脆弱性
タイトル Apache Software FoundationのPolarisにおける複数の脆弱性
概要

Apache Polarisは名前空間およびテーブル名にリテラルの`*`文字を受け入れます。後で、委任テーブルアクセス用の一時的なS3アクセスポリシーを構築する際に、これらの文字がS3 IAMリソースパターンや`s3:prefix`条件でエスケープされずに再利用されているように見えます。S3 IAMポリシーマッチングでは、`*`は通常のテキストとしてではなくワイルドカードとして扱われます。つまり、作成されたあるテーブルに対して発行された一時的な資格情報が異なるテーブルのストレージパスと一致する可能性があります。Polaris 1.4.0を対象としたプライベートテストにおいて、MinIOおよび実際のAWS S3上でPolarisのAWS S3一時資格情報パスを使用し、`f*.t1`、`f*.*`、`*.*`、および`foo.*`のような作成されたテーブルに対する資格情報は他のテーブルのS3ロケーションにアクセスできました。確認された挙動には以下が含まれます:- 他のテーブルのメタデータ制御ファイル([IcebergメタデータJSON])を読み取ること;- 他のテーブルの正確なS3テーブルプレフィックスを一覧表示すること([テーブルプレフィックス]);- および、作成されたテーブルに対して書き込みが委任された場合、他のテーブルの正確なS3テーブルプレフィックス下にオブジェクトを作成および削除できること。通常の異なる名前を使用したコントロールケースでは、同様のクロステーブルアクセスは許可されませんでした。最小特権のAWS S3バリアントも確認されており、攻撃者プリンシパルは被害テーブルに対するPolaris権限を持たず、ワイルドカードテーブルの作成と使用に最低限必要な権限(名前空間スコープの`TABLE_CREATE`および`TABLE_WRITE_DATA`を`*`に対して)だけを持っていました。そのセットアップでは、`foo.t1`への直接的なPolarisアクセスは依然として禁止されていましたが、攻撃者は`*.*`を作成しロードして委任されたS3資格情報を受け取り、その資格情報を使って`foo.t1`下のオブジェクトを一覧表示、読み取り、作成、削除できました。IcebergではメタデータJSONファイルは制御ファイルであり、どのデータファイルがテーブルに属するか、どのスナップショットが存在するか、どのテーブルバージョンを読むかを示します。したがって、不正アクセスは重大な機密性の問題を引き起こします。書き込み可能なバリアントが確認されたことで、この問題は情報漏洩に限らず、より深刻な問題であることが示されています。

想定される影響 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃により、他のソフトウェアにも影響が及ぶ可能性があります。 
対策

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。

公表日 2026年5月4日0:00
登録日 2026年5月14日10:12
最終更新日 2026年5月14日10:12
CVSS3.0 : 緊急
スコア 9.9
ベクター CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
影響を受けるシステム
Apache Software Foundation
Polaris 1.4.1 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
変更履歴
No 変更内容 変更日
1 [2026年05月14日]
  掲載
2026年5月14日10:12

NVD脆弱性情報
CVE-2026-42810
概要

Apache Polaris accepts literal `*` characters in namespace and table names. When it
later builds temporary S3 access policies for delegated table access, those
same characters appear to be reused unescaped in S3 IAM resource patterns
and
`s3:prefix` conditions.

In S3 IAM policy matching, `*` is treated as a wildcard rather than as
ordinary text. That means temporary credentials issued for one crafted table
can match the storage path of a different table.

In private testing against Polaris 1.4.0 using Polaris' AWS S3 temporary-
credential path on both MinIO and real AWS S3, credentials returned for
crafted tables such as `f*.t1`, `f*.*`, `*.*`, and `foo.*` could reach other
tables' S3 locations.

The confirmed behavior includes:

- reading another table's metadata control file ([Iceberg metadata JSON]);

- listing another table's exact S3 table prefix ([table prefix]);

- and, when write delegation was returned for the crafted table, creating
and
deleting an object under another table's exact S3 table prefix.

A control case using ordinary different names did not allow the same
cross-table access.

A least-privilege AWS S3 variant was also confirmed in which the attacker
principal had no Polaris permissions on the victim table and only the
minimal permissions required to create and use a crafted wildcard table
(namespace-scoped `TABLE_CREATE` and `TABLE_WRITE_DATA` on `*`). In that
setup, direct Polaris access to `foo.t1` remained forbidden, but the
attacker
could still create and load `*.*`, receive delegated S3 credentials, and use
those credentials to list, read, create, and delete objects under `foo.t1`.

In Iceberg, the metadata JSON file is a control file: it tells readers which
data files belong to the table, which snapshots exist, and which table
version
to read. So unauthorized access to it is already a meaningful
confidentiality
problem. The confirmed write-capable variant means the issue is not limited
to
disclosure.

公表日 2026年5月5日2:16
登録日 2026年5月5日4:07
最終更新日 2026年5月6日4:32
関連情報、対策とツール
共通脆弱性一覧