All vulnerabilities
CVE-2026-56834GHSA-j7qx-p75m-wp7gPYSEC-2026-3514

PraisonAI dynamic-context artifact tools read arbitrary host files outside artifact storage

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 Discovery feature exposes artifact helper tools through ctx.get_tools(). The implemented artifact tools do not enforce that the supplied artifact_path is an artifact created by the configured store or that it lives under the configured artifact base directory. Instead, artifact_head, artifact_tail, artifact_grep, and artifact_chunk wrap the caller-supplied path directly into an ArtifactRef and then read it from the host filesystem. As a result, any prompt/user/tool-caller that can influence those tool arguments can read files readable by the PraisonAI process, such as project .env files, cloud credentials, SSH keys, source files, or other local data. This issue has been patched in version 4.6.59.

Text from CVE List

Affected versions 52

  • PraisonAIaffected: >= 3.8.1, < 4.6.59CVE List
  • 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