TavernKeeper Scan Report

Archkr/Lumiverse-LumiWeather

Commit e659e44 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 7 low

What this review found

No material or immediate-danger item was identified.

Deterministic technical evidence (4)
  • zizmor reported artipacked · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/ci.yml:14-15

  • zizmor reported excessive-permissions · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/ci.yml:11-36

  • zizmor reported unpinned-uses · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/ci.yml:15

  • zizmor reported unpinned-uses · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/ci.yml:18

Contextual expected matches (3)

JavaScript analysis reported javascript.xray.unsafe-regex

Expected behavior · high confidence

The flagged code is a set of text-matching patterns the extension uses to check whether story dates and times look valid before displaying them. These patterns are simple, quick, and only run on short weather text the chat model produces. There is no sign of slowdowns, hidden behavior, or any risk to users.

Technical evidence

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

Contextual assessment: The flagged signal corresponds to a set of fixed, anchored regular expressions used to parse story-supplied date, time, and temperature strings from the model-emitted weather tag. The patterns (12-hour/24-hour clock, ISO-style date, and temperature token matchers) are linear with bounded quantifiers, no nested unbounded repetition, and no catastrophic backtracking potential. They operate on short, locally truncated strings as part of the extension's documented weather-tag parsing, and inputs that fail to match simply return null. No network access, credential access, persistence beyond the documented per-chat weather state, or obfuscation is present in the supplied context. The scanner's unsafe-regex heuristic appears to be a static false positive on ordinary validation patterns.

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

JavaScript analysis reported javascript.xray.unsafe-regex

Expected behavior · high confidence

The flagged patterns are simple checks the extension uses to read weather details (time, date, temperature, wind) from the chat and show them in the weather display. They run fast on short text and safely reject anything malformed. No harmful behavior is shown.

Technical evidence

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

Contextual assessment: The flagged occurrences are the same family of fixed, anchored validation regexes seen in the backend bundle: 12-hour/24-hour time, calendar date, temperature token, and wind-description patterns used to normalize the model-emitted weather tag into HUD and effect state. All patterns are linear with bounded quantifiers and no nested quantifiers, so no regular-expression denial of service is possible even with attacker- or model-controlled input. Inputs are trimmed, validated, and bounded in length before use, and unmatched input is rejected. This is proportionate to the extension's stated weather-parsing purpose and shows no hidden data flow or execution.

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

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The flagged text is not an internet address. It is the weather extension's own cloud artwork stored directly inside the code, plus standard identifiers required for drawing graphics. Nothing is downloaded or sent anywhere; the images simply display locally.

Technical evidence

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

Contextual assessment: The flagged link-like literals are inline data URI assets: base64-encoded PNG cloud sprites bundled directly into the generated frontend bundle by the build tool, plus standard SVG namespace identifiers and XML metadata embedded inside the decoded PNG payloads. Data URIs are self-contained and are not fetched over the network; the SVG namespace string is a fixed identifier required by the DOM API and never results in a network request. No fetch, XHR, WebSocket, script injection, or external endpoint appears anywhere in the supplied context. Embedding weather artwork as data URIs is proportionate to the extension's stated visual-effects purpose and discloses its behavior plainly.

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

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity