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.
A scanning tool guessed this file might contain hidden or disguised code, but the actual code shown is ordinary, clearly written interface logic for organizing tags and character folders in SillyTavern. There is nothing disguised or hidden in the supplied evidence, and it does not send data anywhere unexpected.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. The match applies to this repository.
Contextual assessment: The scanner flagged an obfuscated-code signal, but the supplied source is plainly readable ES module code with clear imports, descriptive variable and function names, and no packed strings, encoded payloads, hidden eval calls, or concealed execution. The visible data flow is confined to standard SillyTavern extension behavior: reading tag and entity state from the host application, rendering folder and character UI in the sidebar, persisting a locally hashed PIN in extension notes, and using a sessionStorage flag for private-folder visibility gating. No external destinations, covert timing, or disproportionate capabilities relative to the stated tag/folder management purpose are shown. The scanner's low confidence combined with a high severity label on transparent code indicates a false positive from the static heuristic.
The scanner suspected hidden code, but the file shown is normal, readable interface code for displaying and reordering folders. Nothing is scrambled or secret. At worst, the plugin inserts the user's own folder settings into its own interface markup, which affects only the user themselves.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. The match applies to this repository.
Contextual assessment: The scanner reports a low-confidence obfuscation signal at line 1, but the supplied source and expansions show a plainly written, self-described UI module for rendering and rearranging a folder tree via DOM manipulation, drag-and-drop handlers, and folder-management calls to sibling modules. No encoding, packing, decoder loops, or concealed logic appear in the reviewed code. Some markup is assembled with innerHTML using locally stored user-controlled folder properties (icon, color, name), which at most represents self-inflicted markup injection of the user's own data and is not the flagged candidate; folder names shown in headings are escaped. The obfuscation signal is not corroborated by the supplied evidence.
The extension asks the SillyTavern app itself to delete a character after the user confirms. It first fetches a security token from the app, then sends the delete request. Nothing downloaded is ever run as code, and the whole flow only happens when the user deliberately clicks delete and confirms. This matches what the plugin says it does.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution. The match applies to this repository.
Contextual assessment: The flagged region contains two same-origin fetch calls to the SillyTavern host server: one retrieving a CSRF token and one posting a character-delete request with that token. The responses are used only as a JSON-parsed token value and an HTTP status check; nothing from the network response is passed into any dynamic code or command execution sink, and no such sink appears in the supplied source or expansions. The action is gated behind an explicit user confirmation dialog and matches the project's documented permanent-delete feature. This is a correlation-based scanner hit, not a demonstrated download-to-execution data flow.
The scanner thought this file might hide what it does, but the code shown is ordinary, clearly written plugin code. It saves workshop sessions locally, builds prompts, and sends character details to the LLM the user already has configured—all features described in the project's readme. There is no hidden or scrambled code in what was reviewed.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. The match applies to this repository.
Contextual assessment: The scanner reports a low-confidence obfuscation signal at line 1, but the supplied source and expansions show plain, readable, commented JavaScript with normal imports, localStorage session persistence, UI rendering, and LLM prompt construction using the host's existing generation services. No encoded payloads, string-decoding routines, packed identifiers, or concealed logic are present in the reviewed code. Sending selected character-card fields to the user's active LLM is the documented Greeting Workshop feature, and the code explicitly masks the user macro to avoid leaking the real persona name. The scanner signal is not corroborated by any supplied evidence.