TavernKeeper Scan Report

jeppsterrr/CrossRoads

Commit 8ea2a91 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
panel.js:1426
Contextual expected matches (4)

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The flagged line is part of the code that reads streaming AI responses. The 'data:' text is the standard format for server-sent events, not a suspicious link.

Technical evidence

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

Contextual assessment: Line 267 contains `line.indexOf('data:') !== 0`, which is part of a standard SSE (Server-Sent Events) stream parser. The 'data:' prefix is the protocol-defined field prefix for SSE messages per the HTML specification. The parser reads streaming responses from OpenAI-compatible endpoints, parsing JSON deltas from each data line. There is no outbound link, redirect, or suspicious URL construction. The scanner's shady-link signal is a false positive triggered by the 'data:' string literal used in SSE parsing.

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
connection.js:267

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · high confidence

The code is clearly readable and well-documented with plain English comments. There is no obfuscation. The scanner flag is a false positive, likely triggered by SVG icon path data that looks like encoded strings to automated tools.

Technical evidence

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

Contextual assessment: Line 1 begins a standard JavaScript comment block. The file file is plainly readable source code with extensive English comments, clear variable names, and straightforward HTML template literals. The scanner's obfuscation signal at low confidence is most likely triggered by the SVG path data strings (e.g., 'M9 4H4v5M15 4h5v5') embedded in the BAR_HTML template, which can superficially resemble encoded or packed strings to static analysis. No eval, atob, String.fromCharCode chains, hex encoding, or other obfuscation techniques are present. The code is transparent and matches the stated UI-building 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.obfuscated-code
File role
production
Source
panel.js:1

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

The extension calls AI model APIs over the network, which is its core purpose. The flagged code execution is just a timeout mechanism that cancels requests after two minutes, not anything dangerous.

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 fetch() network calls with a setTimeout-based AbortController pattern in lines 36-42. The withTimeout() function creates an AbortController and sets a timer to abort the request after 120 seconds. setTimeout calling controller.abort() is a standard timeout-cancel pattern, not dynamic code execution (eval, Function, etc.). The fetch calls are to user-configured OpenAI-compatible endpoints or ST's Connection Manager profiles, matching the extension's stated purpose of connecting to AI model backends. No untrusted input flows into any code execution sink.

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
connection.js:36-42

JavaScript analysis reported javascript.xray.unsafe-regex

Expected behavior · high confidence

The regex identifies local network addresses so the extension can route them through SillyTavern's built-in proxy for CORS handling. This is a normal pattern for extensions that connect to local AI backends.

Technical evidence

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

Contextual assessment: Line 32 defines LOCAL_HOST_RE, a regex matching localhost, 127.0.0.1, private IP ranges (192.168.x.x, 10.x.x.x, 172.16-31.x.x), and similar local addresses. The regex uses alternation with bounded character classes and no nested unbounded quantifiers that would cause catastrophic backtracking (ReDoS). Its purpose is to detect local endpoints so requests can be routed through ST's /proxy/ CORS proxy, as documented in the file header. This is proportionate and expected for an extension supporting local backends like koboldcpp and LM Studio.

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.unsafe-regex
File role
production
Source
connection.js:32

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity