TavernKeeper Scan Report

Chechelpo/Simulith

Commit b7f6099 Reviewed

No material or immediate-danger concern was identified in this review.

This advisory report describes what the named tools and contextual reviewer found at one exact commit. Unknown or unobserved behavior may still exist.

0 immediate danger 0 material 9 low

What this review found

No material or immediate-danger item was identified.

Minor cautions

Dependency advisory GHSA-55q2-fjhq-7xh7:pkg:2fd628b415ad04f802a2d1cc applies

Minor caution · medium confidence

The app uses a library to clean dangerous content from user messages, and the version it uses has a known bug that might let some harmful content slip through. There's no proof that this bug can actually be exploited in this app, but it's best to update the library to fix it.

Technical evidence

Scanner reason: OSV-Scanner matched advisory GHSA-55q2-fjhq-7xh7:pkg:2fd628b415ad04f802a2d1cc to a dependency declared by this repository.

Contextual assessment: The project pins dompurify at version 3.4.11, which has a known medium-severity advisory (GHSA-55q2-fjhq-7xh7) that could allow a sanitization bypass leading to XSS. Dompurify is a direct runtime dependency used to sanitize user-generated content such as markdown or AI output. Without access to the actual usage context, we cannot confirm that the specific vulnerable code path is reachable or that attacker-controlled input can trigger the bypass. The advisory indicates a plausible but unconfirmed risk.

Impact: low · Exploitability: plausible

Developer action: Update dompurify to the latest patched version (3.4.12 or later) to close the known vulnerability.

Scanner
osv-scanner 2.4.0
Rule
GHSA-55q2-fjhq-7xh7:pkg:2fd628b415ad04f802a2d1cc
File role
production
Source
frontend/package-lock.json

Dependency advisory GHSA-fxqj-rqcc-2cmp:pkg:48f7fae3c8c125b98852d2a2 applies

Minor caution · high confidence

This library is only used during app building, not while you use the app in your browser. The security warning about it cannot affect you because the vulnerable code never runs on your computer.

Technical evidence

Scanner reason: OSV-Scanner matched advisory GHSA-fxqj-rqcc-2cmp:pkg:48f7fae3c8c125b98852d2a2 to a dependency declared by this repository.

Contextual assessment: PostCSS at version 8.5.16 has a medium-severity advisory (GHSA-fxqj-rqcc-2cmp). PostCSS is a CSS parsing library used at build time by the Vue compiler and Vite bundler, not at runtime in the browser. There is no evidence that user-controlled CSS is processed at runtime. Therefore, the vulnerable code has no runtime reachability in the shipped frontend, and no concrete user harm is possible.

Impact: none · Exploitability: unlikely

Developer action: Update postcss to a patched version during the next build cycle for general hygiene.

Scanner
osv-scanner 2.4.0
Rule
GHSA-fxqj-rqcc-2cmp:pkg:48f7fae3c8c125b98852d2a2
File role
production
Source
frontend/package-lock.json

Dependency advisory GHSA-c2j3-45gr-mqc4:pkg:3a617860720e33c3832a83a7 applies

Minor caution · medium confidence

There is another known but minor bug in the same content-cleaning library that could theoretically let harmful text through. There is no evidence it actually affects this app, but updating is a good precaution.

Technical evidence

Scanner reason: OSV-Scanner matched advisory GHSA-c2j3-45gr-mqc4:pkg:3a617860720e33c3832a83a7 to a dependency declared by this repository.

Contextual assessment: Dompurify 3.4.11 is also flagged for a low-severity advisory (GHSA-c2j3-45gr-mqc4). This represents another potential sanitization bypass. Similar to the medium advisory, without code-level analysis we cannot confirm reachability or attacker control. The low severity suggests a constrained exploit scenario. Nevertheless, keeping the dependency at a known vulnerable version is a weakness.

Impact: low · Exploitability: plausible

Developer action: Update dompurify to the latest version to resolve multiple advisories at once.

Scanner
osv-scanner 2.4.0
Rule
GHSA-c2j3-45gr-mqc4:pkg:3a617860720e33c3832a83a7
File role
production
Source
frontend/package-lock.json

Dependency advisory GHSA-r28c-9q8g-f849:pkg:97b607f316e1d58c10e4e4eb applies

Minor caution · high confidence

Even though this warning is marked as high severity, it affects a tool used only while the app is being built. When you use the app, the vulnerable code is not present and cannot be triggered.

Technical evidence

Scanner reason: OSV-Scanner matched advisory GHSA-r28c-9q8g-f849:pkg:97b607f316e1d58c10e4e4eb to a dependency declared by this repository.

Contextual assessment: PostCSS 8.5.16 has a high-severity advisory (GHSA-r28c-9q8g-f849). Despite the higher severity, PostCSS is a build-time tool only. No runtime code path in the frontend processes user-supplied CSS. The vulnerability cannot be exploited by an attacker through the shipped application. Impact is none.

Impact: none · Exploitability: unlikely

Developer action: Update postcss to a patched version as part of routine maintenance.

Scanner
osv-scanner 2.4.0
Rule
GHSA-r28c-9q8g-f849:pkg:97b607f316e1d58c10e4e4eb
File role
production
Source
frontend/package-lock.json

Dependency advisory GHSA-2v37-7h3g-55p8:pkg:bcb01fa3f22fe943388f7142 applies

Minor caution · medium confidence

This library creates random IDs for the app's internal use. It has a known bug that could make those IDs slightly predictable, but since these IDs aren't used for security (like passwords), the bug causes no harm here.

Technical evidence

Scanner reason: OSV-Scanner matched advisory GHSA-2v37-7h3g-55p8:pkg:bcb01fa3f22fe943388f7142 to a dependency declared by this repository.

Contextual assessment: Nanoid version 3.3.15 has a high-severity advisory (GHSA-2v37-7h3g-55p8). Nanoid is a runtime dependency used for generating random identifiers. The advisory likely concerns insufficient entropy or collision predictability. In this frontend application, nanoid is used for internal ID generation (e.g., React keys, element IDs) and not for security-critical tokens. Even if the randomness is weaker, the concrete harm is minimal—no credential or session exposure. The vulnerability is not demonstrated to be exploitable to a meaningful degree.

Impact: low · Exploitability: unlikely

Developer action: Update nanoid to a patched version to avoid potential predictability issues.

Scanner
osv-scanner 2.4.0
Rule
GHSA-2v37-7h3g-55p8:pkg:bcb01fa3f22fe943388f7142
File role
production
Source
frontend/package-lock.json

Dependency advisory GHSA-28wg-ghj8-5hjv:pkg:590275f7f1e65a0bda08b540 applies

Minor caution · medium confidence

Another warning about the same library's random IDs. Again, because these IDs are not used for anything secret or valuable, the bug does not put you at risk.

Technical evidence

Scanner reason: OSV-Scanner matched advisory GHSA-28wg-ghj8-5hjv:pkg:590275f7f1e65a0bda08b540 to a dependency declared by this repository.

Contextual assessment: Nanoid 3.3.15 is flagged for a separate high-severity advisory (GHSA-28wg-ghj8-5hjv). The nature is similar—ID generation weakness. As with the other nanoid advisory, the IDs are not used for authentication or secrets in this app. The attack surface is negligible. There is no demonstrated exposure to a meaningful harm.

Impact: low · Exploitability: unlikely

Developer action: Update nanoid to the latest version to resolve all known advisories.

Scanner
osv-scanner 2.4.0
Rule
GHSA-28wg-ghj8-5hjv:pkg:590275f7f1e65a0bda08b540
File role
production
Source
frontend/package-lock.json
Expected scanner matches (3)

OpenGrep reported tavernkeeper.persistence.startup-modification

Expected behavior · high confidence

This is just a settings file for a language model tokenizer, like a dictionary. It doesn't run any code or change how the program starts. The security alert is a false alarm because the file type and content are harmless.

Technical evidence

Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification in this repository.

Contextual assessment: This file is a static BPE tokenizer configuration in JSON format. It contains vocabulary, added tokens, and tokenizer parameters. It is not executable and cannot modify startup behavior or persist any state. The scanner rule match is a false positive triggered by the file path or name pattern. No executable code or persistence mechanism exists in this data file.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
opengrep 1.26.0
Rule
tavernkeeper.persistence.startup-modification
File role
production
Source
frplm-engine/src/main/resources/tokenizers/claude.json:1

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

This line sets up a development proxy so the frontend can talk to the backend running on the same computer. The address 127.0.0.1 is your own machine, not an external server, so it's safe and expected.

Technical evidence

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

Contextual assessment: The value at line 31 is a localhost address (127.0.0.1:8080) used as a proxy target in Vite's development server configuration. This is a standard, expected pattern for proxying API calls to a local backend during development. The IP is hardcoded, but it points only to the same machine and does not exfiltrate data or enable external network access.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1
Rule
javascript.xray.shady-link
File role
tooling
Source
frontend/vite.config.js:31

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The server is set to listen only on your own computer (127.0.0.1), meaning it cannot be accessed from other devices on the network. This is a safe default for development.

Technical evidence

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

Contextual assessment: The value at line 26 is a localhost address (127.0.0.1) used as the server host binding in Vite's development configuration. This restricts the dev server to listen only on the loopback interface, which is a security best practice to prevent external access. No harmful behavior is present.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1
Rule
javascript.xray.shady-link
File role
tooling
Source
frontend/vite.config.js:26

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity