Skip to main content

Banana Slides CVE-2026-49136

| EUVDEUVD-2026-33753 HIGH
Path Traversal (CWE-22)
2026-06-01 VulnCheck GHSA-f757-35w9-6h9q
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify Banana Slides instance ≤ 0.4.0
  2. Delivery
    Submit page description with crafted /files/../sibling-dir/img.png reference
  3. Exploit
    Bypass startswith() prefix check
  4. Execution
    PIL Image.open() reads target file
  5. Impact
    Image content returned via AI generation pipeline

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

No authentication or user interaction is required (CVSS PR:N/UI:N/AV:N/AC:L); the attacker only needs network reach to a Banana Slides instance running version ≤ 0.4.0 with the AI image-generation feature enabled and reachable input fields (page descriptions or markdown image references that flow into generate_image()). Exploitation is limited to reading files that PIL can decode as an image (PNG, JPEG, GIF, TIFF, etc.) and that reside in a directory whose absolute path begins with the same prefix string as the configured upload_folder - for example, if uploads is '/var/app/uploads', then '/var/app/uploads_secret/' or '/var/app/uploads.bak/' are reachable, but unrelated paths like '/etc/passwd' are not (this variant does not yield arbitrary-file-read of text files).

Impact

CVSS 4.0 scores this 8.7 with vector AV:N/AC:L/AT:N/PR:N/UI:N and VC:H (high confidentiality impact, no integrity or availability impact), reflecting network-reachable, unauthenticated, low-complexity exploitation that leaks file contents. Publicly available exploit code (GitHub issue #429 and PR #430) elevates real-world risk, and the issue was reported by VulnCheck, indicating analyst-grade triage. The vulnerability is not listed in CISA KEV and no EPSS score was provided, so widespread automated exploitation is not confirmed; given Banana Slides' relatively small deployment footprint, exploitation is plausible but likely opportunistic rather than mass-scale. The impact is bounded - only files PIL can open as images are leaked, not arbitrary text/source code - which somewhat constrains the practical blast radius compared to a generic arbitrary-file-read.

Exploit ScenarioDerived

An unauthenticated attacker submits a page description containing a crafted markdown image reference such as '/files/../uploads_secret/flag.png' (or any sibling directory whose name shares the 'uploads' prefix). The AI service resolves this path, the flawed startswith() check passes, and PIL Image.open() reads the targeted image-format file and incorporates it as a reference image, leaking its contents back through the image-generation flow. A public PoC is available in the linked GitHub issue.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv3 – Jun 01, 2026

Path traversal in Banana Slides through 0.4.0 allows unauthenticated remote attackers to read arbitrary image-format files outside the uploads directory via the generate_image() function in the AI service backend. The flaw stems from an incomplete prefix check using os.path.startswith() without a trailing separator, letting sibling directories whose names share the uploads folder prefix bypass containment. Publicly available exploit code exists (GitHub issue #429), and a vendor patch has been released in commit e8bc490.

Earlier versions of this analysis (2)
v2 Jun 01, 2026 - 21:28 cvss changed CVSS 8.7

Path traversal in Banana Slides through 0.4.0 lets remote unauthenticated attackers read arbitrary image-format files outside the uploads directory by embedding crafted markdown image references in page descriptions. The flaw stems from a defective os.path.startswith() prefix check that treats sibling directories sharing the uploads-folder name prefix (e.g. uploads_secret/) as in-scope, and publicly available exploit code exists via the VulnCheck advisory and the upstream GitHub issue/PR.

v1 Jun 01, 2026 - 20:51 CVSS 7.5

Path traversal in Banana Slides through 0.4.0 lets unauthenticated remote attackers read arbitrary image-format files outside the uploads directory by abusing the generate_image() function in the AI service backend. The flaw stems from an incomplete prefix check using os.path.startswith() without a trailing separator, allowing sibling directories that share the uploads folder name prefix to bypass confinement. Publicly available exploit code exists via the project's GitHub issue tracker, and a vendor patch has been released in commit e8bc490.

RemediationAI

Upstream fix available (commit e8bc490 via PR #430); a released patched version beyond 0.4.0 is not independently confirmed, so operators should deploy the fixed commit directly from https://github.com/Anionex/banana-slides/commit/e8bc490ec8b4b657e07dc3ab4e94fbedcaade421 or a build that includes it - the fix replaces the prefix check with os.path.realpath() plus os.path.commonpath() and switches existence check to os.path.isfile(). Until the patched code is deployed, restrict network access to the Banana Slides backend so only trusted users can submit page descriptions or markdown image references, and avoid placing sensitive image-format files in directories whose names share a prefix with the uploads folder (the trade-off is that this only mitigates the specific sibling-prefix variant, not symlink or '..' traversal). Reviewing logs for '/files/' references containing '..' or unexpected sibling paths can help detect exploitation attempts.

Affected VersionsENISA

banana-slides patch: e8bc490ec8b4b657e07dc3ab4e94fbedcaade421
banana-slides 0 ≤0.4.0

Affected Packages

euvd banana_slides no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Banana Slides is a Python-based slide generation application with an AI service backend (backend/services/ai_service.py) that processes user-supplied markdown image references of the form '/files/<path>'. The vulnerable code resolved these references against the configured upload_folder using os.path.abspath() and then validated containment with local_path.startswith(os.path.abspath(upload_folder)). Because the check omitted a trailing path separator, a path like '/uploads_secret/flag.png' satisfies startswith('/uploads') and bypasses confinement - a classic CWE-22 (Path Traversal) instance. The resolved path is then passed to PIL Image.open(), so any file that PIL can decode as an image format is exposed to the attacker through the AI image-generation pipeline.

Know when Banana Slides gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck) · only source for this CVE.

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

3
Analysis Updated
Jun 01, 2026 - 21:28 vuln.today
v3 - CVSS changed
Analysis Updated
Jun 01, 2026 - 21:28 vuln.today
v2 - CVSS changed
CVSS changed
Jun 01, 2026 - 21:22 NVD
7.5 (HIGH) 8.7 (HIGH)

DescriptionCVE.org

Banana Slides through 0.4.0, patched in commit e8bc490, contains a path traversal vulnerability in the generate_image() function within the AI service backend that allows unauthenticated attackers to read arbitrary image-format files outside the intended uploads directory by exploiting an incomplete path prefix check using os.path.startswith() without a trailing separator. Attackers can supply crafted markdown image references in user-controlled page descriptions that resolve to sibling directories whose names share the uploads folder prefix, bypassing the directory confinement check and causing the application to read files from unintended locations via PIL Image.open().

Executive ViewAI

Why It Matters

Banana Slides through version 0.4.0 is vulnerable to an unauthenticated path traversal attack allowing remote attackers to read arbitrary image files outside the intended uploads directory, creating direct risk of sensitive data disclosure. Publicly available exploit code exists, meaning internet-facing deployments face active exploitation risk. Organizations must patch immediately to prevent unauthorized access to proprietary visual assets and confidential content.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 68% exploitable
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy