Case · DiggingBeagle record

Agno PandasTools let a model-selectable function reach unsafe pickle loading

PandasTools invoked pandas functions from an unchecked parameter, allowing a chosen read_pickle function before DataFrame validation.

Scope

Agno installation with the PandasTools helper enabled and a party able to influence its selected tool function; actual external reachability and fixed version are not confirmed.

Assessment profile

Assessment method
Setting
research demonstration
Exploitation
demonstrated
Evidence
Grade B
AI role
AGAINST AI
Basis and provenance

The primary issue establishes the dangerous dispatch path but not a publicly confirmed fixed version or live victim. Impact remains unrated because the scoped record does not establish a calibrated severity-to-impact-band mapping.

Assessed Oct 31, 2026 using diggingbeagle.assessment/1.

At a glance

Mechanism and trust boundary

  1. 01

    Step

  2. 02

    Step

  3. 03

    Step

Timeline

  1. Oct 29, 2026
    disclosure

    Public disclosure

Claims & evidence

CLM-C26-AGNO-PANDAS-READPICKLE-1Agno issue 8699 describes unrestricted pandas function dispatch through getattr before output-type validation, allowing an unsafe read_pickle call when inputs are attacker-influenced.supported

Basis: reported finding

Link to claim

Implications

The post-call output-type check cannot retroactively stop the side effects of an unsafe constructor.

Controls and mitigations

  • Apply a constructor allowlist before function lookup and enforce sandboxed, authenticated data-source access; test harmless rejected method names.

Unknowns and contradictions

  • An independently verified release containing the intended allowlist fix is not established.
  • No observed production compromise has been documented.

Sources and citation

Material revision history

  1. Oct 31, 2026 · Canonical change recorded · new in release · revision 208