TavernKeeper Scan Report

AMousePad/LumiBooks

Commit def591b 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.

Contextual expected matches (5)

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

Detailed wording was omitted by the public report safety filter.

Technical evidence

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

Contextual assessment: The flagged line range contains frontend UI rendering code with two fetch calls to same-origin host API endpoints (breakdown and dry-run). Both use credentials same-origin and relative paths. The responses are processed through normalizeBreakdown, which performs type-checked field extraction, and results are rendered via safe DOM APIs (createElement, textContent, appendChild, style properties). No eval, Function constructor, innerHTML with dynamic content, document.write, or other dynamic code execution sink is present in the supplied source. The scanner correlation between fetch and a code execution sink is not substantiated by the actual code; textContent does not parse HTML or execute script. The network retrieval is proportionate to the extension's stated purpose of displaying prompt breakdowns.

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:4373-6059

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · high confidence

The file is a bundled JavaScript file produced by a build tool. It looks compressed because many source files were combined into one, but the actual content is normal interface styling and UI code with nothing hidden.

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 obfuscated-code at line 1 of the generated frontend bundle. The supplied source context shows readable CSS style strings and straightforward DOM manipulation code (document.createElement, classList, event listeners). This is a standard bun build output where multiple TypeScript modules are concatenated into a single file. The structure is consistent with a bundler artifact, not deliberate obfuscation. No encoded payloads, eval-based string execution, or concealed logic are present in the visible 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.prototype-pollution

Expected behavior · high confidence

The code actively blocks a common JavaScript attack by refusing to copy a special key that could corrupt shared object behavior. The scanner noticed the protective check but it is actually a safety measure, not a flaw.

Technical evidence

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

Contextual assessment: The scanner flagged the literal __proto__ at line 2682 inside keepExtras. The actual code is an explicit prototype-pollution guard: when copying extra fields from a source record to a target object, it checks if the key equals __proto__ and continues (skips), preventing assignment to the prototype chain. The remaining assignments use target[k] with user-controlled keys but only for primitive string/number/boolean/string-array values, and the primary pollution vector is closed. This is defensive code, not a vulnerability.

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/backend.js:2682

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

This file stores a small avatar image as embedded text data for display in the extension interface. It does not connect to any website, send data anywhere, or perform any network activity. The scanner alert is a false positive caused by the large encoded image string.

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
production
Source
src/ui/lessons/avatar.ts:2

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The flagged links are a standard SVG namespace string used for drawing graphics and a built-in image stored as text data. Neither connects to the internet or sends information anywhere; they are normal parts of the user interface.

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/frontend.js:3967

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity