CVE-2026-42810Apache Polaris 在处理命名空间和表名时,允许输入字面量通配符 `*`。当系统为委托表访问构建临时 S3 访问策略时,未对这些特殊字符进行转义,导致它们在 S3 IAM 策略中被解释为通配符。这使得攻击者可以创建包含通配符的恶意表(如 `*.*`),利用返回的 S3 临时凭证绕过 Polaris 的权限检查,非法访问、读取甚至篡改其他表的 S3 存储数据,造成严重的数据泄露风险。
该漏洞源于 Apache Polaris 在生成 S3 委托凭证时的输入验证缺失。Polaris 允许在表名中使用 `*`,并在构建 S3 IAM 资源模式(如 `s3:prefix`)时直接复用这些名称。由于 S3 IAM 策略将 `*` 视为匹配任意字符的通配符,攻击者只需具备创建表的权限,即可构造如 `f*.t1` 的表名。系统颁发的凭证将包含类似 `arn:aws:s3:::bucket/f*.t1/*` 的策略,实际上允许攻击者通过 S3 API 直接访问 `foo.t1` 或 `food.t1` 等目标表的数据。测试表明,即使攻击者对目标表没有 Polaris 权限,也能利用此漏洞读取元数据、列出文件前缀,甚至在拥有写权限时创建或删除对象。这种攻击完全绕过了 Polaris 应用层的 ACL 限制,导致跨表的数据泄露、元数据篡改及数据删除,严重危害数据的机密性、完整性和可用性。