Skip to content

Agno: Arbitrary code execution via `eval()` on `field_type` in `FunctionCall`

Critical severity GitHub Reviewed Published Jun 30, 2026 in agno-agi/agno • Updated Oct 27, 2026

Package

pip agno (pip)

Affected versions

< 2.3.24

Patched versions

2.3.24

Description

Impact

Agno versions prior to 2.3.24 contain an arbitrary code execution vulnerability
in the model execution component. The field_type parameter on a FunctionCall
input field was passed to Python's built-in eval(), allowing an attacker who
could influence that value to execute arbitrary Python code in the Agno process.

This is a code injection flaw (CWE-95) with full impact to confidentiality,
integrity, and availability. CVSS 3.1 score: 9.3 (Critical).

Any deployment that exposes Agno to user-influenced FunctionCall inputs
(for example via an API, web UI, or untrusted tool/model output) is affected.

Patches

Fixed in Agno 2.3.24.

The unsafe eval() call was replaced with a fixed type_mapping dictionary
lookup, and field_type is now validated as either a known string key or an
already-resolved type object before use. See commit
cbf67552
(PR #5912).

All users should upgrade to 2.3.24 or later. The current release line (2.6.x)
includes the fix.

Workarounds

There is no safe workaround. Users who cannot upgrade should ensure no
untrusted input can reach the field_type parameter of FunctionCall
input fields, but upgrading is strongly preferred.

References

References

@kausmeows kausmeows published to agno-agi/agno Jun 30, 2026
Published to the GitHub Advisory Database Oct 27, 2026
Reviewed Oct 27, 2026
Last updated Oct 27, 2026

Severity

Critical

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(58th percentile)

Weaknesses

Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection')

The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes code syntax before using the input in a dynamic evaluation call (e.g. eval). Learn more on MITRE.

CVE ID

CVE-2026-35002

GHSA ID

GHSA-m4w4-3r8h-jw98

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.