TavernKeeper Scan Report

starlitcode/Lumiverse-Auto-Retry

Commit 1a3e5f6 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 9 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
test
Source
test/ui.mjs:1163
Deterministic technical evidence (3)
  • OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval · opengrep 1.26.0

    This technical signal is not part of the shipped runtime behavior.

    Policy reason: owned-inert-tooling · Execution scope: test-documentation-data

    Source: test/prompt-viewer.test.ts:40

  • OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval · opengrep 1.26.0

    This technical signal is not part of the shipped runtime behavior.

    Policy reason: owned-inert-tooling · Execution scope: test-documentation-data

    Source: test/refusal-note.test.ts:43

  • OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval · opengrep 1.26.0

    This technical signal is not part of the shipped runtime behavior.

    Policy reason: owned-inert-tooling · Execution scope: test-documentation-data

    Source: test/word-swaps.test.ts:72

Contextual expected matches (5)

OpenGrep reported tavernkeeper.download-and-execute.shell-pipeline

Expected behavior · high confidence

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.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
opengrep 1.26.0
Rule
tavernkeeper.download-and-execute.shell-pipeline
File role
production
Source
setup.sh:40

JavaScript analysis reported javascript.xray.serialize-environment

Expected behavior · high confidence

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.

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.serialize-environment
File role
test
Source
test/ui.mjs:287

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

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.

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
test
Source
test/ui.mjs:234

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

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.

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
test
Source
test/ui.mjs:2037-2558

JavaScript analysis reported javascript.xray.unsafe-regex

Expected behavior · medium confidence

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.

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.unsafe-regex
File role
generated
Source
dist/frontend.js:764

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity