Vulnerability · Published Jul 6, 2026 · Assigned by GitHub_M
CVE-2026-58203NestedSecretsSettingsSource follows symlinks outside secrets_dir, enabling local file read and bypassing secrets_dir_max_size
Medium 5.3
In plain English
A medium-severity path traversal in pydantic-settings from pydantic. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 8% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
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.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian:14 | pydantic-settings | 2.14.2-1 | DEBIAN-CVE-2026-58203 |
| PyPI | pydantic-settings | 2.14.2 | GHSA-4xgf-cpjx-pc3j |
| Ubuntu:25.10 | pydantic-settings | no fix listed | UBUNTU-CVE-2026-58203 |
| Ubuntu:26.04:LTS | pydantic-settings | no fix listed | UBUNTU-CVE-2026-58203 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| pydantic | pydantic-settings | >= 2.12.0, < 2.14.2 |
Weakness: CWE-22, CWE-59, CWE-400 · Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L