<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Praisonai (&gt;= 2.6.0, &lt;= 4.6.57) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/praisonai--2.6.0--4.6.57/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 18 Jun 2026 15:28:36 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/praisonai--2.6.0--4.6.57/feed.xml" rel="self" type="application/rss+xml"/><item><title>PraisonAI GitHub template cache path traversal allows outside-cache file write and directory deletion</title><link>https://feed.craftedsignal.io/briefs/2026-06-praisonai-path-traversal/</link><pubDate>Thu, 18 Jun 2026 15:28:36 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-06-praisonai-path-traversal/</guid><description>PraisonAI's template loader is vulnerable to a path traversal flaw (GHSA-f44v-7qgw-9gh9) when processing GitHub template URIs, allowing an unauthenticated attacker to write arbitrary files or delete arbitrary directories on the system running PraisonAI, leading to corruption of user configuration, project state, or application data.</description><content:encoded><![CDATA[<p>PraisonAI's template loader, particularly versions 2.6.0 through 4.6.57, contains a path traversal vulnerability (GHSA-f44v-7qgw-9gh9) that allows an attacker to manipulate file system operations. The issue stems from insufficient validation of user-controlled <code>ref</code> and <code>template path</code> segments within GitHub template URIs (e.g., <code>github:owner/repo/template@v1.0.0</code>). When a crafted URI with directory traversal sequences (<code>..</code>) is processed, PraisonAI's cache layer constructs file paths that escape its intended cache directory. This enables an attacker to either write arbitrary <code>.cache_meta.json</code> files to unintended locations or, under specific conditions, delete arbitrary directories on the host system. This vulnerability, distinct from Zip Slip attacks, does not require malicious archives and affects PraisonAI installations across various operating systems, posing a significant risk of data corruption or denial of service.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker crafts a malicious PraisonAI GitHub template URI containing directory traversal sequences (e.g., <code>github:attacker/repo/template@../../../../outside-target</code>) within the <code>ref</code> portion.</li>
<li>A user or automated service loads this crafted URI using PraisonAI's <code>TemplateLoader.load()</code> method.</li>
<li>PraisonAI's template resolver (<code>praisonai/templates/resolver.py</code>) captures the owner, repo, template path, and the malicious <code>ref</code> verbatim without segment validation.</li>
<li>The <code>_get_cache_path()</code> function in <code>praisonai/templates/cache.py</code> concatenates these unvalidated segments to construct a local cache path, resulting in a path that escapes the intended <code>~/.praison/cache/templates/</code> directory.</li>
<li><strong>Scenario A (Arbitrary File Write):</strong> During the first load, the <code>cache.put()</code> method attempts to write the <code>.cache_meta.json</code> file to the attacker-controlled escaped path.</li>
<li><strong>Scenario B (Arbitrary Directory Deletion):</strong> If a legitimate cache entry for the <em>same owner/repo/template prefix</em> already exists, a subsequent load with the malicious URI causes <code>cache.put()</code> to first call <code>shutil.rmtree()</code> on the attacker-controlled escaped path, deleting an arbitrary directory.</li>
<li>The attacker successfully performs either the creation of <code>.cache_meta.json</code> at an arbitrary location (e.g., corrupting application configuration) or the deletion of an arbitrary directory on the system where PraisonAI is running.</li>
<li>This leads to corruption of user configuration, project state, or application data, potentially resulting in denial of service or further compromise.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this path traversal vulnerability can lead to severe consequences for organizations utilizing PraisonAI. An attacker can create arbitrary files, specifically <code>.cache_meta.json</code>, in locations outside the application's intended cache, potentially overwriting critical configuration files or injecting malicious data. More critically, under a specific two-stage scenario, an attacker can trigger the deletion of arbitrary directories via <code>shutil.rmtree()</code>, leading to data destruction, corruption of user or project data, or even a complete denial of service by removing essential system directories. All PraisonAI versions from 2.6.0 up to 4.6.57 are affected.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Patch PraisonAI immediately when a fix is released for versions &gt;= 2.6.0 and &lt;= 4.6.57 as per GHSA-f44v-7qgw-9gh9.</li>
<li>Deploy the provided Sigma rules to detect suspicious file write and deletion activities initiated by PraisonAI processes.</li>
<li>Enable detailed file creation and deletion logging (e.g., Sysmon Event ID 11 for file creation, Event ID 23 for file deletion on Windows; auditd on Linux) for Python processes to activate the detection rules.</li>
<li>If PraisonAI is used in a critical environment, implement strict path validation within any custom <code>TemplateCache</code> or <code>TemplateLoader</code> implementations to reject absolute paths, <code>.</code> or <code>..</code> segments, or paths escaping the intended cache root, as suggested in GHSA-f44v-7qgw-9gh9.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>path-traversal</category><category>application-vulnerability</category><category>python</category><category>file-write</category><category>file-deletion</category></item></channel></rss>