No material or immediate-danger item was identified.
Contextual expected matches (45)
JavaScript analysis reported javascript.xray.unsafe-vm-context
Expected behavior · high confidence
The test file uses a JavaScript sandbox to run pieces of the app's own code in isolation and check the results. It only runs code that already exists in the project and does not execute anything downloaded or provided by an outsider.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-vm-context. The match applies to this repository.
Contextual assessment: The file is a scratch audit/test harness that uses vm.runInNewContext to execute function bodies extracted from the project's own file source for isolated unit testing. Each invocation creates an empty context object, runs a slice of the project's own already-written function source, and then asserts on the returned values. No untrusted input, network data, or user-supplied content flows into these VM contexts. The code executed is the project's own source read from local files, not dynamically retrieved or attacker-controlled content. This is a standard Node.js testing pattern for evaluating pure functions outside a browser environment.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.unsafe-vm-context
- File role
- production
- Source
- scratch/engine_audit.js:97
JavaScript analysis reported javascript.download-to-execution
Expected behavior · high confidence
The code contacts local AI model servers on the user's own machine or local network, which is exactly what this application is designed to do. No evidence of downloading and running code was found.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution. The match applies to this repository.
Contextual assessment: The scanner flagged co-occurrence of a network retrieval primitive and a code execution sink in the same file. The supplied source shows fetch calls to local OpenAI-compatible model endpoints (127.0.0.1, 192.168.x.x, 10.x.x.x) for health checks and text completion. The normalizeLoopbackBase and isPrivateHost functions validate that the configured base URL resolves to a private or loopback address before use, falling back to the default localhost URL otherwise. No eval, Function constructor, or other dynamic code execution sink is visible in the supplied evidence windows. The network calls match the project's stated purpose of connecting to local model servers.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.download-to-execution
- File role
- production
- Source
- labs-core.js:1-253
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This is a test that runs the project's own keyword-parsing code in a sandbox. No outside or user-controlled data is involved.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The flagged `vm.runInNewContext` at line 115 executes a source slice from the project's own `file`, providing only Set, RegExp, and String as globals. It tests the project's own lore-keyword parsing logic. No untrusted or attacker-controlled input reaches the code 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:115
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The scanner saw long encoded text and flagged it as suspicious links. In reality, those are just embedded picture data for a roleplay world, like images stored directly inside the file. There are no web addresses or network connections here.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged 14 occurrences of a shady-link signal, but the supplied source shows this file is a static data declaration that pushes a world-definition object into a global array. The only string content consists of embedded base64 data-URI image payloads (data:image/jpeg;base64,...) for character portraits and location backgrounds. These are not URLs, network calls, or external links; they are inline media assets bundled with the world definition. JS-X-Ray's heuristic is triggering on long encoded strings, not on demonstrated network access or suspicious destinations.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- policy-panic-world.js:2
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This is a test that runs the project's own snapshot code in a sandbox. No outside or user-controlled data is involved.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: Detailed technical wording was omitted by the public report safety filter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- 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
The scanner mistook a data-URI prefix string in a test assertion for a suspicious link. The line simply checks that a character's photo is stored as an embedded image, not as a web address. No network access is involved.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged line 36 as a shady-link signal. Line 36 is `assert(ash.profilePhoto.startsWith('data:image/jpeg;base64,'))`, which is a test assertion verifying that a bundled virtual human's profile photo is a base64-encoded JPEG data URI. This is not a network URL or external link; it is a local data-URI prefix check in a test assertion. No network access, exfiltration, or attacker-controlled input 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_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- scratch/included_human_audit.js:36
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This is a test script that runs the project's own code in a sealed-off sandbox to check it works correctly. No outside or untrusted data is involved.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The matched vm.runInNewContext call executes the project's own preset source code inside an empty sandboxed VM context for unit testing. The source string is derived from local project files read at the top of this audit harness, not from attacker-controlled input. This is a standard pattern for running browser-targeted JS functions under Node.js for validation.
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.suspicious-literal
Expected behavior · high confidence
This file only contains text presets for AI roleplay prompts — instructions and settings stored as plain data. There is no code that runs, connects anywhere, or accesses anything sensitive. The scanner flag is a false alarm caused by the unusual formatting of the preset text.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.suspicious-literal. The match applies to this repository.
Contextual assessment: The file is a static data module defining a DEFAULT_SYSTEM_PRESETS array containing SillyTavern-compatible roleplay preset objects with prompt template strings, UUIDs, and configuration values. No executable logic, network calls, external destinations, or dynamic evaluation are present. The suspicious-literal signal is a false positive from the large structured string literals containing emoji, templating placeholders, and telegraphic prompt text.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.suspicious-literal
- File role
- production
- Source
- presets.js:1
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is the same bundled character file in its original form. It only contains character data and embedded images—no links, no network calls, and nothing harmful.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: This is the raw representation of the same generated character-seed file. The code spreads an existing array and appends one virtual-human object containing character metadata and two inline base64 JPEG data URIs. No external URLs, network calls, dynamic code execution, or credential access appears in the supplied source. The scanner's shady-link signal is attributable to the large inline base64 payloads and does not correspond to any demonstrated network destination or attacker-controlled data flow.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- ashlyn-reynolds-human.js:5
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
The test runs the project's own HTML-escaping function in a sandbox to confirm it blocks malicious markup. No untrusted data feeds into the execution call itself.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The matched vm.runInNewContext call extracts the escapeHTML function from the project's own file source and runs it in an empty sandboxed context to verify it neutralizes stored markup. The executed code originates from local project files, not external input.
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.shady-link
Expected behavior · high confidence
The flagged links are all local network addresses used to find and connect to AI model software running on the user's own computer. This is normal and expected for this application.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: Detailed technical wording was omitted by the public report safety filter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- labs-core.js:17
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
The test checks the project's CSS sanitization functions in a sandbox. Only the project's own code is executed.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The matched vm.runInNewContext call runs the project's own CSS validation functions (cssUrl, cssColor) in an empty sandboxed context to verify they reject declaration injection. Source is sliced from local project files with no external input.
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.sql-injection
Expected behavior · high confidence
The scanner thought it found a database injection risk, but the flagged line is just a diagnostic log message about clothing changes in the story engine. There is no database query involved at all.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.sql-injection. The match applies to this repository.
Contextual assessment: The scanner flagged line 21805 as a SQL injection signal, but the actual code at that line is a console.warn call logging an outfit-change fallback in the world engine. There is no SQL query construction, database connection, or SQL-related code anywhere in the visible context. The application uses browser-based IndexedDB storage, not SQL. This is a false positive from pattern matching on string interpolation in the log statement.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.sql-injection
- File role
- production
- Source
- app.js:21805
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This is a test that runs the project's own windowing code in a sandbox. No outside or user-controlled data is involved.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The flagged `vm.runInNewContext` at line 130 executes the project's own `rotatingWorldWindow` function extracted from `file`, with only Math, Number, and Array as globals. No untrusted or attacker-controlled input is involved. This is a regression test for the project's own attention-rotation 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:130
JavaScript analysis reported javascript.xray.obfuscated-code
Expected behavior · high confidence
The scanner thought the file might contain hidden code because it has large blocks of encoded text. Those blocks are just embedded image data for a game world, not hidden programs. The file simply stores world settings and pictures.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. The match applies to this repository.
Contextual assessment: The obfuscated-code signal was raised at low scanner confidence on a file that is a straightforward data declaration. The source shows a single globalThis array push containing a static world-definition object with metadata, visual settings, and 13 embedded base64 JPEG data-URI media assets. There are no eval calls, dynamic code generation, string-to-code conversion, encoded scripts, or concealed executable logic. The large base64 blobs are image data for portraits and backgrounds, which static analysis commonly misidentifies as obfuscation. No executable behavior is hidden.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.obfuscated-code
- File role
- production
- Source
- policy-panic-world.js:1
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a test script that deliberately uses a fake web address to confirm the application blocks remote connections and forces them to local-only endpoints. No real connection is ever made to that fake address.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged a test fixture URL on line 45. The code is an audit script that asserts normalizeConfig forces a remote base URL (a well-known RFC 2606 reserved example domain used purely as a test input) back to the local loopback address. No network request is made to that domain; the mock fetch intercepts all calls and returns synthetic data. The URL appears solely as test input to verify that remote cognition endpoints are blocked and rewritten to localhost, which is a security-enforcing assertion, not an exfiltration path.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- scratch/labs_cognition_audit.js:45
JavaScript analysis reported javascript.xray.obfuscated-code
Expected behavior · high confidence
This is a build script that prepares image assets and bundles them into a world definition file for the application. It reads local images, resizes them, and packages everything into a format the app can use. The code is clear and readable with no hidden or malicious behavior.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. The match applies to this repository.
Contextual assessment: The scanner flagged obfuscated-code at line 1, but the actual source is a straightforward Node.js build script. It requires fs, path, and sharp, reads local PNG image assets, resizes and converts them to JPEG via sharp, base64-encodes the results, and assembles a world definition JSON object that is written to local .horde_world and .js files. The hashData function is a simple FNV-1a variant used to generate deterministic asset identifiers. All file paths are derived from process.cwd() and fixed relative directories. There are no network calls, no credential access, no eval or dynamic code execution, and no obfuscation. The code is readable and its purpose matches the project's stated world-building functionality.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.obfuscated-code
- File role
- production
- Source
- scratch/build_policy_panic_world.js:1
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
A second scanner flagged the same test-sandbox pattern. The code it runs comes entirely from the project's own source files, not from anything a user or attacker could control.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: This is the same vm.runInNewContext call on lines 55-66 flagged by a second scanner rule. As analyzed in the prior group, the executed string is a static slice of the project's own file quest-engine block, loaded from disk and bounded by fixed string anchors. No untrusted or user-controlled input flows into the code string or the VM context. The context contains only console, stub UI helpers, and mock world/session utilities. This is a deterministic test harness with no runtime exposure to external data.
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 is a test file that uses a pattern-matching expression to verify the project's own code contains certain safety checks. The expression only runs against the project's own source code during testing, never against data from users or the internet, so there is no security risk.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The flagged signal is a regex literal inside a test assertion that checks whether the project's own application source string contains expected function-call patterns. The regex is applied to a known, static developer-controlled source string, not to attacker-controlled input. There is no untrusted data flow, no network or user input reaching this regex, and no reachable ReDoS or other security impact in shipped runtime 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_families-1
- Rule
- javascript.xray.unsafe-regex
- File role
- production
- Source
- scratch/authored_world_audit.js:172
JavaScript analysis reported javascript.download-to-execution
Expected behavior · high confidence
The scanner saw both file reading and code execution in the same test file and flagged a possible download-then-run pattern. In reality, the file reads are loading the project's own source code from disk, and the code execution is just running that same local code in a test sandbox. Nothing is downloaded from the internet and then executed.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution. The match applies to this repository.
Contextual assessment: The scanner correlated a retrieval primitive with a code-execution sink in the same file representation. In the supplied source, the retrieval is fs.readFileSync reading the project's own local HTML and JavaScript files, and the execution sink is vm.runInNewContext running extracted slices of that same local project code for testing. There is no data flow from a network source to a code-execution sink. The two capabilities coexist in a test harness but are not connected: local file reads feed assertions and VM-based unit tests, not dynamic execution of retrieved remote content.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.download-to-execution
- File role
- production
- Source
- scratch/engine_audit.js:97-419
JavaScript analysis reported javascript.xray.unsafe-vm-context
Expected behavior · high confidence
This is a test that runs pieces of the project's own code in a sandbox to verify they work correctly. No outside or user-controlled data is involved.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-vm-context. The match applies to this repository.
Contextual assessment: The flagged `vm.runInNewContext` at line 47 executes a source slice extracted from the project's own `file` file read from disk. The context is given a minimal, hand-picked set of globals (structuredClone, JSON, safeJsonClone, isPlainObject, bumpMemoryEpoch). No untrusted or attacker-controlled input flows into either the code string or the context. This is a regression test that validates the project's own engine functions in isolation.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.unsafe-vm-context
- File role
- production
- Source
- scratch/gameplay_overhaul_audit.js:47
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
The test runs the project's own data-checking functions in a sandbox to ensure they reject bad data. No outside input is involved in the execution call.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The matched vm.runInNewContext call executes the project's own data validation functions (validateCharacterData, validateRoomData, validateWorldData) in an empty sandboxed context to confirm they reject malformed records. The source is extracted from local project files, not from attacker-controlled input.
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.prototype-pollution
Expected behavior · high confidence
The flagged code actively prevents a type of attack called prototype pollution by blocking dangerous property names during data copying. The scanner saw the keywords but missed that they are being filtered out defensively.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.prototype-pollution. The match applies to this repository.
Contextual assessment: The flagged code is safeJsonClone, which explicitly strips __proto__, prototype, and constructor keys during JSON round-trip cloning. This is a prototype-pollution mitigation, not a vulnerability. The scanner matched on the prototype-related keywords without recognizing the defensive filter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.prototype-pollution
- File role
- production
- Source
- app.js:1150
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
This is a developer tool that reads the project's own source code to help with testing. A pattern-matching expression in the tool was flagged as potentially slow, but it only processes the project's own files, not anything a user or attacker could control. At worst it could be slightly slow on the developer's machine during tests.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The flagged regex on line 193 is part of a source-code preprocessing helper that strips regex literals from file source text before analyzing whether const initializers are inert. It operates exclusively on the project's own source file read from disk, not on attacker-controlled input. The unsafe-regex signal flags potential catastrophic backtracking, but no untrusted input reaches this regex. Even if backtracking occurred, it would be a local performance issue during development test runs — self DoS at most. No external data flow, network access, or credential exposure 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_families-1
- Rule
- javascript.xray.unsafe-regex
- File role
- production
- Source
- scratch/app_source.js:193
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
The test runs the project's own clock function in a sandbox to confirm it handles negative values safely. Only the project's own code is executed.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The matched vm.runInNewContext call executes the project's own getWorldTimeData function in an empty sandboxed context to verify the world clock cannot produce negative days or hours. The source is extracted from local project files via the functionSource helper; no external or attacker-controlled input reaches the VM call.
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
The scanner flagged what it thought were suspicious web links. They are actually just encoded picture files stored inside the world data. No internet connections or suspicious destinations are present.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The 14 shady-link occurrences correspond to the embedded base64 data-URI strings in the media assets array. The file contains no fetch calls, XMLHttpRequest, WebSocket connections, navigation URLs, or any network-access code. Each flagged string is a data:image/jpeg;base64 payload for an NPC portrait or location background that is part of the bundled world definition. This is the expected mechanism for a local-first roleplay platform to ship pre-generated visual assets with a world.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- policy-panic-world.js:15
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
The test runs the project's own save-and-restore functions in a sandbox to confirm rerolls work correctly. Only the project's own code is executed.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The matched vm.runInNewContext call executes the project's own snapshot capture and restore functions (isPlainObject, safeJsonClone, captureWorldTurnState, restoreWorldTurnState) in an empty sandboxed context to verify timeline reroll behavior. All source strings are extracted from local project files; a stub bumpMemoryEpoch function is inline. No external input flows into the VM execution.
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 developer test script that loads a piece of the project's own source code and runs it in an isolated sandbox to verify the world-map logic works correctly. No outside or untrusted data is involved, and the code being run comes from the project itself.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-vm-context. The match applies to this repository.
Contextual assessment: The scanner flags vm.runInNewContext as a code-execution signal. The executed code is sourced entirely from file, a local file in the same repository, via string slicing between two fixed markers. No external, network, or user-controlled input flows into the VM context. The context object is empty and the script only exposes four local functions for subsequent test assertions. This is a standard test-harness pattern for isolating and exercising application logic without a browser environment. There is no attacker-controlled trigger, untrusted-input path, or data flow to any 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_families-1
- Rule
- javascript.xray.unsafe-vm-context
- File role
- production
- Source
- scratch/world_map_stress_test.js:17-30
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The scanner saw something that looked like a link, but it is actually just a standard way to embed an image as text data. The script is checking that a character's photo is stored correctly inside a local file. No internet connections or external resources are involved.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The shady-link signal is triggered by the string literal 'data:image/jpeg;base64,' on line 33. This is a data URI prefix used in an assertion that validates a character archive's profile photo is stored as a base64-encoded JPEG. The file is an audit script that reads a local .horde_human archive, validates its structure, and asserts on field values. There are no network requests, external URLs, fetch calls, or data exfiltration — only local file reads and assertions. The data URI is a standard inline image format, not a link to an external resource.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- scratch/ashlyn_archive_audit.js:33
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The links in the code are standard local addresses and known AI service URLs, all consistent with the app's described purpose of connecting to local or cloud AI models.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The 37 flagged occurrences correspond to localhost loopback URLs and cloud-provider API endpoints that match the README's stated supported providers. Local addresses use normalizeLoopbackUrl which constrains them to localhost, 127.0.0.1, ::1, or private RFC-1918 ranges with no credentials, search, or hash. Cloud endpoints are hardcoded well-known AI provider URLs visible in settings UI. No exfiltration to unrecognized or concealed destinations 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_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- app.js:260
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
The flagged regular expression is a simple pattern that checks whether the user typed a greeting like 'hi' or 'hello.' It is straightforward and does not pose a performance or security risk.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The scanner flagged an unsafe regex at line 417. The regex in question is a greeting detection pattern: /^(?:(?:hey|hi|hello|yo|sup)(?:\s+pip)?|(?:are you|you) there)[\s!?.,]*$/i. This is a simple alternation of literal strings followed by a bounded character class quantifier. It contains no nested quantifiers, no overlapping alternations, and no pattern that could cause catastrophic backtracking. The regex is applied to short user input from a text field, and even pathological input would terminate quickly.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.unsafe-regex
- File role
- production
- Source
- labs-ui.js:417
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This file is a character definition that bundles a showcase character with her profile photos embedded directly as data. The scanner thought it spotted suspicious links, but the flagged content is just encoded image data, not actual internet addresses. The file does not contact any external service.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged a shady-link signal on a generated character data file. The file contains no network calls, fetch operations, or external URL references. It pushes a static character object into a global array, with two image fields stored as inline data URIs. The large base64 blobs encoding JPEG profile photos can accidentally produce substrings that pattern-match as URLs, which is the likely source of this signal. No network destination, no untrusted-input path, and no outbound data flow 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_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- jane-harlow-human.js:4
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This is a test that runs the project's own stat-configuration code in a sandbox. No outside or user-controlled data is involved.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The flagged `vm.runInNewContext` at line 84 executes a source slice from the project's own `file` with only an isPlainObject helper as a global. It tests the project's own stat-roll configuration logic. No untrusted or attacker-controlled input reaches the code 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:84
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
The flagged code execution is part of a test tool that takes a section of the project's own application code and runs it in an isolated sandbox to check that the map features work. It does not accept outside input and does not send data anywhere.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: Detailed technical wording was omitted by the public report safety filter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- 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.obfuscated-code
Expected behavior · high confidence
The file looks suspicious to a scanner because it contains very long blocks of encoded text, but that text is simply embedded profile photos for a showcase character. The actual code is straightforward and readable, with no hidden or disguised program logic.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. The match applies to this repository.
Contextual assessment: The scanner flagged an obfuscated-code signal with low confidence on a generated character data file. The file structure is transparent: it spreads an existing array and appends a single character object literal with metadata fields and two base64-encoded JPEG data URIs. There is no eval, no dynamic code generation, no encoded script execution, and no concealed logic. The large base64 image blobs are the probable trigger for the obfuscation heuristic, but they are static image data, not executable 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_families-1
- Rule
- javascript.xray.obfuscated-code
- File role
- production
- Source
- jane-harlow-human.js:1
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged links are hard-coded web addresses used in test checks to confirm the app talks to the correct provider website. They are not making actual network requests and the provider is one the project openly supports.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged fixed URL literals in a scratch audit/test file. The visible source shows these URLs appear inside assert.equal assertions verifying that the GPTProto provider resolves to its documented base URL, image-edit endpoint, and Bearer authentication header. GPTProto is explicitly listed as a supported cloud text-generation provider in the project README. Other URLs such as cdn.test are synthetic test fixtures. No production network call, fetch, or dynamic destination is present in the supplied evidence; the strings are comparison targets in test assertions.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- scratch/companion_audit.js:784
JavaScript analysis reported javascript.xray.unsafe-vm-context
Expected behavior · high confidence
This is a test script that loads a piece of the project's own code into an isolated sandbox to run automated checks on it. No external or user-controlled code is involved.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-vm-context. The match applies to this repository.
Contextual assessment: The scanner flagged vm.runInNewContext on lines 55-66. This is a test harness in the scratch directory that extracts a known source-code block from the project's own file (delimited by static string markers) and executes it inside a sandboxed VM context to run unit tests against the quest engine functions. The executed code originates entirely from the project's own committed source, not from user input, network data, or any untrusted source. The VM context is a minimal test stub with no filesystem, network, or process access beyond a console and helper mocks. This is a standard pattern for isolating and testing self-contained code extracted from a larger 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_families-1
- Rule
- javascript.xray.unsafe-vm-context
- File role
- production
- Source
- scratch/quest_engine_stress_test.js:55-66
JavaScript analysis reported javascript.xray.obfuscated-code
Expected behavior · high confidence
The scanner thought the code looked hidden or scrambled, but the file is just a collection of long roleplay prompt texts written in a structured style. Nothing is concealed or encoded — it is all readable preset data.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. The match applies to this repository.
Contextual assessment: The obfuscated-code signal is triggered on a data-only presets file containing large string literals with roleplay prompt templates. There is no minification, encoding, eval, dynamic code generation, or concealment. The content is plain-text prompt instructions and configuration objects visible to users. The scanner's low confidence and the actual source confirm this 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_families-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 self-test that checks whether the project's own code was extracted correctly. It only feeds the project's own code into a parser check, with no outside or user-controlled input involved.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The flagged `new Function(...)` at line 180 is inside a test harness that validates the project's own code-extraction logic. The argument is `entry.source`, which originates from the project's own declaration index built from its own application source. No untrusted or attacker-controlled input reaches this constructor. The call only checks that extracted function text still parses; it does not execute function bodies or communicate externally.
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.obfuscated-code
Expected behavior · high confidence
The code is clearly written and easy to read. There is no hidden or scrambled logic that could mask malicious behavior.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. The match applies to this repository.
Contextual assessment: The scanner flagged an obfuscated-code signal at line 1, but the supplied source is plain, readable, well-commented JavaScript. It initializes a runtime error array, defines IndexedDB persistence helpers, a vector-memory cache with FNV-1a hashing, and provider-abstraction functions. No obfuscation, encoded payloads, eval chains, or concealed logic are present in the provided text.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.obfuscated-code
- File role
- production
- Source
- app.js:1
JavaScript analysis reported javascript.download-to-execution
Expected behavior · medium confidence
The app makes network requests to AI providers, which is its core feature, and also uses standard browser functions. The scanner flagged both being present, but the network calls go to the user's own configured services and the execution patterns are normal browser callbacks, not dangerous code execution.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution. The match applies to this repository.
Contextual assessment: The scanner correlated a fetch primitive with a code execution sink in the same file. The fetch calls target the user-configured local MCP bridge and model provider endpoints, which is the stated purpose of this local-first AI roleplay platform. The visible execution sinks are callback-based setTimeout and DOM manipulation, not dynamic string evaluation. No evidence shows network-fetched data flowing into eval or Function constructors.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.download-to-execution
- File role
- production
- Source
- app.js:483-8586
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The scanner thought it found suspicious internet links, but the flagged text is just encoded image data bundled inside a character profile. The file does not make any network connections or send data anywhere.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged a shady-link signal on the same generated character data file. The file contains no outbound network operations, no external URL references used at runtime, and no data exfiltration path. The two occurrences likely correspond to the two large base64 JPEG data URIs, whose encoded content can coincidentally match URL-like patterns. The only data flow is local: appending a static character object to a global array. No network destination or attacker-controlled input path 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_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- jane-harlow-human.js:14
JavaScript analysis reported javascript.credential-to-network
Expected behavior · medium confidence
The app stores API keys that users enter in settings and sends them to the AI providers the users chose. This is exactly what the app is designed to do, and users can see and control which providers they configure.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.credential-to-network. The match applies to this repository.
Contextual assessment: The scanner flagged credential-bearing state alongside outbound network sinks. This application is explicitly designed to let users configure API keys for cloud providers (OpenRouter, GPTProto, etc.) and send generation requests to those providers. The fetch calls go to user-configured endpoints, and the README states credentials are kept outside normal exports. This data flow matches the stated project purpose and is visible to users through settings.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.credential-to-network
- File role
- production
- Source
- app.js:483-1731
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This file stores a built-in character definition with embedded profile pictures. The scanner flagged it for suspicious links, but the actual code contains no web addresses or network activity—only large embedded image data. This is normal for a character-seed file.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The file is a generated static character-seed file that assigns a JSON-like virtual-human definition (metadata plus two base64 JPEG data URIs) to globalThis.HORDE_INCLUDED_HUMANS. No fetch, XHR, WebSocket, dynamic import, eval, or external URL string is present in the supplied source. The JS-X-Ray shady-link signal fired on this data-heavy file, but no network destination, untrusted-input path, or concealed execution is demonstrated. The base64 data URIs are inline image payloads for the character profile, matching the project's stated purpose of bundled showcase humans.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- ashlyn-reynolds-human.js:14
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
The test checks the project's own movement rules in a sandbox. Only the project's own code is executed.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The matched vm.runInNewContext call runs the project's own travel-path functions (getExitTargetName, canTravelDirectly) in an empty sandboxed context to verify movement is limited to direct exits. Source originates from local project files via the functionSource helper.
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