IT SBIT Services
Schneeberger
DEEN
CVE tracker

PraisonAI: Path traversal in GitHub template cache allows file write and deletion

CVE-2026-57113High 8.1

← All vulnerabilities

Summary

PraisonAI's template loader does not validate the ref and path segments of GitHub template URIs before it builds a cache path. An attacker who can get PraisonAI to load a crafted template URI, for example with ../ sequences in the ref, can create a .cache_meta.json file outside the cache. If a normal cache entry for the same owner, repo and template already exists, the attacker can also make PraisonAI delete an attacker-selected directory. Exploitation requires user interaction and control over the template input.

Affected

  • PraisonAI (Python package praisonai) from 2.6.0 before 4.6.59

Fixed in

  • Version 4.6.59 or later

Workaround

Unknown.

  • No vendor workaround is known. Until the update is applied, do not let untrusted users or inputs supply template URIs.

Exploitation

  • CISA SSVC: exploitation none, not automatable, partial technical impact.
  • Not listed in CISA KEV. EPSS 0.00405 (low).
  • No in-the-wild exploitation reported. The advisory contains a reproduction snippet, and public exploit code cannot be ruled out.

Our recommendation

  • Upgrade PraisonAI to version 4.6.59 or later.
  • Until then, do not let untrusted users supply template URIs.
  • Run PraisonAI under a restricted service account without write access to sensitive directories.
  • Check whether PraisonAI is installed (for example with pip show praisonai) on developer, automation and internet-facing hosts.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 17:57.

Original description (NVD)

PraisonAI is a multi-agent teams system. From version 2.6.0 to before version 4.6.59, PraisonAI's template loader accepts GitHub template URIs with refs, for example github:owner/repo/template@v1.0.0. The resolver stores the user-controlled template path and ref verbatim, and the cache layer later joins those values into ~/.praison/cache/templates/github/<owner>/<repo>/<template>/<ref> without normalizing each segment or checking that the final path remains inside the template cache root. A crafted ref such as ../../../../../../outside-delete-target therefore escapes the cache directory. The first load can write .cache_meta.json outside the cache. If the normal cache hierarchy for the same owner/repo/template has already been created, the same path reaches shutil.rmtree(cache_path) and removes an attacker-selected outside directory before replacing it with cache metadata. This issue has been patched in version 4.6.59.

NVD references (1)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.