PraisonAI Dynamic Context history and terminal tools read files outside configured storage via path traversal
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 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