Skip to content

The Key Vault client trusts any configured vault URL and reuses ambient Azure credentials #16465

@rdblue

Description

@rdblue

This issue was reported to the private Apache Iceberg security mailing list. The submitter is being kept anonymous because the report was sent to a private list. After review, the issue is not considered a serious vulnerability that needs to be kept private, so it is being filed publicly here for tracking and resolution.

Note: this submission was generated by AI. Please review its claims and source references carefully before acting on them.

Summary

The Key Vault client accepts any configured vault URL and
authenticates with ambient Azure credentials, turning mis-scoped
config into token exfiltration risk.

Affected Maven coordinates

  • primary shipped client artifact: org.apache.iceberg:iceberg-azure
  • bundle artifact: org.apache.iceberg:iceberg-azure-bundle

Attacker prerequisites

  • control over the affected catalog response, configuration surface,
    or spec-consumed routing value
  • a client or service that honors the affected configuration without
    an additional allow-list

Impact

  • A malicious or mis-scoped configuration can redirect Key Vault
    authentication traffic to a non-Key-Vault endpoint.
  • That can expose bearer tokens or other auth context to an
    attacker-controlled service.
  • This is less exposed than the ADLS location issue because it is
    config-driven rather than metadata-driven, but it is still an
    endpoint-trust break.

Proof status

I reproduced this locally with a targeted reproducer or exploit.
The observed result matches the trigger and impact described above.

Key source references

  • org.apache.iceberg.azure.AzureProperties
  • org.apache.iceberg.azure.keymanagement.AzureKeyManagementClient

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions