Junglewise Threat Intelligence

CVE-2026-34523: SillyTavern path traversal in static file route handler

CVE-2026-34523 · Severity: medium · CVSS 5.3 · Published 2026-04-02

Technologies: Sillytavern. Vendors: npm.

Executive brief

SillyTavern is a web-based frontend for AI language models. An unauthenticated attacker can exploit a path traversal vulnerability to determine whether arbitrary files exist on the server's filesystem by observing HTTP response codes (404 for missing files, 403 for existing ones). While actual file contents cannot be read, this information disclosure could aid reconnaissance for further attacks targeting the server.

Technical details

The vulnerability exists in the createRouteHandler function (src/users.js:947–963) that handles all user-data static file routes. The handler decodes percent-encoded URL parameters using decodeURIComponent() and then checks file existence with fs.existsSync(path.join(directory, filePath)) without proper path boundary validation. When an attacker sends a request like /characters/%2E%2E%2F%2E%2E%2FUsers/kirakira, it decodes to ../../Users/kirakira and path.join resolves it outside the intended directory. Although res.sendFile correctly blocks actual file delivery (returning 403), the fs.existsSync check runs first, and the differing HTTP responses (404 vs 403) leak whether the file exists. Affected routes include /characters/*, /user/files/*, /assets/*, /user/images/*, /backgrounds/*, and /User%20Avatars/*. No authentication is required. The issue was patched in version 1.17.0.

Affected products

  • SillyTavern SillyTavern <= 1.16.0

Timeline

  • 2026-03-30: disclosed
  • 2026-03-28: patched: Version 1.17.0 released
  • 2026-04-01: advisory

References

Related threats