Expected scanner matches (127)
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is just a fake picture string used in a test to check that private photos are removed from exported data.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in 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
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- scratch/companion_audit.js:368
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The security scanner flagged a line inside a big block of image data. This is a false alarm—the data is just an encoded picture, not a real web address.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The JS-X-Ray 'shady-link' signal fired at line 145 inside a base64-encoded image data URI. Base64 encoding can produce arbitrary byte sequences that coincidentally match suspicious URL patterns. The content at this line is part of an inline image (media_policy_bullpen) used as a location background, not a dynamic network request. No actual external domain or fetch operation 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
- production
- Source
- policy-panic-world.js:145
JavaScript analysis reported javascript.xray.unsafe-vm-context
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.xray.unsafe-vm-context in this repository.
Contextual assessment: This candidate flags a vm.runInNewContext call at line 97 within a test function ('starter world points to an installed preset'). The call executes a statically extracted portion of the application source (presetsSource) with a fixed string appended. No user-controlled or network-originated data reaches the VM; it is a standard unit-test pattern for isolating application code under Node's vm module. The signal is a benign use of dynamic code execution for testing, not a security risk.
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.unsafe-vm-context
- File role
- production
- Source
- scratch/engine_audit.js:97
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a default address for a local image-generation tool that runs on your computer. It's not a shady external link; it's expected to point to your own machine.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The flagged URL at line 1189 is the default fallback passed to normalizeLoopbackUrl for localImageBaseUrl. The project intentionally connects to a local image-generation service running on 127.0.0.1:7860. This is a default configuration value, not an external or untrusted destination. Users can override the URL via settings, and normalizeLoopbackUrl validates that the address resolves to a loopback interface. The scanner signal reflects the presence of a hard-coded HTTP URL, which matches the project's local-first design and is not evidence of malicious behavior.
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
- production
- Source
- app.js:1189
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a test value that checks whether image data is passed correctly through the code—no real image or external connection.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The flagged string is a static data URI used as test input for image request validation. It appears in an assert.equal call comparing request.image to a placeholder. No actual network call or untrusted user input flows through this value.
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
- production
- Source
- scratch/companion_audit.js:276
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The security scanner flagged a line of test code that uses a fake profile photo placeholder. This is just a made-up test value, not a real security threat.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The 'shady-link' signal at line 1123 corresponds to a test data URI 'data:image/png;base64,DISPLAY_ONLY' used as a fake profile photo value inside a unit test. This is a static test fixture, not a runtime network request or exfiltration. The scanner rule flags base64 data URIs generically, but in this test file the value is harmless and part of normal test setup.
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
- production
- Source
- scratch/companion_audit.js:1123
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This line checks that any configured server address points only to your own computer, which is exactly what a local-first app should do. It prevents accidentally sending data to the internet.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: Line 49 performs a hostname whitelist check that only allows localhost or IPv6 loopback addresses. This is a security control to prevent accidental or malicious use of external URLs, enforced by replacing non-loopback values with the safe default. The scanner signal 'shady-link' does not indicate actual malicious intent; it reflects the scanner matching a URL-parsing pattern without context. The code's behavior is protective and aligned with the project's local-first design.
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
- production
- Source
- labs-core.js:49
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This code sends a request to an AI service that the user selected (like OpenRouter or a local model) to generate story content. It's a normal part of how the app works, not a security issue.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The fetch call and streaming response processing at and near line 3317 are part of the application's AI text generation workflow. The endpoint URL is configured by the user (e.g., OpenRouter, local LLM server) and is not hardcoded to an unauthorized destination. The 'shady-link' signal likely matched a dynamic URL or common pattern, but the data flow is consistent with the project's stated purpose of connecting to user-chosen AI providers. No evidence of data exfiltration, concealed behavior, or unauthorized network access is present in the supplied source excerpt.
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
- production
- Source
- app.js:3317
JavaScript analysis reported javascript.xray.unsafe-vm-context
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.xray.unsafe-vm-context in 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
- Rule
- javascript.xray.unsafe-vm-context
- File role
- production
- Source
- scratch/gameplay_overhaul_audit.js:130
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a false alarm. The scanner thought a line might contain a suspicious link, but it's actually a long string of image data stored directly inside the file. That's normal for this kind of game world file.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner flagged a 'shady-link' pattern at line 45, but the context shows this line contains an embedded base64-encoded JPEG image as a data URI. Data URIs are not network links; they are inline image data bundled as part of a world definition file. No external network request is made. The project's purpose is to provide a local-first AI roleplay platform with persistent worlds, and embedding media assets is expected and documented behavior.
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
- production
- Source
- policy-panic-world.js:45
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a false alarm. The scanner thought a line might contain a suspicious link, but it's actually a long string of image data stored directly inside the file. That's normal for this kind of game world file.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner flagged a 'shady-link' pattern at line 65, but the context shows this line contains an embedded base64-encoded JPEG image as a data URI. Data URIs are not network links; they are inline image data bundled as part of a world definition file. No external network request is made. The project's purpose is to provide a local-first AI roleplay platform with persistent worlds, and embedding media assets is expected and documented behavior.
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
- production
- Source
- policy-panic-world.js:65
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This part of the code checks if an image from an AI provider was successfully converted to a portable format. There's no security issue here.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: Line 30917 is inside a catch block in makeWorldVisualPortable. It checks whether stabilizeGeneratedImageSource returned a valid data URL. No network fetch or untrusted data sink occurs at this line. The scanner rule 'shady-link' appears to be a static pattern match that does not consider the conditional control flow or error-recovery context. The URL examined here originates from the image provider previously chosen by the user and is only used to decide whether to throw an error. No user harm is possible from this check.
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
- production
- Source
- app.js:30917
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The app opens a small popup window for you to sign in to a connected service, which is normal and safe.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The flagged line opens a blank popup window for OAuth authorization flow with MCP providers, a standard pattern in web applications for third-party authentication. No malicious data exfiltration occurs.
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
- production
- Source
- app.js:8690
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a test that uses a fake image URL to make sure the app removes it when asked. This is harmless test setup, not a real security problem.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The 'shady-link' scanner signal (javascript.xray.shady-link) flagged a data URI at line 1355 in the test file companion_audit.js. The URI ('data:image/png;base64,REFERENCE') is a static placeholder used in a unit test for the buildCompanionImageRequest function. It is not attacker-controlled, not used in production flow, and not exfiltrated. The test verifies that omitting the reference image correctly excludes the input_references field. No security concern.
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
- production
- Source
- scratch/companion_audit.js:1355
JavaScript analysis reported javascript.xray.sql-injection
Expected behavior · high confidence
The security scanner thought a line of code might be a dangerous database command, but actually it's just a log message that prints something the user wrote. No database is involved, so there is no danger.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.sql-injection in this repository.
Contextual assessment: The scanner flagged line 20325 for potential SQL injection, but the code is a console.warn call that logs a server-side warning string. The detected variable is user-controlled text parsed from narrative prose, but it is never used in any database query or SQL context. The project uses IndexedDB for storage and has no SQL execution paths. This is a static-analysis false positive; the pattern match does not correspond to actual injection risk.
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.sql-injection
- File role
- production
- Source
- app.js:20325
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · low confidence
This pattern checks whether you're swapping your outfit based on what you type. While it's a complex-looking expression, it's carefully bounded and won't lock up your browser with normal input.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regex at line 20229 matches first-person outfit-swap patterns. It uses bounded quantifiers ([^.!?;]{2,100}) and alternation. No nested repetition or overlapping quantifiers that would cause catastrophic backtracking are present. The scanner's 'unsafe-regex' classification is a conservative heuristic, and no concrete ReDoS vulnerability is demonstrated in the supplied code evidence.
Impact: low · 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.unsafe-regex
- File role
- production
- Source
- app.js:20229
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
The test is running a small piece of the app's own code in a sandbox to check if it works correctly. No outside data or user input is used.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: This vm.runInNewContext call occurs inside a test that extracts a function from the project's own file source and executes it in a minimal sandbox. The context contains only safe built-in objects (Set, RegExp, String). No external or user-controlled input is passed; the code being evaluated is the project's own production logic. This is a standard Node.js testing pattern for internal functions that are not exported.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/gameplay_overhaul_audit.js:115
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a false alarm. The scanner thought a line might contain a suspicious link, but it's actually a long string of image data stored directly inside the file. That's normal for this kind of game world file.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner flagged a 'shady-link' pattern at line 85, but the context shows this line contains an embedded base64-encoded JPEG image as a data URI. Data URIs are not network links; they are inline image data bundled as part of a world definition file. No external network request is made. The project's purpose is to provide a local-first AI roleplay platform with persistent worlds, and embedding media assets is expected and documented behavior.
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
- production
- Source
- policy-panic-world.js:85
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The code adds an attribution header (HTTP-Referer and X-Title) when talking to OpenRouter. This is a standard way for apps to identify themselves to the API provider, not a shady link.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in 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
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- app.js:616
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This line lists a local address that the app checks to find a running AI model on your computer. It is only local and not sent anywhere else. This is normal behavior for the app.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in 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
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- labs-core.js:393
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The code downloads an image from the AI provider you chose, so it can be saved into your world. This is expected behavior for a creative tool that works with external image services.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: Line 30909 is the condition if (!data.startsWith('data:image/')) in makeWorldVisualPortable. When true, the function issues a fetch to the image provider's URL (line 30912) to retrieve the image as a blob and convert it to a data URL. This fetch is intentional: the user selected an AI image provider, and the application needs to download the generated image to embed it in the world save. The URL comes from the provider's response and is not an arbitrary attacker-controlled URL. The 'shady-link' signal does not account for the legitimate purpose of fetching images from user-configured providers.
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
- production
- Source
- app.js:30909
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The scanner flagged a made-up base64 image value used in a test. It's not a real security issue.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The 'shady-link' signal at line 1227 corresponds to a test data URI 'data:image/jpeg;base64,BBBB' used as a fake response image in a unit test for GPTProto image extraction. This is a static test fixture, not a network destination. It is not executed or accessible outside the test suite.
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
- production
- Source
- scratch/companion_audit.js:1227
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This file is a data file for a mini-game called Policy Panic. It stores pictures and game information. The security scanner found something that looked like a link, but that's just part of the game's data, not a real security threat.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The file file contains base64-encoded serialized data for the Policy Panic mini-game within Horde Studio. The scanner rule 'javascript.xray.shady-link' detected a pattern consistent with a URL or link within the raw text, but this is expected as the game data includes encoded image URLs and references. No actual network access or exfiltration is present; the data is stored locally and used only by the in-app game. The scanner signal is a false positive.
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
- production
- Source
- policy-panic-world.js:2
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
The test runs part of the app's world-turn-state functions inside a safe sandbox to verify they behave correctly. Only the app's own code is used.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: This vm.runInNewContext usage extracts two functions from the production file source (captureWorldTurnState and restoreWorldTurnState) and executes them with a context limited to structuredClone, JSON, safeJsonClone, isPlainObject, and a stub bumpMemoryEpoch. The code is purely the project's own logic run in a controlled test harness. No untrusted data enters the evaluated string or context.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/gameplay_overhaul_audit.js:47
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is just a fake photo link used in a test to make sure the app can handle old photo data. It never contacts the internet and is not present in the real app.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The candidate is a static string literal `'data:image/png;base64,profile'` used as test fixture data in line 443 of a test file (file). JS-X-Ray's 'shady-link' rule flagged it because the string matches a data-URI pattern, but the code does not load, execute, or transmit this string as a URL. The test sets up a companion object for the `normalizeCompanion` function and asserts that it is preserved — no network fetch, no user-controlled input reaches this position, and the file itself is never shipped to users as production code. There is no demonstrated data flow to an external destination.
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
- production
- Source
- scratch/companion_audit.js:443
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
Detailed wording was omitted by the public report safety filter.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: The vm.runInNewContext call at line 125 is used within a test function that validates CSS sanitization functions. The executed code is a controlled slice of the application source with no user-supplied input. This is a legitimate testing pattern for verifying security properties of the application's own functions through isolated execution in the Node.js vm module.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/engine_audit.js:125
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
This code uses a simple pattern to check if some text is a number. The pattern is safe and doesn't create any security problems.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regex `/^-?\d+(?:\.\d+)?$/` at line 33502 in file is a static regular expression that validates whether a trimmed string represents a valid numeric value (integer or decimal). This is a standard parsing pattern for converting user-provided option strings to numbers in companion image provider option handling. The regex pattern is hardcoded, not constructed from user input, and does not contain nested quantifiers, backreferences, or any ReDoS-vulnerable constructs. The JS-X-Ray static analysis signal likely flagged this as 'unsafe-regex' based on a general heuristic, but the actual pattern is safe and proportional to its purpose of numeric parsing. No security vulnerability arises from its use.
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.unsafe-regex
- File role
- production
- Source
- app.js:33502
JavaScript analysis reported javascript.download-to-execution
Expected behavior · low confidence
The app fetches data from AI providers and also runs code dynamically. This is normal for an AI chat app that needs to process responses. There's no sign it's downloading and running malicious code.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution in this repository.
Contextual assessment: The scanner correlated network retrieval and code execution in a broad range (lines 400-7722). The application uses fetch to communicate with local and remote API endpoints, and dynamically evaluates response data for roleplay generation. No evidence of fetching arbitrary code or executing untrusted input was found in the supplied evidence windows. The correlation is consistent with the project's purpose as an AI roleplay platform.
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.download-to-execution
- File role
- production
- Source
- app.js:400-7722
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The security scanner saw a fake base64 photo value used in a test. It is not dangerous.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The 'shady-link' signal at line 1155 corresponds to a test data URI 'data:image/png;base64,IDENTITY' assigned to basePhoto in a unit test for GPTProto photo requests. This is a static test fixture with no actual network destination or credential exposure.
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
- production
- Source
- scratch/companion_audit.js:1155
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The security scanner flagged a line inside a block of image data. The flag is a false positive because the data is just an encoded picture, not an actual link.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The JS-X-Ray 'shady-link' signal fired at line 115 inside a base64-encoded image data URI. The line is part of a data:image/jpeg;base64,... string for an NPC portrait (media_policy_nisha). Base64 encoding can generate arbitrary sequences that incidentally match suspicious URL patterns. No network destination or fetch call exists at this location.
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
- production
- Source
- policy-panic-world.js:115
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · low confidence
This expression helps the game figure out when you're walking into a new room based on story text. It's built with safety limits and won't cause problems.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regex at line 20069 detects narrated player movement from prose. It uses bounded character ranges ([^.!?]{0,20}, [^.!?;,]{1,80}) and a fixed alternation of verbs. The pattern is linear and does not exhibit exponential backtracking. The static signal is likely a false positive.
Impact: low · 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.unsafe-regex
- File role
- production
- Source
- app.js:20069
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This line just checks if the browser successfully encoded an image. It's like making sure a photo was properly saved before using it. No shady links or harmful behavior.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner flagged line 2281 under the 'shady-link' rule, but the code is a benign validation check within a client-side image optimization function. It compares the result of canvas.toDataURL('image/jpeg', quality) against an empty or minimal data URL to detect encoding failure. No network request, external link, or suspicious destination is involved. The string 'data:,' is a standard empty data URL returned by some browsers when encoding fails, and its presence here is purely defensive. The scanner signal is a false positive arising from a pattern match against the literal 'data:,' prefix.
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
- production
- Source
- app.js:2281
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a test picture placeholder used to make sure photo references are handled correctly in character generation.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The flagged string is a static data URI placeholder for a companion's basePhoto used in a test for MCP generation arguments. It is not transmitted to any network; it serves only as test input to verify that reference images are correctly included in the generated request shape.
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
- production
- Source
- scratch/companion_audit.js:299
JavaScript analysis reported javascript.xray.suspicious-literal
Expected behavior · high confidence
This file stores default settings and instructions for the AI characters. The security scanner flagged some of the long text as suspicious, but it's just normal AI prompts with fancy formatting and special symbols—not anything dangerous.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.suspicious-literal in this repository.
Contextual assessment: The file file is a large production data file containing structured system prompt objects with long multi-line strings (e.g., XML-like tags, special characters, emoji). The JS-X-Ray suspicious-literal signal is triggered by the presence of unusual string patterns, but manual inspection confirms these are legitimate preset configurations for AI roleplay behavior, not obfuscated or malicious content. No hidden code, encoded data, or concealed execution 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.suspicious-literal
- File role
- production
- Source
- presets.js:1
JavaScript analysis reported javascript.xray.unsafe-vm-context
Expected behavior · high confidence
This test runs some of the app's own functions in isolation to make sure they work correctly. It only uses pre-written test data, not any outside information, so it's harmless.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-vm-context in this repository.
Contextual assessment: This candidate flags vm.runInNewContext at lines 249-256 within a test function ('turn snapshots restore timeline state without replacing shared authored geography'). The VM context is populated with statically extracted functions (isPlainObject, safeJsonClone, captureWorldTurnState, restoreWorldTurnState) and a stub function. Inputs are hardcoded test data. No external or untrusted data is involved; it is a standard sandboxed unit test.
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.unsafe-vm-context
- File role
- production
- Source
- scratch/engine_audit.js:249-256
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This code tests whether a local AI server is running. The flagged line sets the server address to whatever the user typed or defaults to localhost. It is not doing anything sneaky like sending your data elsewhere.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: This scanner alert flagged a URL string in the local connection tester at line 8829. The value is either the user's input from an input field or a default localhost URL. It is used to construct a fetch request for testing connectivity to a local AI model server. The code does not exfiltrate, transform, or send this URL to any external destination outside the user's intended local test. The behavior is consistent with the documented project purpose of testing local model endpoints. No attacker-controlled data flows or concealed network access are 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
- production
- Source
- app.js:8829
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged line sets a default address for a local AI image generation tool. It connects only to your own computer, not to the internet.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The flagged URL is a default fallback pointing to a local ComfyUI instance (127.0.0.1:8188). This is neither remote nor malicious; it is the expected default for a local-first generative AI tool that can integrate with ComfyUI.
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
- production
- Source
- app.js:9027
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · low confidence
This pattern reads what you're wearing from story text. It's a straightforward check and not a security risk.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regex at line 20118 matches phrases like 'you are wearing...' or 'you're dressed in...'. It uses a bounded capture ([^.!?;]{3,80}) and simple optional groups. No unsafe repetition or overlapping alternation is present. The scanner alert is a heuristic flag with no demonstrated exploit.
Impact: low · 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.unsafe-regex
- File role
- production
- Source
- app.js:20118
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The security scanner flagged a line inside image data. This is a false positive—the line contains encoded picture data, not a real link.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The JS-X-Ray 'shady-link' signal fired at line 125 inside a base64-encoded image data URI. The line belongs to a data:image/jpeg;base64,... string for an NPC portrait (media_policy_nisha). Base64 encoding can produce coincidental matches to suspicious URL patterns. No external or dynamic network behavior is present at this line.
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
- production
- Source
- policy-panic-world.js:125
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The security scanner flagged a line inside an encoded image. This is a false alarm—the data is picture content, not a web link.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The JS-X-Ray 'shady-link' signal fired at line 135 inside a base64-encoded image data URI. The line is part of a data:image/jpeg;base64,... string for a location background (media_policy_reception). Base64 encoding can create arbitrary byte sequences that match suspicious URL patterns by chance. No actual network request or untrusted destination exists at this location.
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
- production
- Source
- policy-panic-world.js:135
JavaScript analysis reported javascript.xray.prototype-pollution
Expected behavior · high confidence
The app has built-in safeguards against a common JavaScript security issue called prototype pollution. The flagged line is part of a safety check, not a vulnerability.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.prototype-pollution in this repository.
Contextual assessment: The scanner flagged a prototype pollution signal at line 749. The code at that line is part of the isPlainObject function, which safely checks object type using Object.prototype.toString. The application also includes explicit filtering of __proto__, prototype, and constructor keys in the safeJsonClone function. These protective measures mitigate prototype pollution. No vulnerable patterns were observed in the evidence windows.
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.prototype-pollution
- File role
- production
- Source
- app.js:749
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is the default address to a tool that generates images on your own computer, like Stable Diffusion. It's not an external link.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The flagged URL at line 1164 is a default value for localImageBaseUrl in the globalSettings object. This value is used to connect to a local image server (e.g., Automatic1111/stable-diffusion-webui) running on localhost. The project is designed to work with local model servers and services via loopback addresses. Users can change the URL in settings, and the application strips non-loopback addresses via normalizeLoopbackUrl. There is no evidence of exfiltration or unauthorized data transfer.
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
- production
- Source
- app.js:1164
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
Detailed wording was omitted by the public report safety filter.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: Detailed technical wording was omitted by the public report safety filter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/engine_audit.js:135
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
The flagged regular expression is used to read stat names and numbers from a text box. It is designed safely with start and end anchors and a lazy search that stops early. Even though a scanner flagged it as potentially risky, the pattern won't slow down or crash the application in practice.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regex '^(.+?):\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))$' is anchored with ^ and $, uses a lazy quantifier (.+?) for the first capture group, and the numeric portion has only two linear alternatives. The anchored and lazy structure prevents exponential backtracking; any failed match involves linear backtracking proportional to input length. The JS-X-Ray 'unsafe-regex' signal is a static heuristic that does not account for anchor or lazy quantifier behavior. No practical ReDoS risk is demonstrated by 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
- Rule
- javascript.xray.unsafe-regex
- File role
- production
- Source
- app.js:14438
zizmor reported artipacked
Expected behavior · high confidence
The scanner warns about credentials being saved in build artifacts, but this workflow doesn't create any artifacts. The token is used only temporarily to upload the finished file, and nothing gets stored.
Technical evidence
Scanner reason: zizmor matched workflow-security rule artipacked in this repository.
Contextual assessment: The artipacked rule flags potential credential persistence through GitHub Actions artifacts. However, this workflow does not use the upload-artifact action or any artifact storage. It directly uploads a built zip file to a GitHub release using gh release upload with the github.token. No credentials are written to an artifact or persisted beyond the step execution. The scanner confidence is low and the evidence does not demonstrate any actual credential exposure.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- zizmor 1.28.0
- Rule
- artipacked
- File role
- tooling
- Source
- .github/workflows/package-current-release.yml:19-22
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a fake image string in a test to see how the application handles photo references—no real data or network activity.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The flagged string is a static data URI used to set basePhoto in a companion fixture for test coverage of image request behavior. No external destination receives this value; it is confined to the test's local assertion scope.
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
- production
- Source
- scratch/companion_audit.js:281
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is another fake photo string used in a test. It does nothing dangerous — just checks that the app correctly separates two photo fields. Not part of the real application.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The candidate is a static string literal `'data:image/png;base64,reference'` used as test fixture data in line 444 of a test file (file). As with the adjacent candidate, JS-X-Ray flagged it due to its data-URI form, but it is never used as an executable URL. It is passed to `normalizeCompanion` in a test only, with no runtime reachability in shipped code. No attacker-controlled input, no network activity, and no exfiltration path exist. The scan signal is a false positive from static detection of a benign literal.
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
- production
- Source
- scratch/companion_audit.js:444
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The app includes the web addresses of the AI providers it supports (OpenRouter and GPTProto). These are the normal server addresses you need to connect to, not hidden or suspicious links.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in 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
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- app.js:444
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This test checks that the game's travel rules work correctly by running a small piece of the movement logic in a safe sandbox. No real-world data is involved.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: The vm.runInNewContext call at line 143 runs extracted functions (getExitTargetName, canTravelDirectly) from the application source to test travel restriction logic. The source is obtained through a controlled functionSource helper that extracts known function bodies. No runtime inputs are passed from outside the test, making this a standard testing technique.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/engine_audit.js:143
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · medium confidence
This pattern cuts extra details off clothing descriptions. It's built with limits and won't freeze the app.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regex at line 20171 is used to split outfit phrases by prepositions like 'against' or 'for'. It contains alternation with optional groups (e.g., `for\s+(?:the\s+)?(?:warmth|cold|...)`). While alternation can sometimes cause backtracking, the input is bounded to prose segments already trimmed. No practical ReDoS is demonstrated.
Impact: low · 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.unsafe-regex
- File role
- production
- Source
- app.js:20171
JavaScript analysis reported javascript.xray.unsafe-vm-context
Expected behavior · high confidence
A test that checks whether the app's HTML escaping function works. It only feeds it a test string, so there is no risk.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-vm-context in this repository.
Contextual assessment: This candidate flags vm.runInNewContext at line 135 within a test function ('HTML escaping neutralizes stored markup'). The call executes a statically extracted escapeHTML function with a hardcoded HTML string. No user input or network data reaches the context. This is a safe and typical testing pattern.
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.unsafe-vm-context
- File role
- production
- Source
- scratch/engine_audit.js:135
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This test checks that the game's stat-rolling settings work as expected by running a small piece of the app's configuration logic in a sandbox.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: This call evaluates a function extracted from file (worldStatRollConfig) inside a context containing only isPlainObject. The purpose is to test that the stat roll configuration correctly disables/enables rollability for resource vs. stat types. The evaluated string is a slice of the project's own source, not user-supplied data. No untrusted inputs are involved.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/gameplay_overhaul_audit.js:130
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The security scanner flagged a line inside image data. This is a false positive—the line contains an encoded image, not an actual link.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The JS-X-Ray 'shady-link' signal fired at line 95 inside a base64-encoded image data URI. The line is part of a data:image/jpeg;base64,... string for a location background (media_policy_bullpen). Base64 encoding can produce byte sequences that coincidentally match suspicious URL detection heuristics. No external domain or fetch 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
- production
- Source
- policy-panic-world.js:95
JavaScript analysis reported javascript.xray.obfuscated-code
Expected behavior · high confidence
The scanner thought part of this file might be obfuscated, but it's not. The file starts with a normal comment and then has a lot of image data stored as text. That's expected for this type of world file.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code in this repository.
Contextual assessment: The scanner flagged 'obfuscated-code' at line 1 with low confidence. Line 1 contains a standard JavaScript comment ('// Generated by scratch/build_policy_panic_world.js. Keep this file before app.js.') followed by an assignment. The file is a generated world definition with embedded base64 image data, which are long strings but not obfuscated code. No actual obfuscation is present; the scanner likely misinterpreted the large data strings. The project uses no obfuscation techniques.
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.obfuscated-code
- File role
- production
- Source
- policy-panic-world.js:1
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This line sets a default address for a local image generator that runs on your own machine. It poses no security risk.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The flagged URL is a default fallback pointing to a local image generation server (127.0.0.1:7860). This is the standard loopback address for a local OpenAI-compatible endpoint, expected in a local-first application.
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
- production
- Source
- app.js:9024
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This line just loads a standard SVG namespace address, like telling the browser 'these shapes are SVG shapes'. It is not a link to a shady website and is required for the map drawing feature to work.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in 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
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- app.js:12718
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The code makes a test connection to a local AI model running on your own computer. This is normal for a local-first app and poses no security risk.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner signal 'shady-link' flagged line 144 which contains a hardcoded HTTP URL to localhost (127.0.0.1:11434/v1). This is a health-check call to a local Ollama instance in a test file (labs_cognition_audit.js). The URL is the expected base URL for a local model server, consistent with the project's local-first design. There is no data exfiltration; the request is internal to the user's machine. The signal is a false positive in this context.
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
- production
- Source
- scratch/labs_cognition_audit.js:144
JavaScript analysis reported javascript.xray.obfuscated-code
Expected behavior · low confidence
This file is a build tool for a game world, and its code is written in a clear, straightforward way. The security scanner's warning about obfuscation is incorrect; the code does not hide anything.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code in this repository.
Contextual assessment: The supplied code is a build script that processes image assets and generates a world file. The code is plain, readable JavaScript using standard Node.js modules (fs, path, sharp) with no obfuscation techniques such as string encoding, eval, or minification. The JS-X-Ray obfuscated-code signal is a false positive, likely triggered by the repetitive structure of the asset map or the FNV-1a hash function implementation. No concealed execution, credential handling, or network calls are present in the visible portion.
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.obfuscated-code
- File role
- production
- Source
- scratch/build_policy_panic_world.js:1
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a normal part of how the app handles real-time AI responses. It watches for chunks of text that start with 'data: ' coming from the AI provider, which is a standard way to receive streaming messages. No suspicious activity is happening, it's just reading the AI's reply as it arrives.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: Line 6662 parses Server-Sent Events (SSE) streaming by checking if each line starts with 'data: '. This is the standard SSE protocol format used by OpenAI-compatible and other streaming AI APIs, and is required for processing streaming response chunks from the user's configured text generation provider (e.g., OpenRouter, Ollama, GPTProto). The scanner rule 'shady-link' may have matched the token 'data:' as a false positive for a data URI or base64 payload indicator, but the actual code performs no network exfiltration, data URI evaluation, or scripting from untrusted content. The 'data:' prefix is used solely to extract JSON payload lines from the stream.
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
- production
- Source
- app.js:6662
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This test file runs a small piece of the game's own quest logic inside a safe sandbox to check that it works correctly. Since the code being run comes from the project itself and the sandbox blocks access to the file system and network, this is a normal and safe testing technique.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: The candidate uses vm.runInNewContext to execute a slice of the application's own quest engine source code (app) in a restricted sandbox context. The context only contains console, showToast, and module flags; it excludes require, process, fs, and other dangerous globals. The executed code is project-owned, not attacker-controlled. The file is a test file (file) and the sandbox is appropriate for module isolation testing. No untrusted input reaches the dynamic execution point, and no sandbox escape is demonstrated or plausible given the controlled source and restricted context.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/quest_engine_stress_test.js:55-66
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
This check simply looks at text to see if it starts with a 'data:image/...' or 'blob:' prefix, which is a normal way to identify an already-embedded image. The pattern is fixed and cannot be tricked into causing performance problems. It's just a routine validation step.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regex at line 30428 is a static literal pattern matching valid data: and blob: URI prefixes for image sources. It is not constructed from user or untrusted input; it is a fixed pattern used for validation. The regex has no nested quantifiers or exponential backtracking constructs, making ReDoS exploitation impractical. The function normalizeGeneratedImageSource applies this regex to values derived from AI model responses or user-provided image data, which is the intended and disclosed purpose of the function. No unsafe dynamic regex construction or injection 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.unsafe-regex
- File role
- production
- Source
- app.js:30428
JavaScript analysis reported javascript.xray.unsafe-vm-context
Expected behavior · high confidence
A test that runs parts of the app's logic in a sandbox to verify they behave correctly. It does not run any code from outside or take any input from users, so it is safe.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-vm-context in this repository.
Contextual assessment: This candidate flags vm.runInNewContext at line 240 within a test function ('world rule profiles make every mechanical subsystem optional'). The call executes various statically extracted application functions (getWorldTimeData, and later for snapshot tests). No external or untrusted data is supplied. The VM usage is purely for unit testing.
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.unsafe-vm-context
- File role
- production
- Source
- scratch/engine_audit.js:240
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
This line is part of an automated test that checks whether the application's code includes a certain repair step. The 'unsafe regex' flag is a false alarm: the regex is only used on the app's own source code during testing, not on anything a user or attacker could control.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The flagged line is a static regex literal used inside a Node.js assertion to verify that a specific source-code pattern (`normalizeAuthoredWorld(world)` following a lorebook array check) exists in the application's own source. The regex is hardcoded and operates on a controlled string (`app` source) at test time. There is no user input, untrusted data, or dynamic regex construction involved, so the regex cannot be exploited for ReDoS or injection. This is a standard test-time pattern check and presents no security risk.
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.unsafe-regex
- File role
- production
- Source
- scratch/authored_world_audit.js:172
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · low confidence
This pattern checks for 'I'm wearing...' in your story text. It's safe and carefully limited.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regex at line 20226 matches first-person wearing declarations with contractions. It has bounded quantifiers and no overlapping repetition. The 'unsafe-regex' signal is a conservative static analysis warning without evidence of vulnerability.
Impact: low · 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.unsafe-regex
- File role
- production
- Source
- app.js:20226
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The scanner flagged a placeholder base64 image used in a test. It is not a security concern.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The 'shady-link' signal at line 1154 corresponds to a test data URI 'data:image/png;base64,PROFILE' used as a fake profile photo in a unit test. This is a static test fixture, not a runtime network call or hidden transfer.
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
- production
- Source
- scratch/companion_audit.js:1154
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This default address points to ComfyUI, a tool that runs AI image workflows on your own computer. It's not a harmful link.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The flagged URL at line 1194 is the default fallback passed to normalizeLoopbackUrl for comfyUiBaseUrl. The ComfyUI integration connects to a local workflow engine running on 127.0.0.1:8188. This is a hard-coded loopback address consistent with the project's design; users can change it in settings. normalizeLoopbackUrl restricts URLs to loopback addresses, preventing unintended external connections. No malicious data flow or untrusted destination 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
- production
- Source
- app.js:1194
JavaScript analysis reported javascript.download-to-execution
Expected behavior · high confidence
The scanner thought there might be a connection between downloading something and running code, but this file does not actually download anything. It only runs the app's own test code in a sandbox.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution in this repository.
Contextual assessment: This candidate flags a correlation between network retrieval and code execution across lines 97-419. However, the supplied evidence contains no network retrieval primitive (no fetch, XMLHttpRequest, http/https module import, or similar). The file only uses require('fs'), require('path'), and require('vm'). The 'download-to-execution' signal is a false positive; no data flows from a network source into vm.runInNewContext. The code execution sinks (vm.runInNewContext) consume only statically extracted test strings.
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.download-to-execution
- File role
- production
- Source
- scratch/engine_audit.js:97-419
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a test that checks the system blocks external AI endpoints. The flagged URL is just a test example, not a real attack.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner rule flagged a literal URL in a unit test assertion. The test deliberately uses a remote URL to verify that the normalizeConfig function replaces it with the local Ollama endpoint. This is a security safeguard test, 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
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- scratch/labs_cognition_audit.js:44
JavaScript analysis reported javascript.xray.unsafe-vm-context
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.xray.unsafe-vm-context in this repository.
Contextual assessment: The vm.runInNewContext call at line 47 is part of a test sandbox that executes a snippet extracted from the project's own app.js. The sandbox contains only structuredClone, JSON, and utility functions. No dangerous APIs or dynamic user input are present. This is a standard unit-test pattern with no security implications.
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.unsafe-vm-context
- File role
- production
- Source
- scratch/gameplay_overhaul_audit.js:47
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This test uses vm to quickly check that a default preset is available when a new game starts. No external or user data is run.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: The vm.runInNewContext call at line 97 executes a hardcoded presets source variable (DEFAULT_SYSTEM_PRESETS) to verify that a starter world preset ID is valid. The executed code is a static variable defined elsewhere in the file, not from user input or external fetch. This is a safe test harness pattern.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/engine_audit.js:97
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
This code uses a simple pattern to find a specific tag in AI-generated text. The pattern is safe and won't cause the program to slow down or crash, even with unusual input.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regular expression at line 28851 is used to detect the start of an embedded tool call tag in model-generated text. The pattern contains no nested quantifiers or overlapping alternations that would cause catastrophic backtracking. ReDoS risk is negligible. This is a legitimate parsing function for the project's companion tool call protocol.
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.unsafe-regex
- File role
- production
- Source
- app.js:28856
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
This code uses a regular expression as part of a tool that reads and organizes the application's own source code. Since only the developer's own code is processed, there is no way for an attacker to trigger a problem here.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regular expression at line 193 is part of the tool's own static analysis logic. It replaces regex literals in source code with placeholders to avoid misinterpreting them as function calls. The input to this regex is the project's own file source, which is controlled by the developer. No attacker-supplied or untrusted user input reaches this pattern. Therefore, the ReDoS risk flagged by JS-X-Ray is not exploitable in this context.
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.unsafe-regex
- File role
- production
- Source
- scratch/app_source.js:193
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is just the default address for a local AI server on your own machine, like a phone number for your own computer. You can change it to any other local server.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The default base URL at line 16 is a hardcoded loopback address for a local Ollama-compatible API server. This is an expected and conventional default for local-first applications that allow users to substitute their own endpoint. The normalizeLoopbackBase function later validates any user-provided URL to ensure it stays on loopback. The scanner signal does not indicate exfiltration or harmful intent; the URL is safe and controlled.
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
- production
- Source
- labs-core.js:16
JavaScript analysis reported javascript.download-to-execution
Expected behavior · high confidence
The code talks to a local AI server to get JSON data, but never runs any code that the server sends back. It only reads the data, so there is no risk of running harmful code from the network.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution in this repository.
Contextual assessment: The file contains a fetch call to a configured loopback endpoint for obtaining JSON structures from a local model server. There is no dynamic code execution sink such as eval, Function, script injection, or command execution. The only code execution path is calling window.HordeLabsEmbedded.completeStructured, which is a pre-existing host object used only in embedded mode and is not supplied by network responses. All response handling is limited to JSON parsing and string extraction. The scanner correlation of network retrieval with a code execution sink is a false positive; no actual download-to-execution path exists in the supplied code.
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.download-to-execution
- File role
- production
- Source
- labs-core.js:1-238
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a test picture used to check that character profile photos are preserved in exports, but private chat photos are removed.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in 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
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- scratch/companion_audit.js:328
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This is a test that runs one of the app's own helper functions in a safe sandbox to check if it works correctly. No harmful code is involved.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: The file is a test suite in a scratch directory. Line 240 uses vm.runInNewContext with a static function source extracted from the application's own code (getWorldTimeData). No user-provided or external input reaches the evaluated string. The vm context is an empty object, and the function is a deterministic internal utility. This is standard unit-test isolation for a self-contained function and does not introduce code injection risk.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/engine_audit.js:240
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a built-in address to check for a local AI server called Ollama. It only looks at your own computer and doesn't go to the internet. That's exactly what it's supposed to do.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in 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
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- labs-core.js:391
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a false alarm. The scanner thought a line might contain a suspicious link, but it's actually a long string of image data stored directly inside the file. That's normal for this kind of game world file.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner flagged a 'shady-link' pattern at line 15, but the context shows this line contains an embedded base64-encoded JPEG image as a data URI. Data URIs are not network links; they are inline image data bundled as part of a world definition file. No external network request is made. The project's purpose is to provide a local-first AI roleplay platform with persistent worlds, and embedding media assets is expected and documented behavior.
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
- production
- Source
- policy-panic-world.js:15
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This test runs several of the app's own internal functions together in a sandbox to make sure the snapshot feature works. No user data or outside code is used.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: Lines 249-256 wrap four deterministic helper functions (isPlainObject, safeJsonClone, captureWorldTurnState, restoreWorldTurnState) and a stub for bumpMemoryEpoch into a single vm context for a unit test. All source strings originate from the application's own bundle, not from any external or untrusted source. The test validates snapshot/restore behavior with fixed inputs. No dynamic or attacker-controlled data is evaluated.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/engine_audit.js:249-256
JavaScript analysis reported javascript.xray.unsafe-vm-context
Expected behavior · high confidence
This is a test file that runs a piece of the app's own code in an isolated sandbox to check if the world map works correctly. It's not exposed to users or attackers, so it's a safe and expected use of JavaScript's VM feature.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-vm-context in this repository.
Contextual assessment: The file `file` is a standalone test harness that uses `vm.runInNewContext` to execute a statically extracted portion of the application's own world map engine source code. The extracted code is hardcoded and derived from the same repository's `file`; no user-supplied or external untrusted input reaches the VM context. The context object is initially empty, and the executed code only defines helper functions and assigns them to the context. This pattern is a legitimate testing technique for isolating and validating specific logic without side effects. While `vm.runInNewContext` can execute arbitrary code, in this specific usage there is no data flow from an attacker or untrusted source, and the test does not run in a production user-facing context. No security risk is demonstrated.
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.unsafe-vm-context
- File role
- production
- Source
- scratch/world_map_stress_test.js:17-30
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
This regex is used to detect roleplay actions like "*smiles*" so they can be removed from chat text. It only runs on very short pieces of text (under 140 characters) and starts matching from the beginning, so even if it takes a few extra steps to decide something doesn't match, it won't cause any noticeable delay or security problem.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regex `actionCue` is anchored with `^` and applied to short trimmed substrings (max 140 characters) extracted from companion replies. While the `[a-z]+ing\b` alternative could cause backtracing, the anchored pattern and bounded input length (≤140 characters) limit worst-case step count to O(n), which is negligible in a client-side context. No evidence of exploitable denial-of-service or data exposure was supplied. The scanner's static signal does not account for these contextual constraints.
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.unsafe-regex
- File role
- production
- Source
- app.js:29368
JavaScript analysis reported javascript.xray.unsafe-vm-context
Expected behavior · high confidence
A test that checks whether CSS sanitization functions work. It only uses test strings, so it is safe.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-vm-context in this repository.
Contextual assessment: This candidate flags vm.runInNewContext at line 143 within a test function ('CSS-facing values reject declaration injection'). The call executes statically extracted functions cssUrl and cssColor with hardcoded test strings. No user or network input is involved. This is a legitimate unit test.
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.unsafe-vm-context
- File role
- production
- Source
- scratch/engine_audit.js:143
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The security scanner flagged a line inside a block of image data. This is a false alarm—the data is an encoded picture, not a real link.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The JS-X-Ray 'shady-link' signal fired at line 155 inside a base64-encoded image data URI. The line is part of a data:image/jpeg;base64,... string for an NPC portrait (media_policy_wade). Base64 encoding can produce arbitrary sequences that incidentally match suspicious URL patterns. No network request or external destination exists at this location.
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
- production
- Source
- policy-panic-world.js:155
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
This pattern finds the end of a tag in AI text. Like the previous one, it is safe and won't cause performance issues.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regular expression at line 28856 is used to detect the closing tag for an embedded tool call. Its structure mirrors the opening tag pattern and is similarly safe from ReDoS. No user-facing vulnerability is introduced.
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.unsafe-regex
- File role
- production
- Source
- app.js:28851
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The app sends a header with its own website address when talking to OpenRouter. This is a normal way to identify the app, not a shady link.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner flagged a shady-link at line 613. The evidence window shows the attributionHeaders function (with the horde-studio.ai URL) is defined near this line. The URL is the project's own domain, used for OpenRouter attribution. This is consistent with the project's stated integration and is not suspicious.
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
- production
- Source
- app.js:613
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The app fetches data from a small helper program running on your own computer. The address is localhost, which is safe.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner flagged a shady-link at line 427. The evidence shows the mcpBridgeRequest function using fetch to call the local MCP bridge (default localhost URL). The base URL is user-configurable and defaults to a local loopback address. This is a legitimate local bridge communication, not an external shady link.
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
- production
- Source
- app.js:427
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This test runs the world-window rotation function in a sandbox to confirm it works for large worlds. Only the app's own code is involved.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: This vm.runInNewContext invocation extracts the rotatingWorldWindow function from the project's own file source and executes it in a context with only safe globals (Math, Number, Array). The test verifies that rotation produces different orderings for different seeds. No external or user-controlled code is executed; the evaluated string is a static slice of internal production logic.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/gameplay_overhaul_audit.js:84
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is another test using a fake image URL to check how the app handles removing an image reference. It is safe test data, not an actual threat.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The 'shady-link' scanner signal (javascript.xray.shady-link) flagged a data URI at line 1375 in the test file companion_audit.js. The URI ('data:image/png;base64,REFERENCE') is a static placeholder used in a unit test for reference-free recovery. It is not attacker-controlled, not used in production, and not exfiltrated. The test verifies that removing the reference image yields a standalone prompt. No security concern.
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
- production
- Source
- scratch/companion_audit.js:1375
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
Detailed wording was omitted by the public report safety filter.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: The file is a regression and limit stress test for the semantic world-map engine. It uses Node's built-in vm.runInNewContext to execute a sandboxed subset of the application's world-map source code. The sandbox context is an empty object ({}), and the executed code consists of helper functions and the extracted source. No untrusted user input is provided; all data is hardcoded test data. The vm module is the standard Node.js sandboxing mechanism and is appropriate for test isolation. There is no evidence of eval or dynamic code execution with untrusted content.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/world_map_stress_test.js:17-30
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The code is reading a streaming response from an AI model, which is a normal feature of AI chat applications. It does nothing suspicious.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner flagged the string 'data: ' at line 3098 as a 'shady-link' pattern. However, this code is parsing a Server-Sent Events (SSE) stream from an AI text generation API (as shown in the surrounding context: POST request with streaming response, parsing lines starting with 'data: ' and extracting JSON delta content). This is standard, expected behavior for consuming LLM streaming responses and does not indicate any data exfiltration or malicious network access. No external untrusted destination or concealed 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
- production
- Source
- app.js:3098
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a test photo placeholder to ensure older photo data is handled properly during updates.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The flagged string is a static data URI used in a test to normalize a companion object. It provides a legacy basePhoto value for migration assertions. No external transmission occurs; the test only validates that profilePhoto and basePhoto are correctly assigned.
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
- production
- Source
- scratch/companion_audit.js:437
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a false alarm. The scanner thought a line might contain a suspicious link, but it's actually a long string of image data stored directly inside the file. That's normal for this kind of game world file.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner flagged a 'shady-link' pattern at line 35, but the context shows this line contains an embedded base64-encoded JPEG image as a data URI. Data URIs are not network links; they are inline image data bundled as part of a world definition file. No external network request is made. The project's purpose is to provide a local-first AI roleplay platform with persistent worlds, and embedding media assets is expected and documented behavior.
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
- production
- Source
- policy-panic-world.js:35
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
A scanner flagged a web address in the code, but it is just a default link to a program running on your own computer. That is normal for this kind of software.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: Line 232 defines a constant default URL pointing to the local Python bridge at 127.0.0.1 on port 43127. This is a loopback address with no external reachability or sensitive data exposure. The project is local-first and runs its own bridge on that endpoint. The constant is used only when no custom URL is configured, and the code validates loopback URLs before use.
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
- production
- Source
- app.js:232
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This code removes a temporary audio URL after preview playback, which is normal cleanup. It does not send data anywhere or do anything suspicious.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The JavaScript signal 'shady-link' was triggered on line 31560, which calls URL.revokeObjectURL on a blob: URL during TTS audio preview cleanup. This is standard browser API usage for releasing object URLs after audio playback, not unusual or suspicious behavior. No actual URL or link is constructed or used; the literal 'blob:' is used only for a string prefix check. The matched literal was not retained, but the context confirms the operation is benign and expected for a TTS preview feature.
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
- production
- Source
- app.js:31560
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The app uses a default address for a local image server on your own computer—this is normal and safe.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: This line sets a default URL for a local image generation server (loopback address 127.0.0.1:7860). It is a configuration default, not an external or malicious link.
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
- production
- Source
- app.js:8685
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
The code uses a regular expression to read what audio format an AI service wants. The expression is simple and won't cause performance problems, even if someone sends weirdly crafted text.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regex at line 31404 is used to parse TTS API error messages for a required audio format. It matches simple literal strings like "only supports mp3" or "accepted: pcm" with optional quotes and whitespace. There are no nested quantifiers, overlapping alternatives, or other patterns that cause exponential backtracking. JS-X-Ray's unsafe-regex signal is a false positive for this pattern; the regex executes in linear time relative to input length. Input comes from API error responses, which are short strings, and even with adversarial input the performance impact is negligible.
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.unsafe-regex
- File role
- production
- Source
- app.js:31404
zizmor reported artipacked
Expected behavior · high confidence
This warning says the workflow might save secret credentials in a build artifact, but the workflow doesn't upload any artifacts at all, so the warning is a false alarm.
Technical evidence
Scanner reason: zizmor matched workflow-security rule artipacked in this repository.
Contextual assessment: The 'artipacked' rule flags credential persistence through GitHub Actions artifacts. The supplied workflow contains no actions/upload-artifact step or any other artifact-upload mechanism. The scanner likely produced a false positive due to heuristic matching with an unpinned action reference. No credential-leakage path exists in the evidence.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- zizmor 1.28.0
- Rule
- artipacked
- File role
- tooling
- Source
- .github/workflows/release.yml:15-16
JavaScript analysis reported javascript.xray.unsafe-vm-context
Expected behavior · high confidence
This test uses a safe sandbox to verify a small piece of app logic. It cannot access sensitive data or cause harm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-vm-context in this repository.
Contextual assessment: The vm.runInNewContext call at line 84 is a test that executes a function extracted from the project's own app.js. The sandbox is limited to a single helper function (isPlainObject). No user-controlled data reaches the sandbox. The pattern is typical for isolated testing and does not pose a security risk.
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.unsafe-vm-context
- File role
- production
- Source
- scratch/gameplay_overhaul_audit.js:84
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a test picture inside a simulated chat history, used to confirm that private photos are removed when saving character archives.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The flagged string is a static data URI for a generated photo in a timeline message used to test archive export. The test verifies that private generation data is not included in the exported payload. No network or attacker-controlled input is involved.
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
- production
- Source
- scratch/companion_audit.js:351
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a false alarm. The scanner thought a line might contain a suspicious link, but it's actually a long string of image data stored directly inside the file. That's normal for this kind of game world file.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner flagged a 'shady-link' pattern at line 55, but the context shows this line contains an embedded base64-encoded JPEG image as a data URI. Data URIs are not network links; they are inline image data bundled as part of a world definition file. No external network request is made. The project's purpose is to provide a local-first AI roleplay platform with persistent worlds, and embedding media assets is expected and documented behavior.
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
- production
- Source
- policy-panic-world.js:55
JavaScript analysis reported javascript.xray.unsafe-vm-context
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.xray.unsafe-vm-context in this repository.
Contextual assessment: The file uses vm.runInNewContext to execute a static code snippet from a local variable (app) within a sandboxed context containing only console, a toast stub, and project-specific helper objects. This pattern is appropriate for isolating module code during stress testing; the executed code and context are both controlled by the test file itself, not by external user input or an untrusted source. The scanner signal reflects a static pattern match for unsafe-vm-context, but no evidence of untrusted data being passed to vm.runInNewContext is present in the supplied source.
Impact: low · 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.unsafe-vm-context
- File role
- production
- Source
- scratch/quest_engine_stress_test.js:55-66
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The code checks if the server address is on your own computer by comparing it to well-known local addresses like 'localhost'. This helps show a warning if you try to connect to another machine. It is harmless and expected.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: This scanner alert flagged the string literal list of loopback hostnames at line 8835. These values are used to determine whether the user-specified URL resolves to a local address, which informs a CSP warning displayed to the user. The list is static and contains standard loopback identifiers. It does not introduce any network access or data flow. The alert is a false positive from static analysis rules for URL-like 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
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- app.js:8835
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The security scanner flagged a test value that looks like a data URI. It is only used in a test and poses no risk.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The 'shady-link' signal at line 1124 corresponds to a test data URI 'data:image/png;base64,PROVIDER_REFERENCE' used as a base photo reference in a unit test for image API request building. It is a static fixture with no real provider reference or external destination.
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
- production
- Source
- scratch/companion_audit.js:1124
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
This regex checks if a line of code ends with a semicolon while reading the app's own source files. Because only the app's own code is checked, an attacker cannot use it to slow things down.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regular expression at line 239 is used to test whether a line of source code ends with a semicolon (optionally followed by a comment). It operates on trimmed lines extracted by the tool from the project's own file file. The input is developer-controlled source code, not external data. There is no demonstrated path for an attacker to supply input to this regex, so the ReDoS concern does not apply here.
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.unsafe-regex
- File role
- production
- Source
- scratch/app_source.js:239
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a false alarm. The scanner thought a line might contain a suspicious link, but it's actually a long string of image data stored directly inside the file. That's normal for this kind of game world file.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner flagged a 'shady-link' pattern at line 75, but the context shows this line contains an embedded base64-encoded JPEG image as a data URI. Data URIs are not network links; they are inline image data bundled as part of a world definition file. No external network request is made. The project's purpose is to provide a local-first AI roleplay platform with persistent worlds, and embedding media assets is expected and documented behavior.
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
- production
- Source
- policy-panic-world.js:75
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This URL is for checking if KoboldCpp, another local AI server, is running on your machine. It only looks at your own computer and is harmless.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in 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
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- labs-core.js:394
JavaScript analysis reported javascript.credential-to-network
Expected behavior · high confidence
The app sends your API keys to the AI providers you choose (OpenRouter, GPTProto, or a local server). This is how it pays for and accesses those services. The keys are not sent anywhere else.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.credential-to-network in this repository.
Contextual assessment: The scanner correlated credential access (apiKey, gptprotoApiKey, localApiKey) with outbound network sinks. The code in providerAuthHeaders reads these keys and attaches them as Bearer tokens to API requests to the user-configured providers. This is expected behavior for an application that authenticates to external AI services. The credentials are only sent to the provider endpoints the user selects (OpenRouter, GPTProto, or local). No evidence of exfiltration to unauthorized destinations was found.
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.credential-to-network
- File role
- production
- Source
- app.js:400-1283
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This line cleans up a temporary audio blob after playing it, which is normal and helps save memory. It is not suspicious or dangerous.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: Line 31642 calls `URL.revokeObjectURL()` on a blob URL after playback completes. This is standard JavaScript practice to release memory associated with an object URL when it is no longer needed. The 'shady-link' scanner signal is a false positive in this context; no external/network destination is involved, no credentials are transmitted, and the operation occurs entirely within the browser's blob URL lifecycle. The function `playCompanionVoiceMessage` is part of the application's TTS voice note feature, which legitimately generates and plays audio blobs.
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
- production
- Source
- app.js:31642
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a test photo placeholder used to check that character reference photos are excluded from exported archives.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in 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
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- scratch/companion_audit.js:327
JavaScript analysis reported javascript.xray.unsafe-vm-context
Expected behavior · high confidence
A test that verifies the app correctly picks a starter world preset. It only uses the app's own code, so it is harmless.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-vm-context in this repository.
Contextual assessment: This candidate flags vm.runInNewContext at line 125 within a test function ('starter world points to an installed preset' duplicate detection). The call executes statically extracted preset source with a hardcoded string. No external input is involved. This is a standard unit-test usage.
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.unsafe-vm-context
- File role
- production
- Source
- scratch/engine_audit.js:125
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · low confidence
This pattern reads when you write 'my outfit is...' in the story. It's a simple, safe expression.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regex at line 20228 matches 'my outfit is ...' phrases. It uses a bounded capture ([^.!?;]{2,100}) and a simple optional group. No unsafe repetition or nested quantifiers exist. The scanner alert is not supported by concrete exploit evidence.
Impact: low · 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.unsafe-regex
- File role
- production
- Source
- app.js:20228
JavaScript analysis reported javascript.xray.obfuscated-code
Expected behavior · high confidence
The scanner thought parts of this file might be hidden or scrambled, but looking at the actual text shows it's just normal instructions and settings for the AI, written in plain English with some symbols. Nothing is actually hidden.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code in this repository.
Contextual assessment: The JS-X-Ray obfuscated-code signal is raised with low confidence against presets.js. Inspection of the file content shows clean JavaScript object literals with readable property names and string values. The long multi-line strings contain HTML-like tags, Unicode characters, and structured instructions, which may trigger heuristic obfuscation detection, but there is no actual variable renaming, string splitting, or encoded payload. The content is functionally transparent and serves its intended purpose as a preset definition file.
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.obfuscated-code
- File role
- production
- Source
- presets.js:1
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This is a test that checks whether the tool that pulls out pieces of the program's own code works correctly. It tries to parse each extracted snippet as a function using `new Function`, which is a normal JavaScript way to check if code is valid. Only the project's own source code is used, not anything a user or attacker could control. This is not a security issue.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: The `new Function()` call at line 180 appears in a test suite function that validates the parser correctly extracts function source code. The input (`entry.source`) is sourced from the project's own source files via a deterministic extraction process, not from any user-supplied or external data. The test iterates over pre-extracted function declarations and checks that each parses without error. This is a standard testing pattern for ensuring code extraction correctness. There is no runtime path in production where user-controlled input reaches `new Function()` through this code; the file is a test harness not shipped as functional application code.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/extractor_audit.js:180
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The security scanner flagged a line inside image data. This is a false positive—the line contains an encoded image, not an actual web link.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The JS-X-Ray 'shady-link' signal fired at line 105 inside a base64-encoded image data URI. The line is part of a data:image/jpeg;base64,... string for a location background (media_policy_records). Base64 encoding can generate byte sequences that coincidentally match suspicious URL detection patterns. No actual network access or untrusted destination 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
- production
- Source
- policy-panic-world.js:105
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This checks for LM Studio, a popular local AI app, at a standard address that only points to your own computer. It's a helpful shortcut and does nothing harmful.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in 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
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- labs-core.js:392
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
This code cleans up any leftover tags in AI text. The search pattern is safe and won't cause problems.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regular expression at line 28906 searches for any remaining dangling tool call or argument tags that were not consumed by the main extraction loop. It combines two alternatives without nested quantifiers, so ReDoS is not a practical concern. The pattern is part of a necessary cleanup step in the tool call parser.
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.unsafe-regex
- File role
- production
- Source
- app.js:28906
JavaScript analysis reported javascript.xray.obfuscated-code
Expected behavior · high confidence
The code simply sets up a list to record errors if they happen. It's written in plain, readable JavaScript, not hidden or scrambled.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code in this repository.
Contextual assessment: Line 1 of file shows `window.__hordeRuntimeErrors = window.__hordeRuntimeErrors || [];` — a standard forward-compatible initialization for a runtime error tracking array. The double-underscore prefix is a common JavaScript convention for internal or private globals, not obfuscation. There is no minification, string encoding, dynamic code execution, or concealment of logic. The scanner's low confidence and the clear readable source indicate a false positive.
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.obfuscated-code
- File role
- production
- Source
- app.js:1
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The app uses a default address for ComfyUI, a local creative tool, on your own computer—this is normal and safe.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: This line sets a default URL for a local ComfyUI workflow execution server (loopback address 127.0.0.1:8188). It is a configuration default for a local creative tool integration.
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
- production
- Source
- app.js:8611
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This default address is for ComfyUI, an AI image generator that runs locally. It's meant for your own computer, not an external site.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The flagged URL at line 1167 is a default value for comfyUiBaseUrl in the globalSettings object. This is the address for a local ComfyUI instance that generates images and media. The project's README documents this as an expected configuration step. The URL is hard-coded only as a default and is never sent to an external server by default; it is used only to configure a local service that the user runs. normalizeLoopbackUrl enforces loopback-only usage.
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
- production
- Source
- app.js:1167
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · medium confidence
This regex is used to spot important story events like a character dying. It's a fixed pattern, not something built from user input. While some regex patterns can be slow on tricky inputs, this one is simple and applied to short sentences, so it's not a practical security risk.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The static regex at line 7993 is a fixed pattern used to detect decisive narrative events like death or destruction within a fallback chronicle builder. The pattern contains an optional group with a word-character-and-space quantifier, but the overall structure does not exhibit nested quantifiers or alternations that would cause exponential backtracking on moderate-length narrative sentences. The code further limits sentence length to 420 characters, reducing any theoretical ReDoS surface. No dynamically constructed regex or untrusted input reaches the regex constructor; the pattern is compile-time constant. The JS-X-Ray unsafe-regex signal is a conservative alert that does not account for the bounded input context.
Impact: low · 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.unsafe-regex
- File role
- production
- Source
- app.js:7993
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The scanner saw a fake base64 image value in a test. It is not a real threat.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The 'shady-link' signal at line 1223 corresponds to a test data URI 'data:image/webp;base64,AAAA' used as a fake inlineData response in a unit test for GPTProto image extraction. This is a static test fixture, not a real base64 payload or network destination.
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
- production
- Source
- scratch/companion_audit.js:1223
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
This regex finds function definitions in the app's own code so the tool can track them. Since it only processes code written by the developer, it cannot be abused by an outsider.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regular expression at line 211 defines the pattern for matching async and regular function declarations in JavaScript source. It is used by the tool to identify functions declared in the project's file file. The input is entirely the project's own source code, under the developer's control. There is no exposure to untrusted user input, so the flagged ReDoS potential is not a real vulnerability in this context.
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.unsafe-regex
- File role
- production
- Source
- scratch/app_source.js:211
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This test makes sure the app's HTML escaping function works against a known attack string. It runs a tiny piece of the app in a sandbox to confirm safety.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval in this repository.
Contextual assessment: The vm.runInNewContext call at line 115 extracts and runs the escapeHTML function from the application source to test its ability to neutralize stored markup. The sliced source is fixed and the test input is a hardcoded string. This isolated execution verifies a security control without exposing any runtime attacker control.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- scratch/engine_audit.js:115
JavaScript analysis reported javascript.xray.unsafe-vm-context
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.xray.unsafe-vm-context in this repository.
Contextual assessment: The vm.runInNewContext call at line 115 is a test that executes a function extracted from the project's own app.js. The sandbox contains only Set, RegExp, and String globals. No external input or dangerous capabilities are provided. The activity is standard for testing in isolation and does not present a security concern.
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.unsafe-vm-context
- File role
- production
- Source
- scratch/gameplay_overhaul_audit.js:115
JavaScript analysis reported javascript.xray.unsafe-vm-context
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.xray.unsafe-vm-context in this repository.
Contextual assessment: This candidate flags vm.runInNewContext at line 115 within a test function ('CSP blocks inline scripts and plugins') – but actually the proof shows the call is at line 115 within the 'starter world points to an installed preset' test section (from the bounded evidence window). Regardless, the call uses statically extracted code and a hardcoded string built from app.slice. No dynamic or external data is passed to the VM. This is safe testing behavior.
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.unsafe-vm-context
- File role
- production
- Source
- scratch/engine_audit.js:115
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The security check flagged a line of code that checks whether a piece of streaming data starts with 'data:'. This is a completely normal and expected part of reading a streaming response from an AI provider — it's not a shady link or anything harmful. The warning is a mistake.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link in this repository.
Contextual assessment: The scanner rule 'shady-link' triggered on a line inside processWorldStreamLine that parses Server-Sent Events (SSE) from an AI provider's /chat/completions streaming endpoint. The line 'if (!line.startsWith('data:')) return;' is standard SSE parsing logic and contains no link, URL, or external destination. The matched literal values were not retained by the scanner, and no evidence of a shady link, exfiltration, or unauthorized network access is present in the provided code context. This is a false positive caused by the rule matching the literal string 'data:' or a pattern within it.
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
- production
- Source
- app.js:19198
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · medium confidence
This line uses a simple pattern to read version numbers. It does not create any security risk.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex in this repository.
Contextual assessment: The regex /\d+(?:\.\d+){0,3}/ extracts up to four numeric version components. It has no nested quantifiers or backtracking traps; it is not vulnerable to ReDoS. Input comes from release tag strings, not attacker-controlled data of arbitrary length.
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.unsafe-regex
- File role
- production
- Source
- app.js:9083