CVE-2026-107288

Source
https://cve.org/CVERecord?id=CVE-2026-107288
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-107288.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-107288
Aliases
  • GHSA-22h6-qm39-v87j
Published
2026-10-08T15:18:40Z
Modified
2026-10-10T02:47:38Z
Severity
  • 3.7 (Low) CVSS_V3 - CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N CVSS Calculator
Summary
Pydantic AI: web_fetch_tool blocked_domains bypass via a hostname the resolver normalizes differently
Details

Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.77.0 until 1.107.6 and 2.44.0, the local web_fetch_tool and the WebFetch local fallback compare blocked_domains entries with a URL hostname before both values are normalized to the form used by getaddrinfo. An attacker-influenced model can use an equivalent IDNA spelling, non-ASCII label separator, case variation, or trailing root label that resolves to a blocked host but does not match the configured string, causing the application to fetch that host with its own privileges. allowed_domains fails closed for unmatched spellings, and private-IP and cloud-metadata protections remain effective. This issue is fixed in versions 1.107.6 and 2.44.0.

Database specific
{
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
        "CWE-1289",
        "CWE-918"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/107xxx/CVE-2026-107288.json"
}
References

Affected packages

Git / github.com/pydantic/pydantic-ai

Affected ranges

Type
GIT
Repo
https://github.com/pydantic/pydantic-ai
Events
Database specific
Show details
{
    "extracted_events": [
        {
            "introduced": "1.77.0"
        },
        {
            "fixed": "1.107.6"
        },
        {
            "introduced": "2.0.0b1"
        },
        {
            "fixed": "2.44.0"
        }
    ],
    "source": [
        "AFFECTED_FIELD",
        "REFERENCES"
    ]
}

Affected versions

v1.*
v1.100.0
v1.101.0
v1.102.0
v1.103.0
v1.104.0
v1.105.0
v1.106.0
v1.107.0
v1.107.1
v1.107.2
v1.107.4
v1.107.5
v1.77.0
v1.78.0
v1.79.0
v1.80.0
v1.81.0
v1.82.0
v1.83.0
v1.84.0
v1.84.1
v1.85.0
v1.85.1
v1.86.0
v1.86.1
v1.87.0
v1.88.0
v1.89.0
v1.89.1
v1.90.0
v1.91.0
v1.92.0
v1.93.0
v1.94.0
v1.95.0
v1.95.1
v1.96.0
v1.96.1
v1.97.0
v1.98.0
v1.99.0
v2.*
v2.0.0
v2.1.0
v2.10.0
v2.11.0
v2.12.0
v2.13.0
v2.14.0
v2.14.1
v2.15.0
v2.16.0
v2.17.0
v2.18.0
v2.19.0
v2.2.0
v2.20.0
v2.21.0
v2.22.0
v2.23.0
v2.24.0
v2.25.0
v2.26.0
v2.27.0
v2.27.1
v2.28.0
v2.29.0
v2.3.0
v2.30.0
v2.31.0
v2.31.1
v2.32.0
v2.32.1
v2.32.2
v2.33.0
v2.34.0
v2.35.0
v2.35.1
v2.35.3
v2.36.0
v2.37.0
v2.38.0
v2.39.0
v2.4.0
v2.40.0
v2.41.0
v2.42.0
v2.43.0
v2.5.0
v2.5.1
v2.6.0
v2.7.0
v2.8.0
v2.9.0
v2.9.1

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-107288.json"