<?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>Banana Slides &lt;= 0.4.0 — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/banana-slides--0.4.0/</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>Mon, 01 Jun 2026 21:19:30 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/banana-slides--0.4.0/feed.xml" rel="self" type="application/rss+xml"/><item><title>Banana Slides Path Traversal Vulnerability (CVE-2026-49136)</title><link>https://feed.craftedsignal.io/briefs/2026-06-banana-slides-path-traversal/</link><pubDate>Mon, 01 Jun 2026 21:19:30 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-06-banana-slides-path-traversal/</guid><description>Banana Slides version 0.4.0 contains a path traversal vulnerability (CVE-2026-49136) in the generate_image() function that allows unauthenticated attackers to read arbitrary image-format files outside the intended uploads directory by exploiting an incomplete path prefix check.</description><content:encoded><![CDATA[<p>Banana Slides version 0.4.0 is vulnerable to a path traversal vulnerability, identified as CVE-2026-49136, within the AI service backend&rsquo;s <code>generate_image()</code> function. This flaw allows unauthenticated attackers to bypass intended directory confinement, reading arbitrary image-format files from outside the uploads directory. The vulnerability stems from an incomplete path prefix check using <code>os.path.startswith()</code> without a trailing separator. By crafting markdown image references in user-controlled page descriptions, attackers can target sibling directories sharing the uploads folder prefix. This bypasses the intended security measure, enabling unauthorized file access via PIL <code>Image.open()</code>. The vulnerability was patched in commit e8bc490.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An unauthenticated attacker crafts a malicious payload containing a markdown image reference within a user-controlled page description. This payload is designed to exploit the path traversal vulnerability.</li>
<li>The crafted markdown image reference includes a path that resolves to a sibling directory whose name shares the same prefix as the uploads directory (e.g., if the uploads directory is <code>/var/www/bananaslides/uploads</code>, a sibling directory might be <code>/var/www/bananaslides/uploads_backup</code>).</li>
<li>The <code>generate_image()</code> function in the AI service backend processes the markdown content and attempts to generate the image.</li>
<li>The application uses <code>os.path.startswith()</code> to validate that the path of the requested image begins with the uploads directory path. However, the check lacks a trailing separator (e.g., <code>/var/www/bananaslides/uploads/</code>).</li>
<li>Due to the missing trailing separator, the check incorrectly validates paths to sibling directories that share the prefix.</li>
<li>The application then uses PIL&rsquo;s <code>Image.open()</code> function to open and process the image file located at the attacker-controlled path.</li>
<li>Because the path traversal was successful, the application reads the contents of an arbitrary image file outside the intended uploads directory.</li>
<li>The attacker successfully retrieves the contents of the targeted file.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-49136 allows unauthenticated attackers to read sensitive image-format files from arbitrary locations on the server. This could lead to the exposure of confidential data, including configuration files containing credentials, private keys, or other sensitive information. The CVSS v3.1 base score for this vulnerability is 7.5, indicating a high severity.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Banana Slides to a version greater than 0.4.0, which includes the patch from commit e8bc490, to remediate CVE-2026-49136.</li>
<li>Deploy the Sigma rule &ldquo;Detect CVE-2026-49136 Exploitation Attempt — Path Traversal in Banana Slides&rdquo; to your SIEM to detect exploitation attempts based on HTTP request patterns.</li>
<li>Review webserver access logs for requests containing path traversal sequences in the <code>cs-uri-query</code> or <code>cs-uri-stem</code> fields, specifically targeting image-related endpoints as identified in the vulnerability description.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>path-traversal</category><category>web-application</category><category>cve</category></item></channel></rss>