TavernKeeper Scan Report

mkrrussell0411-star/Character-stats-extension

Commit 75100e0 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 3 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:728
Contextual expected matches (1)

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · high confidence

The code is plain, readable JavaScript for a character stats extension. There is no hidden or scrambled code. The security scanner's obfuscation alert appears to be a false positive caused by normal coding patterns like wrapping the extension in a self-invoking function.

Technical evidence

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

Contextual assessment: The supplied source is a clearly readable, well-commented IIFE-based SillyTavern extension. Variable names are descriptive, comments are present throughout, and console.log statements use readable labels. There are no encoded strings, eval calls, dynamic code construction, or minified blobs. The fetch wrapper intercepts generation requests to inject stat text into prompts, which matches the stated project purpose. The JS-X-Ray obfuscation signal at line 1 is a low-confidence static heuristic match with no corroborating evidence in the actual source; the IIFE wrapper and optional-chaining patterns are standard extension structure, not obfuscation.

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

Related contextual observations

Fetch wrapper intercepts generation requests to inject stats, matching stated purpose

low risk · high confidence

The extension intercepts AI generation requests to add character stat information into the prompt, which is exactly what the documentation says it should do. It does not send data anywhere unexpected.

Technical assessment

The fetch wrapper overrides window.fetch, identifies generation requests by URL pattern and POST method, parses the JSON body, and appends a stats summary plus an instruction prompt for the AI. It then forwards the modified request to the original fetch. This is consistent with the README's documented prompt injection and auto-update features. No credentials are read or exfiltrated; the modification is local and proportionate to the stated purpose.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

Coverage and limitations

JavaScript coverage

Tools

Limitations

Technical scan identity