A crafted input might briefly slow or freeze the local client, without showing broader security harm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.
Impact: low · Exploitability: plausible
Developer action: Bound the input length or replace the expression when practical.
The code is plain, readable JavaScript for a character stats extension. There is no hidden or scrambled code. The security scanner's obfuscation alert appears to be a false positive caused by normal coding patterns like wrapping the extension in a self-invoking function.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. The match applies to this repository.
Contextual assessment: The supplied source is a clearly readable, well-commented IIFE-based SillyTavern extension. Variable names are descriptive, comments are present throughout, and console.log statements use readable labels. There are no encoded strings, eval calls, dynamic code construction, or minified blobs. The fetch wrapper intercepts generation requests to inject stat text into prompts, which matches the stated project purpose. The JS-X-Ray obfuscation signal at line 1 is a low-confidence static heuristic match with no corroborating evidence in the actual source; the IIFE wrapper and optional-chaining patterns are standard extension structure, not obfuscation.
The extension intercepts AI generation requests to add character stat information into the prompt, which is exactly what the documentation says it should do. It does not send data anywhere unexpected.
Technical assessment
The fetch wrapper overrides window.fetch, identifies generation requests by URL pattern and POST method, parses the JSON body, and appends a stats summary plus an instruction prompt for the AI. It then forwards the modified request to the original fetch. This is consistent with the README's documented prompt injection and auto-update features. No credentials are read or exfiltrated; the modification is local and proportionate to the stated purpose.