CVE-2026-92287 in Arrowinfo

Summary

by MITRE • 10/20/2026

Pass-through of unvalidated KMS URLs to KMS clients in Apache C++ Parquet and PyArrow versions 4.0.0 to 25.0.1.




This affects users who read Parquet files and configure Parquet decryption properties with a KmsClient implementation.




On the reader side, the KMS URL can be application-controlled (specified in the KmsConnectionConfig) or file-controlled. If the user does not leverage application control for this parameter, a file-controlled KMS URL is forwarded to a pluggable KmsClient implementation. If the KMS implementation does not perform host validation and makes use of the provided KMS URL, a KMS token can be sent to a malicious host set by an attacker in the file. 




Users are recommended to upgrade to version 26.0.0, which disables this behavior by default and requires that users opt-in to it by enabling the read_kms_url flag in the DecryptionConfiguration. Users of affected versions are recommended to either specify the KMS URL in the KmsConnectionConfig when reading files, or ensure any KmsClient implementations validate received KMS URLs. Users that opt-in to file-controlled KMS URLs in version 26.0.0 and later must ensure KmsClients validate KMS URLs.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 10/20/2026

Apache C++ Parquet and PyArrow versions ranging from 4.0.0 through 25.0.1 contain a critical security flaw related to the handling of Key Management Service (KMS) Uniform Resource Locators during file decryption operations. This vulnerability specifically impacts users who configure Parquet decryption properties using a pluggable KmsClient implementation. The core issue stems from the pass-through mechanism that forwards unvalidated KMS URLs directly to these client implementations without sufficient verification or sanitization of the input source. When reading encrypted Parquet files, the system allows for two distinct methods of specifying the KMS endpoint: application-controlled configuration via the KmsConnectionConfig object and file-controlled configuration embedded within the metadata of the Parquet file itself. While application-controlled URLs are generally considered safe because they originate from trusted administrative settings, file-controlled URLs present a significant risk vector if not properly validated.

The technical flaw arises when an attacker crafts a malicious Parquet file containing a KMS URL that points to a server under their control. If the user does not explicitly override this setting by providing a KmsConnectionConfig with a fixed application-level URL, the system defaults to using the file-controlled URL found within the data structure. This unvalidated URL is then passed directly to the configured KmsClient implementation. The severity of this vulnerability depends heavily on whether the specific KMS client performs host validation or certificate pinning before establishing communication. If the client fails to validate that the hostname matches an expected, trusted domain, it will proceed with the cryptographic handshake and token exchange process with the malicious server. This behavior effectively allows for a man-in-the-middle style attack where sensitive decryption keys or tokens are exfiltrated from the application environment to an attacker-controlled infrastructure.

From an operational impact perspective, this vulnerability can lead to severe data confidentiality breaches and potential remote code execution depending on how the KMS token is utilized downstream. By tricking the client into contacting a rogue key server, an attacker gains access to cryptographic material that may be used to decrypt other files or impersonate legitimate services within the organization's security perimeter. This aligns with CWE-20 Improper Input Validation and CWE-918 Server-Side Request Forgery (SSRF) principles, as the application acts on untrusted input without adequate verification of its origin or integrity. Furthermore, in the context of the MITRE ATT&CK framework, this behavior facilitates Initial Access and Credential Access techniques by allowing an adversary to intercept authentication tokens through a compromised data file rather than exploiting network infrastructure directly.

To mitigate this risk, users are strongly advised to upgrade immediately to version 26.0.0 or later of Apache C++ Parquet and PyArrow. This updated release addresses the vulnerability by disabling the automatic pass-through of unvalidated KMS URLs by default. In the patched versions, enabling file-controlled KMS URLs requires an explicit opt-in action through the read_kms_url flag within the DecryptionConfiguration object. For organizations still operating on affected legacy versions that cannot upgrade immediately, two primary mitigation strategies are recommended. The first and most robust approach is to always specify the KMS URL explicitly in the KmsConnectionConfig when reading files, thereby ensuring that application-level trusted settings override any potentially malicious values embedded within the Parquet file metadata. Alternatively, if maintaining flexibility for dynamic KMS endpoints is required, organizations must ensure that their custom or third-party KmsClient implementations perform rigorous host validation and certificate verification before accepting any URL provided by the data source. This defensive coding practice ensures that even if a malicious URL is present in the file, the client will reject it rather than establishing a connection to an unauthorized endpoint.

Disclosure

10/20/2026

Moderation

accepted

EPSS

0.00217

KEV

no

Activities

very low

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!