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.
This script is used by developers to set up their computer to work on the extension. It installs a tool called 'bun' the same way millions of people do. It never runs on a user's machine when they install the extension.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.download-and-execute.shell-pipeline. The match applies to this repository.
Contextual assessment: file is a development environment bootstrap script (not shipped to end users) that installs the bun runtime via npm with a fallback to curl-piping the official bun installer. The script is documented as bringing a 'fresh Claude Code environment up to where the repo can be worked on' and is never loaded by the Lumiverse extension; the shipped extension loads only file and dist/backend.js. The pattern is standard for developer tooling and carries no risk to SillyTavern or Lumiverse users.
This code reads an environment variable to find the web browser location for testing. It's a normal test setup step and doesn't expose any private information.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The test file reads process.env.CHROMIUM_PATH to locate a local browser binary for Playwright. This environment variable access is normal for test automation and is not used for credential theft or exfiltration. The code runs only during developer or CI test execution, not in the shipped extension.
This uses a test-only web address starting with http instead of https, which is fine because it's only used on your own computer to run automated checks of the extension's user interface.
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.
Detailed wording was omitted by the public report safety filter.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution. The match applies to this repository.
Contextual assessment: The scanner flagged a correlation between a network retrieval primitive and a dynamic code execution sink in test/ui.mjs. However, the actual content of this test file contains no network retrieval or dynamic code execution. It uses Playwright browser automation to test UI component behavior such as dropdown focus, retry pop-up lifecycle, phone panel layout, stats clock updates, and color scheme inheritance. All code is standard browser test automation with no attacker-controllable inputs or executable downloads. The imports include only node:module, node:fs, node:path, and node:zlib; no network or eval primitives are present. The flagged line range (2037-2558) consists entirely of test assertions and Playwright page interactions. This is a false positive from the static scanner.
This extension uses a collection of text patterns to detect when an AI model accidentally refuses or stops short. These patterns are normal for this kind of tool and don't access or send your data anywhere.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The unsafe-regex signal flags complex regex patterns used for model output analysis. These patterns are legitimately required for the extension's stated purpose of detecting model refusals and cut-off replies. The input is generated text, not untrusted user input, and patterns include bounded quantifiers and word boundaries to mitigate backtracking risk. No concrete ReDoS vulnerability is demonstrated.