TavernKeeper Scan Report

starlitcode/Lumiverse-Auto-Retry

Commit 53e6e50 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 14 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:3202
Deterministic technical evidence (8)
  • 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/account-writes.test.ts:49

  • 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/notifications.test.ts:41

  • 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/backend-version.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/prompt-viewer.test.ts:50

  • 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:433

  • 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/tries-at-once.test.ts:76

  • 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:365

Contextual expected matches (5)

JavaScript analysis reported javascript.xray.unsafe-regex

Expected behavior · medium confidence

The scanner saw text-matching patterns that, when written carelessly, can make a browser hang. These particular ones were written carefully: each has a hard limit on how much it can repeat, the choices inside cannot overlap, and the loops that scan text are capped. They only examine the user's own chat replies and error messages on the user's own machine. Even in a bad case, the extension would just be briefly slow, and nothing is shown that lets anyone outside the computer feed it harmful input.

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 is a static heuristic that flags repeated quantifier groups it cannot prove are linear. The visible patterns are engineered against catastrophic backtracking: every repetition is capped at a fixed maximum, the alternation branches inside the repeated groups match disjoint first characters (quoted runs versus non-quote characters, so there is nothing to backtrack between), and the tag-counting loops are explicitly capped by an iteration guard. These expressions run locally in the user's own browser over the user's own generated replies and provider error strings, entirely in service of the stated purpose of classifying how a reply ended. Even a worst-case pathological input would produce at most a transient local slowdown of the extension itself, which is a low-impact recoverable condition, and no input shown reaches these patterns from an attacker-controlled source. No data flow leaves the device, no destination beyond the host page exists, and no concrete activation path to meaningful harm is demonstrated by 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.unsafe-regex
File role
generated
Source
dist/frontend.js:929

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The scanner saw a web address of the non-secure kind and flagged it. It is a made-up address that exists only inside the project's automated tests, and the test tool answers those page loads itself instead of contacting the internet. Nothing is sent anywhere, and users of the extension never run this code.

Technical evidence

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

Contextual assessment: The flagged literals are a test-only page origin built on the reserved documentation-only hostname, used solely by the automated UI test harness. Every navigation to that origin is intercepted by the harness's catch-all request routing and fulfilled with locally generated markup, so no request ever leaves the machine. The stated purpose of the fake origin is to give the tested page a real origin so browser storage functions during checks. The occurrences are a definition plus repeated test navigations in the same automation file; there is no external destination, no data flow off the machine, and none of this is part of the extension files the host platform loads.

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:288

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

This file is the project's automated testing script. It opens its own private browser window, pokes at the extension's interface to confirm buttons, panels, countdowns, and timers behave, and checks the results. The scanner flagged it because a test that starts things and runs code resembles a program that downloads and runs code. Nothing downloaded from anywhere is being run here: the tests only run code written in the project itself, and this script is not part of what users install.

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 span is a browser-automation UI test harness. The dynamic-execution pattern the scanner matched is the test framework evaluating authored test functions inside a locally launched browser page, alongside test setup that stages a mock host interface and injects the project's own bundled source into that page. The network-retrieval and execution primitives are correlated only by coexisting in the same test representation; the supplied context shows no data flow from retrieved content into dynamic execution, no untrusted or attacker-controlled input reaching the evaluation sink, and no persistence or obfuscation. The file's role is test automation, not shipped extension code, so there is no user-facing activation path. The heuristic correlation reflects ordinary test infrastructure, not a download-to-execution chain.

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:4531-5398

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

Expected behavior · high confidence

Detailed wording was omitted by the public report safety filter.

Technical evidence

Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.download-and-execute.shell-pipeline. The match applies to this repository.

Contextual assessment: The piped installer lives in a developer environment bootstrap script, not in the extension files the platform loads for end users, so it never runs as part of installing or using the extension. Within the script it is a guarded fallback: it executes only when the build tool is already absent, a package-registry install is attempted first, the fetch is over TLS from the tool vendor's own official domain using the vendor's documented install method, the surrounding comments disclose exactly what it does, and the script subsequently verifies the tool actually exists and exits with a clear message otherwise. The generic weakness of executing an unpinned remote installer is the same supply-chain dependence shared by every unpinned toolchain dependency, and concrete harm would require prior compromise of the vendor's domain or the registry, which is not an attacker-controlled trigger supplied by this project. No unusual destination, obfuscation, concealed execution, or hidden second stage is present.

Impact: low · Exploitability: unlikely

Developer action: none

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

JavaScript analysis reported javascript.xray.serialize-environment

Expected behavior · high confidence

The scanner noticed the test script reading computer-level settings that say where a test browser program is installed. That is the normal way automated tests find the browser they drive. Nothing is copied, saved, or sent anywhere, and this test file is never delivered to people who install the extension.

Technical evidence

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

Contextual assessment: The signal comes from the browser-finding helper inside the automation test harness, which reads environment variables indicating where a Chromium executable and its download directory are located. The read values are used only to launch the local test browser, with a fallback search of standard install locations; they are never serialized, logged to any remote sink, persisted, or transmitted. No credentials or secrets are involved, the surrounding code has no outbound data path (the only network-adjacent call is a route-intercepted local page load), and this file runs only in the developer test pipeline rather than 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:352

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity