Fixed in SillyTavern 1.18.0: a user-provided URL is no longer reflected in the HTTP response body.
src/middleware/corsProxy.js:40When 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.
GET /proxy/:url(*)Reflected XSS in CORS proxy error responsesrc/middleware/corsProxy.js:40src/middleware/corsProxy.js:40This issue enables script execution in the victim context and can compromise session or data integrity.
An attacker may run arbitrary JavaScript in the victim context, steal tokens, and manipulate user-visible behavior.
{
"cwe_ids": [
"CWE-79"
],
"github_reviewed": true,
"github_reviewed_at": "2026-05-12T22:23:56Z",
"nvd_published_at": "2026-05-29T19:16:24Z",
"severity": "MODERATE"
}