All vulnerabilities
CVE-2026-56833GHSA-22cj-m4wf-fv2cPYSEC-2026-3499

PraisonAI Dynamic Context history and terminal tools read files outside configured storage via path traversal

MervinPraison PraisonAIPyPILibraries & packages
CVSS
7.5High
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in4.6.59Fixed versionOSV
Published23 Oct 2026Updated 23 Oct 2026CVE List

What fixes it

  • 4.6.59praisonai, PyPIOSVpip install "praisonai>=4.6.59"

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

PraisonAI is a multi-agent teams system. From version 3.8.1 to before version 4.6.59, PraisonAI's Dynamic Context module provides filesystem-backed history and terminal-log storage. The module also exports agent-callable tool factories. Those tools accept run_id and agent_id arguments from the tool caller. The underlying stores join those values into filesystem paths without rejecting absolute paths or .. traversal. Because run_id can be an absolute path and agent_id can contain traversal, a lower-trust prompt/user that can call these tools can read .jsonl and .log files outside the configured Dynamic Context base directory. This issue has been patched in version 4.6.59.

Text from CVE List

Affected versions 53

  • PraisonAIaffected: >= 3.8.1, < 4.6.59CVE List
  • praisonai, pip>= 3.8.1, <= 4.6.58GitHub
  • praisonai, PyPIfrom 3.8.1, fixed in 4.6.59OSV
  • praisonai, PyPI3.10.0OSV
  • praisonai, PyPI3.10.1OSV
  • praisonai, PyPI3.10.10OSV
  • praisonai, PyPI3.10.11OSV
  • praisonai, PyPI3.10.12OSV
  • praisonai, PyPI3.10.13OSV
  • praisonai, PyPI3.10.14OSV
  • praisonai, PyPI3.10.15OSV
  • praisonai, PyPI3.10.16OSV
  • praisonai, PyPI3.10.17OSV
  • praisonai, PyPI3.10.18OSV
  • praisonai, PyPI3.10.19OSV
  • praisonai, PyPI3.10.2OSV
  • praisonai, PyPI3.10.20OSV
  • praisonai, PyPI3.10.21OSV
  • praisonai, PyPI3.10.22OSV
  • praisonai, PyPI3.10.23OSV
  • praisonai, PyPI3.10.24OSV
  • praisonai, PyPI3.10.25OSV
  • praisonai, PyPI3.10.26OSV
  • praisonai, PyPI3.10.27OSV
  • praisonai, PyPI3.10.3OSV
  • praisonai, PyPI3.10.4OSV
  • praisonai, PyPI3.10.5OSV
  • praisonai, PyPI3.10.6OSV
  • praisonai, PyPI3.10.7OSV
  • praisonai, PyPI3.10.8OSV
  • praisonai, PyPI3.10.9OSV
  • praisonai, PyPI3.11.0OSV
  • praisonai, PyPI3.11.1OSV
  • praisonai, PyPI3.11.10OSV
  • praisonai, PyPI3.11.11OSV
  • praisonai, PyPI3.11.12OSV
  • praisonai, PyPI3.11.13OSV
  • praisonai, PyPI3.11.14OSV
  • praisonai, PyPI3.11.2OSV
  • praisonai, PyPI3.11.3OSV
  • praisonai, PyPI3.11.4OSV
  • praisonai, PyPI3.11.8OSV
  • praisonai, PyPI3.11.9OSV
  • praisonai, PyPI3.12.0OSV
  • praisonai, PyPI3.12.1OSV
  • praisonai, PyPI3.12.2OSV
  • praisonai, PyPI3.12.3OSV
  • praisonai, PyPI3.8.1OSV
  • praisonai, PyPI3.8.10OSV
  • praisonai, PyPI3.8.11OSV
  • praisonai, PyPI3.8.12OSV
  • praisonai, PyPI3.8.13OSV
  • praisonai, PyPI3.8.14OSV

References 1