TavernKeeper Scan Report

Lodactio/Extension-Summaryception

Commit 6a0afdc 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 5 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
connectionutil.js:461
Contextual expected matches (4)

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The flagged code is the part that talks to an AI service to get summaries. The only addresses it contacts are ones the user types into the extension's own settings, and the API key it sends is the key the user gave the extension for that exact service. Nothing is sent anywhere hidden or unexpected. This is normal, expected behavior for an extension whose whole job is calling an AI model.

Technical evidence

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

Contextual assessment: The scanner flagged a network-access signal at the SSE stream-parsing loop, but the surrounding code shows only expected connection behavior for this extension's stated purpose: it sends summarization prompts to a user-configured OpenAI-compatible endpoint, attaching a user-supplied API key as a bearer token, and routes local/private-network endpoints through SillyTavern's built-in CORS proxy. All destinations derive from settings the user enters in the extension UI (OpenAI-compatible URL, Ollama URL, connection profiles). There is no hardcoded external destination, no credential exfiltration to a third party, and no concealed data flow. Response handling only parses server-sent event chunks into response text. This matches the project's documented purpose of calling a summarizer model.

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
connectionutil.js:571

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

The scanner saw that the extension both talks to the internet and builds parts of its settings screen dynamically, and flagged the combination. In reality, the internet traffic is the extension calling your own configured AI model to summarize your chat, which is exactly what it says it does. The dynamic screen-building safely escapes the user-controlled text it displays, and nothing downloaded from the network is ever run as code. This looks like normal behavior, not a threat.

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 correlates a network retrieval primitive with a dynamic sink in the same file region, but the supplied code shows no download-to-execution data flow. The only network-facing operation visible here is the summarizer call routed through the host's configured model API, which is the extension's disclosed purpose (layered chat summarization). The DOM manipulation flagged as the execution sink consists of jQuery HTML construction for the settings and snippet-browser UI. The primary untrusted value in that HTML, snippet text, is passed through an escape helper that uses textContent assignment before insertion, so it is not evaluated as markup or script. The remaining interpolated values are internal numeric counters, labels, and settings-derived strings, not network-retrieved content, and no retrieved data reaches an eval-like sink or is executed as code. There is no demonstrated path from the network response to code execution.

Impact: none · Exploitability: unlikely

Developer action: None required for security. As defense-in-depth, the numeric and metadata fields interpolated into the snippet-browser markup could also be routed through the same escaping helper, since they originate from persisted chat metadata.

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:1809-2708

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · high confidence

An automated scanner guessed this file might contain disguised code, but the actual code is fully readable with clear comments and descriptive names. There is nothing hidden, scrambled, or acting in secret. This looks like a false positive triggered by the file's stylistic formatting, not by any real concealment.

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 reported a low-confidence obfuscation signal at the top of the file, but the supplied source is plain, readable, well-commented JavaScript: explicit imports, named constants, documented default settings, and straightforward logic for message ghosting, retry handling, and settings persistence. There are no encoded strings, packed eval-style constructs, hidden payloads, or minimized/transformed code that would conceal behavior. Nothing in the visible data flow goes beyond the extension's stated purpose (summarizing chat turns via a configured model connection and hiding already-summarized messages using SillyTavern's native commands).

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 just the standard address for a local Ollama AI setup running on the user's own computer. The extension uses it to talk to the user's own local AI for summarizing chat history, and the user can see and change this address in the settings. Nothing is being secretly sent to an outside server.

Technical evidence

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

Contextual assessment: The scanner's shady-link signal corresponds to the repeated literal localhost Ollama endpoint URL appearing in default settings and as a fallback value in the connection-settings UI and model-refresh logic. This is a loopback address on the user's own machine, matching the extension's stated purpose of calling a local Ollama instance for summarization. The URL is editable through a visible settings panel, is not obfuscated, and no evidence shows traffic sent to any hardcoded external destination. The extension also supports a user-supplied OpenAI-compatible endpoint and key, but both are entered and stored by the user in the visible UI, with the key used only for the user-configured connection test and summarization calls, which is proportionate to the project's purpose.

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

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity