PraisonAI dynamic-context artifact tools read arbitrary host files outside artifact storage
What fixes it
- 4.6.59praisonai, PyPIOSV
pip 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