{"id":"CVE-2026-114386","published":"2026-10-21T13:18:28.613","lastModified":"2026-10-22T17:39:56.760","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.","cvssScore":4.8,"cvssSeverity":"MEDIUM","cvssVector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L","cwes":["CWE-770"],"vendors":[],"products":[],"references":[{"url":"https://github.com/pydantic/pydantic-ai/blob/v2.58.0/src/pydantic_ai_harness/pydantic_ai_harness/code_mode/_toolset.py#L642-L680","tags":[]},{"url":"https://github.com/pydantic/pydantic-ai/commit/eb27b2b89fe76ae23ee9b6fc9eb4b227a4967949","tags":[]},{"url":"https://github.com/pydantic/pydantic-ai/pull/10362","tags":[]},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.59.0","tags":[]},{"url":"https://pypi.org/project/pydantic-ai-harness/0.59.0/","tags":[]},{"url":"https://www.vulncheck.com/advisories/pydantic-ai-harness-before-0.59.0-codemode-tool-call-limit-bypass-via-run-code","tags":[]}],"exploitRefs":[{"url":"https://github.com/pydantic/pydantic-ai/blob/v2.58.0/src/pydantic_ai_harness/pydantic_ai_harness/code_mode/_toolset.py#L642-L680","tags":[]},{"url":"https://github.com/pydantic/pydantic-ai/commit/eb27b2b89fe76ae23ee9b6fc9eb4b227a4967949","tags":[]},{"url":"https://github.com/pydantic/pydantic-ai/pull/10362","tags":[]},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.59.0","tags":[]}],"hasPoc":true,"ai":null}