Every CVE Search/ Get API key

CVE-2026-44651

SillyTavern: Reflected XSS vulnerability in the CORS proxy middleware

6.9 MediumFix available

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 1.18.0, when fetch(url) throws, the code sends: res.status(500).send('Error occurred while trying to proxy to: ' + url + ' ' + error). The url value is attacker-controlled (req.params.url) and is not HTML-escaped before rendering. This vulnerability is fixed in 1.18.0.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
Low
Integrity
Low
Availability
None

Exploit likelihood

0.32%Up 0.3 points since May 30, 2026
90%50%10%1%

What each source reports

CVE List Score used 6.9

SillyTavern: Reflected XSS vulnerability in the CORS proxy middleware

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 1.18.0, when fetch(url) throws, the code sends: res.status(500).send('Error occurred while trying to proxy to: ' + url + ' ' + error). The url value is attacker-controlled (req.params.url) and is not HTML-escaped before rendering. This vulnerability is fixed in 1.18.0.

Record
CVE-2026-44651
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-79
Updated
2026-11-02
EUVDEUVD-2026-33405 6.9

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 1.18.0, when fetch(url) throws, the code sends: res.status(500).send('Error occurred while trying to proxy to: ' + url + ' ' + error). The url value is attacker-controlled (req.params.url) and is not HTML-escaped before rendering. This vulnerability is fixed in 1.18.0.

Record
EUVD-2026-33405
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-xc4x-2452-5gc9 6.9

SillyTavern has a reflected XSS vulnerability in the CORS proxy middleware

Resolution

Fixed in SillyTavern 1.18.0: a user-provided URL is no longer reflected in the HTTP response body.

Overview

  • Vulnerability Type: XSS
  • Affected Location: src/middleware/corsProxy.js:40
  • Trigger Scenario: reflected XSS in CORS proxy error response

Root Cause

When fetch(url) throws, the code sends: res.status(500).send('Error occurred while trying to proxy to: ' + url + ' ' + error). The url value is attacker-controlled (req.params.url) and is not HTML-escaped before rendering.

Source-to-Sink Chain

  1. Source (user-controlled input)
  • Entry point: GET /proxy/:url(*)
  1. Data flow
  • Code analysis shows concrete propagation into this sink:
    • vulnerability title: Reflected XSS in CORS proxy error response
    • sink location reached by attacker-controlled input: src/middleware/corsProxy.js:40
  • The same sink behavior is confirmed by controlled execution observations.
  1. Sink (dangerous operation)
  • Sink location: src/middleware/corsProxy.js:40
  • Vulnerable behavior: reflected XSS in CORS proxy error response

Exploitation Preconditions

  1. The attacker can inject controllable content into a rendered response.
  2. The vulnerable rendering context does not apply strict output encoding/sanitization.
  3. A victim user opens the affected page or response.

Risk

This issue enables script execution in the victim context and can compromise session or data integrity.

Impact

An attacker may run arbitrary JavaScript in the victim context, steal tokens, and manipulate user-visible behavior.

Remediation

  1. Never concatenate raw user input into HTML error responses.
  2. If URL echo is required, HTML-escape it or force plain-text output.
  3. Re-enable/strengthen CSP to reduce reflected injection impact.
Record
GHSA-xc4x-2452-5gc9
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-79
Updated
2026-11-02
NVD 6.9

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 1.18.0, when fetch(url) throws, the code sends: res.status(500).send('Error occurred while trying to proxy to: ' + url + ' ' + error). The url value is attacker-controlled (req.params.url) and is not HTML-escaped before rendering. This vulnerability is fixed in 1.18.0.

Record
CVE-2026-44651
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Weakness
CWE-79
Updated
2026-11-02
OSV 6.9

SillyTavern: Reflected XSS vulnerability in the CORS proxy middleware

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 1.18.0, when fetch(url) throws, the code sends: res.status(500).send('Error occurred while trying to proxy to: ' + url + ' ' + error). The url value is attacker-controlled (req.params.url) and is not HTML-escaped before rendering. This vulnerability is fixed in 1.18.0.

Record
CVE-2026-44651
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-79
Updated
2026-11-02
OSVGHSA-xc4x-2452-5gc9 6.9

SillyTavern has a reflected XSS vulnerability in the CORS proxy middleware

Resolution

Fixed in SillyTavern 1.18.0: a user-provided URL is no longer reflected in the HTTP response body.

Overview

  • Vulnerability Type: XSS
  • Affected Location: src/middleware/corsProxy.js:40
  • Trigger Scenario: reflected XSS in CORS proxy error response

Root Cause

When fetch(url) throws, the code sends: res.status(500).send('Error occurred while trying to proxy to: ' + url + ' ' + error). The url value is attacker-controlled (req.params.url) and is not HTML-escaped before rendering.

Source-to-Sink Chain

  1. Source (user-controlled input)
  • Entry point: GET /proxy/:url(*)
  1. Data flow
  • Code analysis shows concrete propagation into this sink:
    • vulnerability title: Reflected XSS in CORS proxy error response
    • sink location reached by attacker-controlled input: src/middleware/corsProxy.js:40
  • The same sink behavior is confirmed by controlled execution observations.
  1. Sink (dangerous operation)
  • Sink location: src/middleware/corsProxy.js:40
  • Vulnerable behavior: reflected XSS in CORS proxy error response

Exploitation Preconditions

  1. The attacker can inject controllable content into a rendered response.
  2. The vulnerable rendering context does not apply strict output encoding/sanitization.
  3. A victim user opens the affected page or response.

Risk

This issue enables script execution in the victim context and can compromise session or data integrity.

Impact

An attacker may run arbitrary JavaScript in the victim context, steal tokens, and manipulate user-visible behavior.

Remediation

  1. Never concatenate raw user input into HTML error responses.
  2. If URL echo is required, HTML-escape it or force plain-text output.
  3. Re-enable/strengthen CSP to reduce reflected injection impact.
Record
GHSA-xc4x-2452-5gc9
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-79
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
sillytavern
npm
through 1.17.0
1.18.0
sillytavern
npm
before 1.18.0
1.18.0

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-44651 is a medium vulnerability (CVSS 6.9) in Sillytavern, published May 12, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.32%, the 25th percentile. Fixed in sillytavern 1.18.0.

References

MoveEnter Open