CVE-2026-73334 Overview
CVE-2026-73334 affects the org.apache.parquet.crypto.keytools package in Apache Parquet versions 1.12 through 1.18. The package implements envelope encryption for Parquet files by wrapping data keys through a Key Management Service (KMS). On the reader side, the KMS URL parameter can be either application-controlled or file-controlled. When applications do not enforce application control, a file-controlled KMS URL is forwarded to a pluggable KmsClient implementation. If that implementation omits host validation, an attacker can craft a Parquet file that redirects the KMS token to an attacker-controlled host, leaking authentication material.
Critical Impact
A malicious Parquet file can exfiltrate KMS tokens to an attacker-controlled endpoint when the reader trusts file-embedded KMS URLs and the pluggable KMS client does not validate the host.
Affected Products
- Apache Parquet 1.12.x
- Apache Parquet 1.13.x through 1.17.x
- Apache Parquet 1.18.x
Discovery Timeline
- 2026-09-09 - CVE-2026-73334 published to NVD
- 2026-09-09 - Last updated in NVD database
Technical Details for CVE-2026-73334
Vulnerability Analysis
Apache Parquet supports envelope encryption where data encryption keys are wrapped by a KMS. The keytools package resolves a KMS endpoint at read time to unwrap those keys. Readers accept a KMS URL that can originate from application configuration or from the Parquet file itself. When the application relies on file-controlled KMS URLs, the reader passes the file-supplied URL directly to the pluggable KmsClient. A KMS client that omits host validation will authenticate to whichever host the file specifies, transmitting KMS access tokens to that endpoint. This weakness maps to [CWE-20] Improper Input Validation.
Root Cause
The reader trusts file-supplied metadata to select a KMS endpoint without enforcing a host allowlist. Custom KmsClient plug-ins are not required to authenticate the remote endpoint before submitting tokens. The default behavior does not distinguish between operator-approved KMS hosts and hosts embedded in untrusted files.
Attack Vector
An attacker crafts an encrypted Parquet file that sets the KMS URL field to a host they control. A victim application reading the file with a vulnerable KmsClient implementation forwards its KMS token to the attacker's host during the key unwrap sequence. The attacker captures the token and can use it against the legitimate KMS if scope and authentication permit.
Verified exploitation code is not published. See the Apache Mailing List Discussion and the Openwall OSS-Security Update for advisory details.
Detection Methods for CVE-2026-73334
Indicators of Compromise
- Outbound HTTP or HTTPS requests from data processing workloads to KMS hostnames that are not on the organization's approved KMS allowlist.
- KMS access tokens or bearer headers observed in traffic captures directed to unexpected external endpoints.
- Parquet files whose crypto metadata references KMS URLs outside of sanctioned internal domains.
Detection Strategies
- Inspect Parquet file crypto metadata during ingestion and flag files that embed a KMS URL pointing to non-approved hosts.
- Enable egress monitoring on data pipeline hosts and alert on connections initiated by Parquet reader processes to unknown FQDNs.
- Review application configuration to confirm that readers set the KMS URL through application control rather than file control.
Monitoring Recommendations
- Log every KMS URL resolution performed by KmsClient implementations, including the source of the URL (application or file).
- Correlate KMS token issuance events with destination host telemetry to identify token delivery to unauthorized endpoints.
- Track Apache Parquet library versions across the estate and prioritize hosts still running 1.12 through 1.18.
How to Mitigate CVE-2026-73334
Immediate Actions Required
- Configure Parquet readers to leverage application control for the KMS URL parameter so file-supplied values are ignored.
- Audit every custom KmsClient implementation and add strict host validation against an allowlist of approved KMS endpoints.
- Require the KmsClient to authenticate the KMS endpoint (TLS with certificate pinning or mutual TLS) before transmitting tokens.
Patch Information
A fix is expected in Apache Parquet 1.19, which will disable file-controlled KMS URL by default. After the upgrade, operators can either continue using application-controlled KMS URLs or explicitly opt in to file-controlled KMS URLs through a new application parameter. Opting in will require documented host validation and authentication in the custom KMS client. Refer to the Apache Mailing List Discussion for the upstream fix status.
Workarounds
- Enforce application-controlled KMS URLs in all Parquet reader deployments running versions 1.12 through 1.18.
- Reject Parquet files whose crypto metadata contains a KMS URL that does not match the sanctioned KMS domain.
- Restrict egress from data processing environments to the approved KMS host and block all other outbound destinations for those workloads.
# Configuration example
# Enforce application control for the KMS URL in Parquet readers.
# Set the KMS URL in application configuration and ignore file-supplied values.
parquet.encryption.kms.instance.url=https://kms.internal.example.com
parquet.encryption.key.access.token=${KMS_TOKEN}
# Ensure custom KmsClient implementations validate the host against an allowlist
# and use TLS authentication before sending tokens.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.
