TavernKeeper Scan Report

WanderingMonk8/lummate

Commit 0aa65e2 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 2 low

What this review found

No material or immediate-danger item was identified.

Contextual expected matches (1)

JavaScript analysis reported javascript.xray.unsafe-regex

Expected behavior · high confidence

The automated scanner worried that some of the extension's text-matching patterns might be inefficient enough to hang the program. Reading the actual flagged code shows short fixed word-list checks with one optional descriptive word in front; if a match fails there are only a couple of ways to retry, so it cannot lock anything up. The broader parser also deliberately limits how far ahead each check looks. All of this runs only on the user's own messages, on their own machine, when they trigger playback. This looks like a false alarm from a cautious automated check, not a real problem.

Technical evidence

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

Contextual assessment: The scanner signals potentially catastrophic regular-expression backtracking but did not retain which literals matched. The flagged site is fully visible in the supplied source: it is a word-cue matcher that pairs a short fixed alternation of descriptive words, each followed by a whitespace quantifier, nested inside a single optional group before a fixed literal word. On failure that structure admits only a constant number of retry paths (with or without the optional segment), so it cannot produce exponential backtracking; the remaining occurrences visible in the context repeat this identical shape. The parser's other proximity checks consistently bound gap lengths to small fixed counts, exclude sentence terminators from gap character classes, and pre-slice small windows before matching, which caps match attempts per position. These patterns execute locally, on demand, against the user's own chat text, which is exactly the extension's stated purpose; no network destination, credential access, persistence, or obfuscation is involved. Static nesting-depth heuristics commonly false-positive on this optional-group shape, and even a hypothetical worst-case slow match would only briefly迟

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

Related contextual observations

Parser matchers use bounded gaps and fixed alternations, limiting backtracking

low risk · high confidence

The text-matching rules in this parser were written with strict limits on how far ahead they look, and each check only examines a small snippet around a candidate word. That means even awkwardly worded messages cannot make the matching take an unreasonable amount of time.

Technical assessment

Across the supplied parsing code, proximity look-aheads between word anchors are bounded to small fixed repetition counts, gap character classes exclude sentence terminators, and multi-word checks operate on pre-sliced windows of at most roughly a hundred characters. This construction caps the number of match attempts per position, so even adversarially crafted message text cannot produce super-linear matching of practical consequence. This matches the project's stated purpose of deterministic, on-demand parsing of local chat text and represents a deliberate defensive design rather than a hazard.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity