TavernKeeper Scan Report

Arif-salah/Megumin-Suite

Commit c60255b 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 11 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:9504

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:7903
Contextual expected matches (5)

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

The code checks whether local image files exist in the extension folder and uses jQuery to update the user interface. There is no pattern of downloading remote code and executing it. The scanner flagged the coexistence of a network call and a code-execution-like keyword, but the actual data flow is benign UI behavior typical of SillyTavern extensions.

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 or command execution sink in the same file region (lines 855-1262). Examining the actual code: the only network retrieval is fetch() with method HEAD targeting local static image files within the extension folder (extensionFolderPath/img/defaultN.png) to count available default images. The dynamic execution sinks are standard jQuery DOM manipulation methods such as .html() and .css(), plus new RegExp() construction from escapeRegex()-sanitized NPC name tokens. No remote code is fetched, parsed, or executed. The data flow from fetch to any execution sink is absent. The RegExp construction uses escapeRegex() to sanitize input. jQuery .html() calls use template literals populated with extension-controlled values (token counts, preset descriptions), not remote content. This is expected behavior for a SillyTavern extension UI.

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
index.js:855-1262

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

The scanner saw a network request and worried it might lead to running downloaded code. In reality, the network request is just checking whether the extension's own bundled image files exist. There is no downloading and running of code.

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 flags a correlation between a network retrieval primitive and a code execution sink within the same file representation. Reviewing the actual code in the cited range (lines 1010-1475), the only network primitive present is `fetch` inside `discoverDefaultImages()`, which issues HEAD requests to `${extensionFolderPath}/img/default${i}.png` to probe for locally bundled image assets. No dynamic code execution sink (`eval`, `new Function`, `setTimeout`/`setInterval` with string arguments, `script` injection) is present in the supplied code. The remaining code performs DOM manipulation, profile persistence via SillyTavern APIs, token estimation, and chat-text cleaning. There is no data flow from any network response into a code execution sink. The scanner correlation is a false positive.

Impact: none · Exploitability: unlikely

Developer action: No change warranted. The fetch calls are benign local asset checks with no code-execution sink in the reviewed range.

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
index.js:1010-1475

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · high confidence

The code is clearly written and readable. There is no obfuscation, hidden logic, or encoded content. The scanner flag appears to be a false positive triggered by the file's structure or size rather than any actual concealment technique.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. 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.obfuscated-code
File role
production
Source
index.js:1

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The flagged link is the local ComfyUI address used for the extension's built-in image generation feature. It only connects to the user's own local ComfyUI instance and matches what the project documentation describes. No suspicious or hidden external destinations were found.

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
production
Source
index.js:332

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · high confidence

The flagged file is just a plain text parser with clear comments. It reads AI chat messages and pulls out structured sections like world state and NPC data. There is nothing hidden or suspicious in the code.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. 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.obfuscated-code
File role
production
Source
src/sidepanel/parsers.js:1

Related contextual observations

jQuery .html() used with template-literal UI content

low risk · medium confidence

The extension inserts calculated token counts and preset names into the UI using jQuery's HTML method. Since the data comes from the extension's own logic and not from untrusted external sources, this is normal UI behavior with minimal risk.

Technical assessment

jQuery .html() is used with template literals containing extension-computed values (token estimates, profile level labels) rather than remote or user-controlled HTML. While .html() is technically a DOM execution sink, the inputs are internally generated numeric and string constants, not attacker-controlled data. The risk is minimal in this context.

Impact: low · Exploitability: unlikely

Developer action: No change required. If desired, consider using textContent or a sanitizing helper for dynamic UI strings as a defense-in-depth measure.

Sources:

Large inline prompt template strings may trigger static analysis heuristics

low risk · medium confidence

The file contains long prompt template strings for AI features. These are clearly readable text, not hidden or encoded code, and are a normal part of how the extension communicates with AI models.

Technical assessment

The large DEFAULT_PROMPTS object at the top of the file contains extensive multi-line string literals for AI prompt templates. These strings may have triggered the scanner's obfuscation heuristic due to their length and density, but they are plain-text prompt content with no executable or encoded logic.

Impact: none · Exploitability: unlikely

Developer action: No action required for security. Optionally, splitting the large DEFAULT_PROMPTS object into a separate data file would improve maintainability but is not a security concern.

Sources:

Local ComfyUI API calls are user-configured and match stated project purpose

low risk · high confidence

The extension contacts the local ComfyUI image generator using an address the user can configure. This is normal for an extension whose stated purpose includes ComfyUI image generation.

Technical assessment

The fetch calls to the ComfyUI history and view endpoints use the user-configured comfyUrl from extension settings, defaulting to localhost:8188. This is the expected data flow for retrieving generated images from a local ComfyUI instance and matches the project's documented Kazuma ComfyUI image generation feature.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

Unicode emoji regex patterns may have triggered obfuscation scanner

low risk · high confidence

The emoji and special Unicode patterns are used to identify section headings in AI-generated text. They are normal and expected for this kind of parser.

Technical assessment

The ICON_TO_LABEL array and the classify function use emoji regex patterns to match section headers the AI emits in structured blocks. Unicode property escapes like p{Extended_Pictographic} and p{Emoji} are standard modern JS regex features for matching emoji. These are the likely trigger for the obfuscation scanner but are legitimate parsing logic with no security relevance.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

Coverage and limitations

JavaScript coverage

Tools

Limitations

Technical scan identity