TavernKeeper Scan Report

IceFog72/SillyTavern-ProbablyTooManyTabs

Commit fe9e44b 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 8 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
theme-engine.js:156

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
layout-math.js:14

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
colorizer-helpers.js:34

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
pane.js:361
Contextual expected matches (4)

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

The tool saw both a network request and something that can change program behavior, and flagged the combination. In reality, the extension only fetches the user's own saved color themes from the local SillyTavern server and applies the colors to the interface; it never runs downloaded data as code. The behavior-tweaking code is a short-lived trick to keep the color pickers in sync, not hidden execution.

Technical evidence

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

Contextual assessment: The file does contain both a network retrieval (a same-origin POST to the local SillyTavern settings API to read the user's saved theme list) and constructs a scanner treats as execution sinks, but no retrieved data is executed as code. The fetched response is used only to locate a named theme and copy its color strings into CSS custom properties and color-picker attributes. The other flagged constructs are a temporary per-element override of the change-event dispatch method (reverted on the next animation frame, scoped to one picker element) and writes to style properties, neither of which executes fetched content. The fetch wrapper that intercepts theme-save requests only appends theme color keys to the outgoing request body on the same origin. All flows are same-origin, match the stated theme-integration purpose, and involve no untrusted content reaching a code-execution path.

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
theme-colors.js:182-354

JavaScript analysis reported javascript.xray.unsafe-regex

Expected behavior · medium confidence

A pattern used to read color values from the browser was flagged as potentially slow on hostile input. The input is always a short, standardized color string produced by the browser itself, so there is no realistic way for anyone to make it hang.

Technical evidence

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

Contextual assessment: The flagged regexes parse browser-computed color strings. Their inputs are produced by the CSS engine via a computed-style read on a temporary element, which yields short, normalized rgb/rgba/color() or hex strings rather than arbitrary attacker-controlled text. While the alternation-heavy patterns are not linear-time, the bounded and well-formed input space makes catastrophic backtracking implausible, and no attacker-controlled path to these regexes is demonstrated. At worst a malformed computed color would cause a quick failed match, not a hang.

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
production
Source
theme-colors.js:139

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · high confidence

A scanner thought the code might be deliberately hidden or disguised. Reading the actual file shows completely normal, readable code that builds settings checkboxes and saves user preferences. Nothing is hidden or disguised.

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 raised a low-confidence obfuscation signal, but the supplied source is plain, readable, idiomatic JavaScript: ES module imports, DOM construction helpers, checkbox change handlers, and settings persistence. There is no encoded payload, eval-style execution, string assembly of code, or concealment of any kind. The flagged representation is the raw source at transform depth 0, so the signal is a false positive on ordinary code. All behavior shown matches the extension's stated layout-management purpose: it toggles column visibility, moves a background element, validates CSS dimension input, and persists settings.

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
layout-editor/SettingsPanel.js:1

Gitleaks reported generic-api-key

Expected behavior · high confidence

A secret-scanning tool flagged what looked like an API key, but the flagged text is just an internal setting name used by the extension's own checkbox logic. There is no password or key in this file.

Technical evidence

Scanner reason: Gitleaks matched secret-detection rule generic-api-key. The match applies to this repository.

Contextual assessment: The credential scanner matched a generic API-key pattern on the flagged line, but the supplied source at that location contains only a comparison of a settings key identifier string against a layout setting name followed by calls to DOM-rearrangement helpers. No secret, token, password, or credential literal appears anywhere in the provided source or expansions. The matched value is an internal settings key name, not an authentication credential, and no data flow sends credentials anywhere.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
gitleaks 8.30.1
Rule
generic-api-key
File role
production
Source
layout-editor/SettingsPanel.js:40

Coverage and limitations

JavaScript coverage

Tools

Limitations

Technical scan identity