Skip to main content
Vulnerability Database/CVE-2026-94049

CVE-2026-94049: slideshot Path Traversal Vulnerability

CVE-2026-94049 is a path traversal vulnerability in slideshot up to version 4.4.0 affecting the render_slides function. Attackers can manipulate the htmlPath argument to access unauthorized files. This article covers technical details, affected versions, impact assessment, and mitigation strategies.

Published:

CVE-2026-94049 Overview

CVE-2026-94049 is a path traversal vulnerability [CWE-22] in the 06ketan slideshot project through version 4.4.0. The flaw resides in the render_slides function within packages/cli/src/renderer.ts, where the htmlPath argument is not properly sanitized. An attacker can manipulate this argument to access files outside the intended directory. The issue is exploitable remotely, and a public exploit has been released. The maintainer was notified through an issue report but has not responded at the time of publication.

Critical Impact

Remote attackers can read arbitrary files accessible to the process by supplying crafted htmlPath values to render_slides, leading to disclosure of source code, configuration, or credentials.

Affected Products

  • 06ketan slideshot versions up to and including 4.4.0
  • Component: packages/cli/src/renderer.ts
  • Function: render_slides

Discovery Timeline

  • 2026-09-20 - CVE-2026-94049 published to NVD
  • 2026-09-21 - Last updated in NVD database

Technical Details for CVE-2026-94049

Vulnerability Analysis

The vulnerability affects the CLI renderer component of slideshot, a Node.js/TypeScript utility. The render_slides function accepts an htmlPath argument that is used to load HTML input for slide rendering. Because the function does not validate or canonicalize the supplied path, attackers can inject relative traversal sequences such as ../ to reference files outside the intended working directory.

The attack requires network reachability to whatever service or workflow invokes render_slides with user-controlled input. Successful exploitation exposes files readable by the process user, which may include application source, environment files, and other sensitive artifacts on the host.

Additional technical context is available in the VulDB entry for CVE-2026-94049 and the upstream GitHub Issue #18 for Slideshot.

Root Cause

The root cause is missing input validation on the htmlPath parameter passed to render_slides in packages/cli/src/renderer.ts. The function trusts caller-supplied path data and resolves it directly against the filesystem without enforcing a base directory or rejecting traversal sequences. This is a classic Improper Limitation of a Pathname to a Restricted Directory weakness [CWE-22].

Attack Vector

An attacker supplies a crafted htmlPath value containing directory traversal segments to any interface, script, or wrapper that forwards untrusted input into render_slides. Because the exploit has been publicly disclosed, opportunistic scanning against exposed deployments is plausible. Exploitation requires low privileges and no user interaction.

No verified exploit code is reproduced here. Refer to the GitHub repository for Slideshot for source context.

Detection Methods for CVE-2026-94049

Indicators of Compromise

  • Requests or CLI invocations containing ../, ..\, URL-encoded traversal sequences (%2e%2e%2f), or absolute paths in the htmlPath parameter.
  • Unexpected read access by the slideshot process to files such as /etc/passwd, .env, private keys, or files outside the project workspace.
  • Application logs referencing render_slides invocations with paths outside the configured content directory.

Detection Strategies

  • Instrument the render_slides call site to log the resolved absolute path and flag any resolution that escapes the intended base directory.
  • Deploy web application firewall or reverse-proxy rules that detect path traversal patterns in parameters forwarded to the CLI.
  • Use file integrity and access monitoring on hosts running slideshot to alert on reads of sensitive files by the Node.js process.

Monitoring Recommendations

  • Monitor process telemetry for the slideshot CLI reading files outside its working directory.
  • Alert on repeated failed or successful file access attempts correlated with the slideshot service account.
  • Review CI/CD pipelines and web-facing wrappers that expose render_slides to external inputs.

How to Mitigate CVE-2026-94049

Immediate Actions Required

  • Restrict or disable network exposure of any endpoint that forwards untrusted input to render_slides until a fix is available.
  • Apply an input validation layer that rejects htmlPath values containing traversal sequences or absolute paths.
  • Run the slideshot process under a least-privilege account with filesystem access limited to the intended content directory.

Patch Information

At the time of publication, the maintainer of 06ketan/slideshot has not published a fix in response to the disclosed issue. Track the GitHub Issue #18 for Slideshot and the project repository for updates. Until an upstream patch is released, apply the workarounds below.

Workarounds

  • Canonicalize the resolved path with path.resolve() and verify it begins with the allowed base directory before reading the file.
  • Reject any htmlPath value containing .., null bytes, or absolute path prefixes.
  • Enforce an allowlist of permitted file names or extensions where render_slides accepts input.
  • Use OS-level sandboxing (containers, chroot, AppArmor, or SELinux) to constrain the filesystem view of the slideshot process.
bash
# Configuration example: constrain slideshot with a dedicated user and bind-mounted content directory
docker run --rm \
  --read-only \
  --user 10001:10001 \
  --tmpfs /tmp \
  -v /srv/slideshot/content:/app/content:ro \
  slideshot:4.4.0 render --htmlPath /app/content/deck.html

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.