Cyber Resilience

CVE-2026-42812

Access Control in Apache Polaris ≤ 1.4.1

Published
04 May 2026
Modified
17 June 2026
Patch / advisory
CVSS Score v4 9.4
Click a component to see what it means
Raw vectorCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.0037 29th percentile
Risk Priority 40 floored blend · peak EPSS

Summary

CVE-2026-42812 is a critical-severity Improper Input Validation (CWE-20) vulnerability in Apache Polaris. Its CVSS base score is 9.4 (Critical).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 29th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to AC-24 (Access Control Decisions) and AC-25 (Reference Monitor) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-42812 is a high-severity vulnerability in Apache Polaris, a catalog managing Apache Iceberg tables, stemming from improper validation of storage locations during metadata operations. Apache Iceberg uses metadata files as control files to specify which data files belong to a table and the correct table version for readers. The `write.metadata.path` table property optionally directs where these metadata files are written. For tables already registered in a Polaris-managed catalog, altering only this property via an ALTER TABLE-style settings change—without row-level INSERT, SELECT, UPDATE, or DELETE operations—bypasses the commit-time branch intended to revalidate storage locations, allowing Polaris to write metadata to an attacker-chosen reachable storage location prematurely.

An authenticated user with low privileges (PR:L) who can modify table settings can exploit this if the catalog is configured with `polaris.config.allow.unstructured.table.location=true` and `allowedLocations` broad enough to encompass the target path. Polaris performs the metadata write to the unchecked location before later concrete-path validation, which may persist the path if accepted. Subsequent table-load and credential APIs can then issue temporary cloud-storage credentials for that location without revalidation, potentially exposing or enabling modification, corruption, or deletion of data and metadata in broader storage scopes, such as shared prefixes, other tables' areas, or even bucket roots depending on configuration and provider behavior. Even without credential vending, the initial unchecked write by Polaris constitutes the core defect, with reduced impact when `allow.unstructured.table.location=false` due to potential later rejection.

Advisories are available on the Apache mailing lists and oss-security, detailing the issue as discussed in CVE-2026-42812 with CVSS score 9.9 (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H) and associated CWEs-20 (Improper Input Validation), CWE-284 (Improper Access Control), CWE-732 (Incorrect Permission Assignment), and CWE-863 (Incorrect Authorization).

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

In Apache Iceberg, the table's metadata files are control files: they tell readers which data files belong to the table and which table version to read. `write.metadata.path` is an optional table property that tells Polaris where to write those metadata…

more

files. For a table already registered in a Polaris-managed catalog, changing only that property through an `ALTER TABLE`-style settings change (not a row-level `INSERT`, `SELECT`, `UPDATE`, or `DELETE`) bypasses the commit-time branch that is supposed to revalidate storage locations. The full persisted / credential-vending variant requires the affected catalog to have `polaris.config.allow.unstructured.table.location=true`, with `allowedLocations` broad enough to include the attacker-chosen target. `allowedLocations` is the admin-configured allowlist of storage paths that the catalog is allowed to use. Public project materials suggest that this flag is a real supported compatibility / layout mode, not just a contrived lab-only prerequisite. In that configuration, a user who can change table settings can cause Apache Polaris itself to write new table metadata to an attacker-chosen reachable storage location before the intended location-validation branch runs. If the later concrete-path validation also accepts that location, Polaris persists the resulting metadata path into stored table state. Later table-load and credential APIs can then return temporary cloud-storage credentials for the same location without revalidating it. In plain terms, Polaris can later hand out temporary storage access for the same attacker-chosen area. That attacker-chosen area does not need to be limited to the poisoned table's own files. If it is a broader storage prefix, another table's prefix, or, depending on configuration or provider behavior, even a bucket/container root, the resulting disclosure or corruption scope can extend to any data and metadata Polaris can reach there. The practical consequences are therefore similar to the staged-create credential-vending issue already discussed: data and metadata reachable in that storage scope can be exposed and, if write-capable credentials are later issued, modified, corrupted, or removed. Even before that later credential step, Polaris itself performs the metadata write to the unchecked location. So the core issue is not only later credential vending. The primary defect is that Polaris skips its intended location checks before performing a security- sensitive metadata write when only `write.metadata.path` changes. When `polaris.config.allow.unstructured.table.location=false`, current code review suggests the later `updateTableLike(...)` validation usually rejects out-of-tree metadata locations before the unsafe path is persisted. That may reduce the persisted / credential-vending variant, but it does not prevent the underlying defect: Polaris still skips the intended pre-write location check when only `write.metadata.path` changes.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
T1548 Abuse Elevation Control Mechanism Privilege Escalation
Adversaries may circumvent mechanisms designed to control privilege elevation to gain higher-level permissions.
T1552.001 Credentials In Files Credential Access
Adversaries may search local file systems and remote file shares for files containing insecurely stored credentials.
T1552.004 Private Keys Credential Access
Adversaries may search for private key certificate files on compromised systems for insecurely stored credentials.
T1574.005 Executable Installer File Permissions Weakness Stealth
Adversaries may execute their own malicious payloads by hijacking the binaries used by an installer.
T1574.010 Services File Permissions Weakness Stealth
Adversaries may execute their own malicious payloads by hijacking the binaries used by services.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2025-31698Same vendor: Apache
CVE-2024-56196Same vendor: Apache
CVE-2025-48734Same vendor: Apache
CVE-2023-50783Same vendor: Apache
CVE-2025-23048Same vendor: Apache
CVE-2024-27348Same vendor: Apache
CVE-2024-56195Same vendor: Apache
CVE-2026-23902Same vendor: Apache
CVE-2026-32228Same vendor: Apache
CVE-2023-47037Same vendor: Apache

Affected Assets

apache
polaris
≤ 1.4.1

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)
  • 26 hardening rules · 7 OS baselines
Validate
Prove the fix (OWASP ASVS)
  • V10.3.5

Mitigating Controls (NIST 800-53 r5) AI

Directly enforces approved authorizations for logical access, stopping unauthorized actors from reaching resources.

AC-24 ensures access-control decisions are made and applied consistently, reducing the chance of an incorrect authorization result.

A reference monitor that is always invoked and tamper-proof forces every authorization decision through a verified, correct path.

Enforces flow-control policies that restrict information movement between subjects and objects.

Documents duties and assigns access so that no single account can bypass intended restrictions.

Limits each account to the minimum privileges needed, reducing the chance of unauthorized access.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.AA-05 full match
prevents

Directly requires defining, enforcing, and reviewing access permissions and least privilege on resources.

PR.PS-01 mostly match
prevents

Hardened baselines and deviation monitoring directly eliminate most configuration-induced access-control defects, yet CWE-284 also encompasses code-level and design flaws outside the scope of configuration management alone.

PR.PS-06 mostly match
prevents

Secure SDLC practices directly require and enforce input validation during development.

PR.AA-01 partial match
prevents

PR.AA-01 supplies managed identities/credentials that support but do not implement access-control decisions, so it only partially prevents CWE-284 in either direction.

PR.AA-03 partial match
prevents

Authentication directly blocks unauthenticated actors (partial prevention of CWE-284) but leaves authorization logic, policy enforcement, and role checks untouched, so the control neither eliminates nor fully mitigates the broader weakness.

PR.DS-01 partial match
prevents

PR.DS-01 encryption mitigates impact of failed access checks on stored data but neither implements nor constrains access-control logic itself.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

prevents

Defining and enforcing explicit access rights and restrictions for each entity directly stops the assignment of permissions that exceed what is required, eliminating the root condition that allows improper access control.

prevents

Formal authorization, role-based provisioning, and timely revocation of access rights directly stop the creation of accounts or permissions that exceed what the business actually needs.

prevents

By enforcing explicit rules on which identities or groups may perform read, write, delete or execute operations and by denying anonymous access to sensitive data, the control directly stops the creation of overly permissive or missing access-control checks.

prevents

Requiring one-to-one mapping of identities to entities and timely removal of unused identities directly stops attackers from leveraging stale or shared accounts to bypass access restrictions.

prevents

By explicitly transferring security roles and responsibilities when personnel change jobs or leave, the control reduces the chance that former employees retain access rights they no longer need, thereby limiting improper access control.

prevents

Physical entry controls enforce explicit authorization and authentication at every access point, directly stopping unauthorized actors from reaching information-processing assets.

Hardening callouts derived

Configuration rules from DISA STIG baselines that bear on weaknesses of the type cited by this CVE. Each rule is shown with the relationship its mapping actually records, against the CWE it was authored against. Derived via CVE→CWE over `controls_xwalks` (authoritative rows only; rows rated `none` are excluded).

Oracle Linux 8 (5 rules)
  • V-248581 OL 8 must require users to provide a password for privilege escalation. prevents CWE-863
  • V-248577 OL 8 must enable kernel parameters to enforce Discretionary Access Control (DAC) on symlinks. prevents CWE-732
  • V-248597 There must be no "shosts.equiv" files on the OL 8 operating system. prevents CWE-284
Oracle Linux 9 (2 rules)
  • V-271758 OL 9 file systems must not contain .shosts files. prevents CWE-284
  • V-271757 OL 9 file systems must not contain shosts.equiv files. prevents CWE-284
RHEL 7 (3 rules)
  • V-204430 The Red Hat Enterprise Linux operating system must be configured so that users must re-authenticate for privilege escalation. prevents CWE-863
  • V-204606 The Red Hat Enterprise Linux operating system must not contain .shosts files. prevents CWE-284
  • V-204607 The Red Hat Enterprise Linux operating system must not contain shosts.equiv files. prevents CWE-284
RHEL 8 (4 rules)
  • V-230265 RHEL 8 must prevent the installation of software, patches, service packs, device drivers, or operating system components of local packages without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization. prevents CWE-20
  • V-230283 There must be no shosts.equiv files on the RHEL 8 operating system. prevents CWE-284
  • V-230284 There must be no .shosts files on the RHEL 8 operating system. prevents CWE-284
Windows Server 2016 (2 rules)
  • V-224972 Active Directory Group Policy objects must have proper access control permissions. prevents CWE-732
  • V-224831 Local volumes must use a format that supports NTFS attributes. prevents CWE-732
Windows Server 2019 (2 rules)
  • V-205741 Windows Server 2019 Active Directory Group Policy objects must have proper access control permissions. prevents CWE-732
  • V-205663 Windows Server 2019 local volumes must use a format that supports NTFS attributes. prevents CWE-732
Windows Server 2022 (2 rules)
  • V-254393 Windows Server 2022 Active Directory Group Policy objects must have proper access control permissions. prevents CWE-732
  • V-254250 Windows Server 2022 local volumes must use a format that supports NTFS attributes. prevents CWE-732

References