TavernKeeper Scan Report

skirianov/sidecar-ai

Commit 9c43252 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.

Contextual expected matches (4)

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

This file does not download anything from the internet or run any dynamically loaded code. It only manages the settings interface. The security alert was a false alarm.

Technical evidence

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

Contextual assessment: The file contains no network retrieval primitives (fetch, XMLHttpRequest) and no dynamic code execution sinks (eval, Function, setTimeout with string). DOM manipulation (innerHTML) is present but used with controlled data from the addon manager; this does not constitute a download-to-execution pattern. The scanner correlation is a false positive; the file only handles UI event binding and rendering.

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
src/settings-ui.js:136-1150

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · high confidence

This file is a normal settings panel with no hidden or scrambled code. The security scanner mistakenly thought it was obfuscated, but the code is clear and readable.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code in this repository.

Contextual assessment: The file file is a plain, well-structured ES module class with no obfuscation. The static analysis rule flagged obfuscated code, but the source code contains no encoded strings, packed code, or concealed identifiers. The scanner signal is a false positive; the code is transparent and functionally appropriate for its UI role.

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/settings-ui.js:1

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

The extension loads its own settings page from a file that comes with it, not from the internet or from user input. This is a normal and expected action for a settings panel.

Technical evidence

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

Contextual assessment: The loadSettingsHTML function fetches a local settings.html file from the extension's own directory and injects it into the DOM. The file path is derived from the extension's import.meta.url, not from user input or external sources. This is the standard mechanism for loading a bundled settings panel in SillyTavern extensions. The injection sink only processes the extension's own static HTML, so no attacker-controlled content reaches the sink. Dynamic imports use hardcoded relative paths to the extension's source modules, which is normal module loading. No evidence of network retrieval from untrusted origins or execution of untrusted code.

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:54-128

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

This extension makes calls to AI services like OpenAI or Anthropic to run sidecar tasks. It uses fetch to send prompts to the AI and get results back—exactly what you'd expect from an AI-powered tool. There's no hidden code execution or secret behavior.

Technical evidence

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

Contextual assessment: The fetch calls in this file (e.g., around line 900 in sendDirectAPIFallback) send HTTP requests to well-known AI provider endpoints (OpenAI, OpenRouter, Anthropic, etc.) or to a user-configured custom URL. No dynamic code-execution sink (eval, new Function, dynamic import) is present in the supplied evidence. The extension's stated purpose is to send prompts to AI models via provider APIs, and the fetch usage is directly proportionate to that goal. The scanner heuristic flagged co-occurrence of network retrieval and potential code execution, but no actual code-execution sink is demonstrated in the provided code.

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
src/ai-client.js:454-1040

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity