TavernKeeper Scan Report

hans123m12m1/lumiverse-notehaven

Commit ff38688 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 6 low

What this review found

No material or immediate-danger item was identified.

Contextual expected matches (3)

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The flagged line is part of a media validation function that checks whether uploaded files are valid image, video, or audio data URLs. This is exactly what a notes app with media support should do, and there is no suspicious network activity or data leaving the system.

Technical evidence

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

Contextual assessment: Detailed technical wording was omitted by the public report safety filter.

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

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · high confidence

The scanner flagged this file as potentially obfuscated, but the code is plain, readable JavaScript with clear comments and standard CSS styling for a notes interface. There is no hidden or scrambled code whatsoever.

Technical evidence

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

Contextual assessment: The scanner flagged line 1 of file under the 'obfuscated-code' rule with low confidence and high severity. Line 1 is a plain JSDoc comment header: '/** Notehaven — frontend module (Spindle / Lumiverse)'. The surrounding code is hand-written, dependency-free ES2022 with readable variable names (NH_CSS, nh-modal, nh-overlay, etc.), extensive inline comments, and standard CSS-in-JS template literals for UI styling. There are no eval calls, no encoded strings, no hex-obfuscated identifiers, no packed or minified code, no dynamic Function constructors, and no concealed logic. The code defines CSS styles and DOM structure for the notes modal, drawer launcher, and editor UI, all consistent with the project's stated purpose as a notes extension. The scanner signal is a false positive; no obfuscation is present in the supplied evidence.

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.xray.unsafe-regex

Expected behavior · high confidence

The flagged pattern is a normal part of the note editor's wiki-link feature. It has built-in length limits and does not pose a demonstrated security 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 scanner flagged a static regex used in the project's markdown-lite renderer to match wiki-link syntax. The regex uses negated character classes with explicit {1,120} length bounds, a simple optional non-capturing group, and literal terminators. There is no overlapping alternation or nested quantifier pattern that would produce catastrophic backtracking. The regex operates on note content already HTML-escaped, and the captured values are inserted into span elements with data attributes in the extension's own UI. No network calls, credential access, or external data flows are involved. The signal is a heuristic static-analysis match with no demonstrated runtime impact.

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

Related contextual observations

Local data URL validation and storage pattern is consistent with stated media-handling purpose

low risk · high confidence

The extension stores all note data, images, and settings locally using the host framework's per-user storage, with no external network calls visible in the supplied code.

Technical assessment

The assertDataUrl function validates data URL strings locally before persistence. The import_data handler checks that image data URLs start with 'data:image/' before writing to spindle.userStorage. Export reads from local storage and returns data to the frontend. No external HTTP endpoints, no dynamic URL construction, and no network APIs are invoked anywhere in the supplied backend code. All persistence uses the spindle.userStorage abstraction scoped per userId.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

Frontend code is plain readable ES2022 with CSS styling, no obfuscation present

low risk · high confidence

The frontend code consists entirely of readable CSS styles and UI structure with clear naming and comments, with no signs of hidden or scrambled code.

Technical assessment

The supplied frontend code opens with a standard JSDoc block followed by a CSS template literal (NH_CSS) containing clearly named CSS custom properties (--nh-bg, --nh-text, --nh-accent, etc.) and selectors (.nh-root, .nh-modal, .nh-overlay). All identifiers are human-readable, all values are plain CSS, and inline comments explain each section. No string decoding, character code manipulation, regex-packed payloads, or minified bundles are present. The code structure is typical of hand-authored extension frontends.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

Bounded regexes throughout markdown renderer show no ReDoS pattern

low risk · high confidence

All regexes in the renderer have fixed or bounded quantifiers and process already-escaped note text, so there is no demonstrated ReDoS risk.

Technical assessment

The inline() helper in renderMarkdown applies multiple sequential regex replacements for images, wiki links, markdown links, and emphasis. Each uses literal anchors or bounded character classes; none exhibit nested quantifiers or ambiguous alternation that would create exponential backtracking. The renderer escapes HTML before applying inline transformations, limiting injection risk. These are standard markdown-parsing patterns consistent with the stated note-taking purpose.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity