CVE-2026-114386GHSA-3589-pxp7-3gj8
pydantic-ai-harness: Pydantic AI Harness tool-call limit bypass in nested CodeMode calls
pydantic pydantic-ai-harnesspipLibraries & packages
CVSS
6.3MediumExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.35%Chance of exploitation activity in the next 30 days, higher than 26% of CVEs. Scored 23 Oct 2026FIRST EPSS
What fixes it
- 0.59.0pydantic-ai-harness, pipGitHub
- 0.59.0pydantic-ai-harnessCVE List
- 0.59.0pydantic-ai-harness, PyPIOSV
pip install "pydantic-ai-harness>=0.59.0"
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
Pydantic AI Harness before 0.59.0 fails to enforce UsageLimits.tool_calls_limit on nested tool calls dispatched from run_code in the CodeMode toolset. Users or prompt-injected content can make the sandboxed program invoke tools via run_nested_call() without check_before_tool_call, exceeding operator limits on costly or side-effecting tools.
Text from CVE List
Affected versions 51
- pydantic-ai-harness, pip< 0.59.0GitHub
- pydantic-ai-harnessaffected: all versions before 0.59.0CVE List
- pydantic-ai-harness, PyPIfrom first release, fixed in 0.59.0OSV
- pydantic-ai-harness, PyPI0.1.1OSV
- pydantic-ai-harness, PyPI0.1.2OSV
- pydantic-ai-harness, PyPI0.10.0OSV
- pydantic-ai-harness, PyPI0.11.0OSV
- pydantic-ai-harness, PyPI0.12.0OSV
- pydantic-ai-harness, PyPI0.13.0OSV
- pydantic-ai-harness, PyPI0.14.0OSV
- pydantic-ai-harness, PyPI0.15.0OSV
- pydantic-ai-harness, PyPI0.16.0OSV
- pydantic-ai-harness, PyPI0.17.0OSV
- pydantic-ai-harness, PyPI0.18.0OSV
- pydantic-ai-harness, PyPI0.18.1OSV
- pydantic-ai-harness, PyPI0.2.0OSV
- pydantic-ai-harness, PyPI0.2.1OSV
- pydantic-ai-harness, PyPI0.20.0OSV
- pydantic-ai-harness, PyPI0.21.0OSV
- pydantic-ai-harness, PyPI0.22.0OSV
- pydantic-ai-harness, PyPI0.23.0OSV
- pydantic-ai-harness, PyPI0.24.0OSV
- pydantic-ai-harness, PyPI0.25.0OSV
- pydantic-ai-harness, PyPI0.26.0OSV
- pydantic-ai-harness, PyPI0.27.0OSV
- pydantic-ai-harness, PyPI0.28.0OSV
- pydantic-ai-harness, PyPI0.28.1OSV
- pydantic-ai-harness, PyPI0.29.0OSV
- pydantic-ai-harness, PyPI0.29.1OSV
- pydantic-ai-harness, PyPI0.3.0OSV
- pydantic-ai-harness, PyPI0.30.0OSV
- pydantic-ai-harness, PyPI0.31.0OSV
- pydantic-ai-harness, PyPI0.32.0OSV
- pydantic-ai-harness, PyPI0.33.0OSV
- pydantic-ai-harness, PyPI0.34.0OSV
- pydantic-ai-harness, PyPI0.35.0OSV
- pydantic-ai-harness, PyPI0.36.0OSV
- pydantic-ai-harness, PyPI0.4.0OSV
- pydantic-ai-harness, PyPI0.5.0OSV
- pydantic-ai-harness, PyPI0.52.0OSV
- pydantic-ai-harness, PyPI0.53.0OSV
- pydantic-ai-harness, PyPI0.54.0OSV
- pydantic-ai-harness, PyPI0.55.0OSV
- pydantic-ai-harness, PyPI0.56.0OSV
- pydantic-ai-harness, PyPI0.57.0OSV
- pydantic-ai-harness, PyPI0.58.0OSV
- pydantic-ai-harness, PyPI0.6.0OSV
- pydantic-ai-harness, PyPI0.7.0OSV
- pydantic-ai-harness, PyPI0.7.1OSV
- pydantic-ai-harness, PyPI0.8.0OSV
- pydantic-ai-harness, PyPI0.9.0OSV
References 9
- github.com/pydantic/pydantic-ai/pull/10362Fixvia CVE List
- github.com/pydantic/pydantic-ai/commit/eb27b2b89fe76ae23ee9b6fc9eb4b227a4967949Fixvia CVE List
- github.com/pydantic/pydantic-ai/releases/tag/v2.59.0Fixvia CVE List
- vulncheck.com/advisories/pydantic-ai-harness-before-0.59.0-codemode-tool-call-limit-bypass-via-run-codeAdvisoryvia CVE List
- github.com/advisories/GHSA-3589-pxp7-3gj8Advisoryvia GitHub
- nvd.nist.gov/vuln/detail/CVE-2026-114386Referencevia GitHub
- github.com/pydantic/pydantic-ai/blob/v2.58.0/src/pydantic_ai_harness/pydantic_ai_harness/code_mode/_toolset.py#L642-L680Referencevia CVE List
- pypi.org/project/pydantic-ai-harness/0.59.0Referencevia GitHub
- pypi.org/project/pydantic-ai-harness/0.59.0/Referencevia CVE List