TavernKeeper Scan Report

THEJACKALS/SillyTavern-ImageEmbedExpressions

Commit 328afdd 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 4 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
character-presence.js:147
Contextual expected matches (3)

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The flagged links are just the standard local addresses for popular AI tools like Ollama and LM Studio that run on your own computer. The extension needs these addresses to talk to those local programs, which is exactly what it should do.

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
api-providers.js:64

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

The scanner noticed network calls and code that modifies web pages in the same file. This is normal for a browser extension: it fetches data from SillyTavern's own backend and then updates the chat display using standard web page manipulation. No dangerous code execution was found.

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 correlated network retrieval primitives with a dynamic code execution sink in the same file representation. Examining the actual code in the 2615-3247 range, the network calls are fetch() to relative SillyTavern backend endpoints such as /api/files/delete for deleting expression image files. The 'code execution' signal likely stems from standard DOM manipulation APIs (document.createTreeWalker, document.createElement, document.createTextNode, insertBefore) used to insert placeholder tokens and render expression images in chat messages. No eval(), new Function(), innerHTML with untrusted content, or similar dynamic code execution sinks are visible. The redacted function references [REDACTED_SECRET:613ec97323ea] appear to be placeholder token builders that produce string values inserted as text nodes, which is safe DOM text insertion. All network destinations are relative ST backend paths, not external endpoints.

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:2615-3247

Credential access and network transmission in one file

Expected behavior · high confidence

The extension uses your API key to authenticate with your chosen AI provider, which is its intended purpose. The key is sent either directly to the provider or through SillyTavern's own backend. No key is sent to any third party or unexpected destination.

Technical evidence

Scanner reason: A credential source and an outbound network operation were detected in the same file.

Contextual assessment: The scanner flagged co-occurrence of credential handling and network calls in the same file. The actual data flow shows the user-supplied API key is used to set Authorization Bearer headers sent to one of two destinations: (1) the official provider API endpoint via callOpenAICompatibleAPI or callAnthropicAPI (e.g., api.openai.com, api.anthropic.com), or (2) the SillyTavern backend proxy at relative paths /api/backends/chat-completions/generate and /api/backends/chat-completions/status via callOpenAICompatibleProxyAPI. Both are legitimate and proportional to the extension's stated purpose of calling AI providers for expression suggestions. The Horde anonymous key '0000000000' is a well-known public anonymous identifier. No credentials are sent to any third-party or unexpected destination. The key is stored via extension_settings and persisted locally by SillyTavern's saveSettingsDebounced.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
tavernkeeper 5
Rule
credential-exfiltration
File role
production
Source
api-providers.js:360

Coverage and limitations

JavaScript coverage

Tools

Limitations

Technical scan identity