TavernKeeper Scan Report

prolix-oc/Lumiverse-SimTracker

Commit 428e063 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 18 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

Some parts of the code use patterns that could theoretically cause slowdowns with specially crafted input, but the extension only processes AI-generated data, so there is no practical risk.

Technical evidence

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

Contextual assessment: The 13 unsafe regex signals originate from the YAML parsing library. While some regex patterns could be vulnerable to ReDoS, the input comes from LLM-generated structured data and is not attacker-controlled in a meaningful way. No demonstrated exploit path.

Impact: low · Exploitability: unlikely

Developer action: Consider updating the YAML dependency to a version with hardened regex or using a limit on input size.

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
generated
Source
dist/frontend.js:1846
Deterministic technical evidence (9)
  • Dependency advisory GHSA-xhpv-hc6g-r9c6:pkg:4114756074b3c1883ca427a6 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: bun.lock

  • Dependency advisory GHSA-xjpj-3mr7-gcpf:pkg:2c93c7ce30edf86304d17bbe applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: bun.lock

  • Dependency advisory GHSA-3mfm-83xf-c92r:pkg:146840b9eb3231ae1d463c20 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: bun.lock

  • Dependency advisory GHSA-2qvq-rjwj-gvw9:pkg:bde04755dd174b8acbe6de92 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: bun.lock

  • Dependency advisory GHSA-442j-39wm-28r2:pkg:c54738cea96a333e19b8bd79 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: bun.lock

  • Dependency advisory GHSA-7rx3-28cr-v5wh:pkg:2d05cf734c06fd6d1e77b848 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: bun.lock

  • Dependency advisory GHSA-9cx6-37pm-9jff:pkg:ca52f57e7f6518348696e910 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: bun.lock

  • Dependency advisory GHSA-48c2-rrv3-qjmp:pkg:15fc6ff22ccf7f2f103da797 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: bun.lock

  • Dependency advisory GHSA-2w6w-674q-4c4q:pkg:d25708df68737694eb8e6977 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: bun.lock

Contextual expected matches (8)

OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval

Expected behavior · high confidence

The extension lets you add small scripts to your templates to make them smarter. While powerful, it's a planned feature—not a hidden security hole.

Technical evidence

Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.

Contextual assessment: The extension uses the Function constructor to execute user-defined JavaScript logic embedded in Handlebars templates. This is an intentional feature allowing template authors to include dynamic processing. The code is wrapped in a try-catch block and uses strict mode, but no sandboxing is applied beyond that. The execution is triggered only when user-selected template presets are processed.

Impact: low · Exploitability: plausible

Developer action: none (by design)

Scanner
opengrep 1.26.0
Rule
tavernkeeper.dynamic-execution.javascript-eval
File role
production
Source
src/frontend.ts:1009

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

This warning is triggered by YAML tag strings in the bundled YAML library. These are not malicious links or data leaks; they are just standard YAML identifiers. The extension uses YAML to read structured data from AI responses, which is its intended function.

Technical evidence

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

Contextual assessment: The 'shady-link' signal flagged 51 occurrences in the generated backend.js. All occurrences are within bundled YAML library code and reference standard YAML tag strings (e.g., 'tag:yaml.org,2002:str'). No external URLs, network endpoints, or data exfiltration patterns were found in the evidence. The extension legitimately parses YAML from LLM responses, and the YAML library is a standard dependency.

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
generated
Source
dist/backend.js:6798

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · high confidence

The code is minified to save space, not hidden to do anything bad. This is standard for published extensions.

Technical evidence

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

Contextual assessment: The file is a generated/minified bundle. The obfuscation signal is produced by minification, not by intentional hidden logic. This is expected for a distributed extension.

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
generated
Source
dist/frontend.js:1

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

The extension needs to fetch settings and AI responses from the server and also uses templates to show fancy cards. These are separate safe operations, nothing dangerous.

Technical evidence

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

Contextual assessment: The source code uses fetch to retrieve configuration and LLM responses from the host, and Handlebars.compile to create template functions from bundled template sources. Network data is not passed to the compilation sink; the template sources are controlled by the extension itself. No actual download-to-execution path exists.

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/frontend.ts:107-1009

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

The extension talks to the server for settings and AI, and also uses templates to display information. These are separate and safe, no dangerous combination.

Technical evidence

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

Contextual assessment: The file contains both fetch (for API calls to load config/LLM) and Handlebars.compile (for template rendering). These are not connected; network data is not passed to the code creation sink. This is normal behavior for a frontend extension using Handlebars.

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
generated
Source
dist/frontend.js:73-18308

JavaScript analysis reported javascript.xray.prototype-pollution

Expected behavior · high confidence

The extension includes safety measures to prevent prototype pollution, not introduce it.

Technical evidence

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

Contextual assessment: The code sets __proto__ to false in a whitelist, which is a standard protection against prototype pollution. No actual pollution occurs.

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.prototype-pollution
File role
generated
Source
dist/frontend.js:565

JavaScript analysis reported javascript.xray.unsafe-regex

Expected behavior · medium confidence

The warning is about complex regular expressions in the YAML library that the extension uses to read and write YAML data. While such patterns can sometimes be abused to cause slowdowns, there is no evidence that this is exploitable here. The extension works as expected.

Technical evidence

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

Contextual assessment: The 'unsafe-regex' signal flagged 9 regex patterns in the generated backend.js. These are all part of the standard YAML library used for parsing and stringifying YAML values (e.g., detecting plain scalars, timestamps, booleans). While some regex patterns could theoretically be exploited for ReDoS, the evidence does not demonstrate a controllable input path or actual vulnerability. The extension uses these patterns on LLM-generated content, but no attacker-controlled pattern injection is present. The risk of meaningful harm via regex backtracking in this context is minimal and not demonstrated.

Impact: low · 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
generated
Source
dist/backend.js:7606

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The links flagged are just technical labels used to describe data formats, not actual web addresses. They are harmless.

Technical evidence

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

Contextual assessment: The 51 shady-link signals are tag URIs like 'tag:yaml.org,2002' used by the YAML library for schema identification. These are not external network URLs and are standard for YAML 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
generated
Source
dist/frontend.js:12179

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity