p PatchFirst

CVE-2026-58203

CVE-2026-58203 · NestedSecretsSettingsSource follows symlinks outside secrets_dir, enabling local file read and bypassing secrets_dir_max_size

This page contains facts from public vulnerability sources. Check the original advisory before updating.

pydantic-settings provides settings management using Pydantic. From 2.12.0 until 2.14.2, NestedSecretsSettingsSource reads secret values from files in a configured secrets_dir. When secrets_nested_subdir=True, a directory entry inside secrets_dir that is a symbolic link pointing outside secrets_dir is followed, so files outside the configured directory are read into settings values. The same code path bypasses the documented secrets_dir_max_size protection. An attacker or lower-privileged component able to influence entries in the configured secrets directory (for example, a writable or shared secrets mount) can turn this into an unintended local file read into settings and can defeat the advertised loading-size cap. This vulnerability is fixed in 2.14.2.

CVSS 5.3 · Medium · EPSS 0.2% · Fix available

Published
Updated

Stack: system · python

Affected products and versions

  • pydantic-settings

    Versions
    • >= 2.12.0, < 2.14.2: Affected

    No fix published

  • pydantic-settings Debian:14

    Versions
    • 2.10.1-1
    • 2.10.1-2
    • 2.11.0-1
    • 2.12.0-1
    • 2.12.0-2
    • 2.13.0-1
    • 2.14.0-1
    • 2.14.1-1
    • 2.8.1-2
    Affected ranges
    • ECOSYSTEM: < 2.14.2-1

    Update to 2.14.2-1

  • pydantic-settings PyPI

    Versions
    • 2.12.0
    • 2.13.0
    • 2.13.1
    • 2.14.0
    • 2.14.1
    Affected ranges
    • ECOSYSTEM: ≥ 2.12.0, < 2.14.2

    Update to 2.14.2

  • pydantic-settings Ubuntu:25.10

    Versions
    • 2.8.1-1
    • 2.8.1-2
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • pydantic-settings Ubuntu:26.04:LTS

    Versions
    • 2.8.1-2
    • 2.12.0-2
    • 2.13.0-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

Original sources

Check your server →