TavernKeeper Scan Report

mattjaybe/SillyTavern-EchoChamber

Commit 284d028 Reviewed

No material or immediate-danger concern was identified in this review.

This advisory report describes what the named tools and review process found at one exact commit. Unknown or unobserved behavior may still exist.

0 immediate danger 0 material 5 low

What this review found

No material or immediate-danger item was identified.

Minor cautions

JavaScript analysis reported javascript.xray.unsafe-regex

Minor caution · medium confidence

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.

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.xray.unsafe-regex
File role
production
Source
index.js:2405
Contextual expected matches (3)

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · medium confidence

The scanner flagged network URLs, but the only URLs visible in the code are standard local model backend addresses (Ollama on port 11434, LM Studio on port 1234) that match the extension's stated purpose of connecting to local LLM services. There is no evidence of communication with any external or suspicious endpoint.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.

Contextual assessment: Detailed technical wording was omitted by the public report safety filter.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.xray.shady-link
File role
production
Source
index.js:26

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · medium confidence

The scanner thought the code might be obfuscated, but the visible code is clearly readable with plain variable names, comments, and standard JavaScript patterns. The signal appears to be a false positive from the file's large size and IIFE wrapper pattern.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. The match applies to this repository.

Contextual assessment: The obfuscated-code signal has low scanner confidence and was likely triggered by the IIFE wrapper '(function () { ... })()' or the file's length (1618 lines). The visible source is plainly readable: it uses descriptive constant names (MODULE_NAME, EXTENSION_NAME), clear default settings objects, standard jQuery DOM manipulation, and explicit comments throughout. There is no minification, encoding, string obfuscation, or concealed logic visible in the supplied evidence.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.xray.obfuscated-code
File role
production
Source
index.js:1

JavaScript analysis reported javascript.download-to-execution

Expected behavior · medium confidence

The scanner noticed that the file has both network calls and code execution features, which is normal for a SillyTavern extension that talks to local AI model servers and updates the on-screen chat panel. The visible code shows no evidence of downloading and running arbitrary code.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution. The match applies to this repository.

Contextual assessment: The download-to-execution correlation spans the entire 1618-line file and reflects the coexistence of network primitives (expected for calling local LLM APIs per the project's stated backend-support purpose) with DOM manipulation sinks (jQuery.append, addEventListener, setTimeout). In a SillyTavern extension of this size, having both fetch-style network calls and dynamic DOM updates is expected and proportionate to the stated purpose. The supplied evidence window (first ~200 lines) shows no eval(), new Function(), script injection from remote sources, or any data flow from network responses into code execution sinks. No concrete attacker-controlled trigger or untrusted-input path to code execution is demonstrated.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.download-to-execution
File role
production
Source
index.js:4-1618

Related contextual observations

Local API key setting follows expected SillyTavern extension pattern

low risk · medium confidence

The extension stores an API key field that defaults to empty, which is a normal pattern for SillyTavern extensions that optionally connect to local LLM backends. The key is user-provided and stays local to the extension's settings.

Technical assessment

The defaultSettings object includes an 'openai_key' field initialized to an empty string. This is a standard pattern for SillyTavern extensions that support OpenAI-compatible local backends (e.g., LM Studio). The key defaults to empty, is stored in the extension's local settings object, and is used for the stated purpose of authenticating to a user-configured local model endpoint. No exfiltration or transmission of this key to any external destination is visible in the supplied evidence.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

Coverage and limitations

JavaScript coverage

Tools

Limitations

Technical scan identity