No material or immediate-danger item was identified.
JavaScript analysis reported javascript.xray.unsafe-regex
Minor caution · medium confidence
A crafted input might briefly slow or freeze the local client, without showing broader security harm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.
Impact: low · Exploitability: plausible
Developer action: Bound the input length or replace the expression when practical.
- 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
- semantic-extractor.js:348
JavaScript analysis reported javascript.xray.unsafe-regex
Minor caution · medium confidence
A crafted input might briefly slow or freeze the local client, without showing broader security harm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.
Impact: low · Exploitability: plausible
Developer action: Bound the input length or replace the expression when practical.
- 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
- character-sheet-validation.js:108
JavaScript analysis reported javascript.xray.unsafe-regex
Minor caution · medium confidence
A crafted input might briefly slow or freeze the local client, without showing broader security harm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.
Impact: low · Exploitability: plausible
Developer action: Bound the input length or replace the expression when practical.
- 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
- deterministic-runner.js:3731
JavaScript analysis reported javascript.xray.unsafe-regex
Minor caution · medium confidence
A crafted input might briefly slow or freeze the local client, without showing broader security harm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.
Impact: low · Exploitability: plausible
Developer action: Bound the input length or replace the expression when practical.
- 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
- index.js:3733
JavaScript analysis reported javascript.xray.unsafe-regex
Minor caution · medium confidence
A crafted input might briefly slow or freeze the local client, without showing broader security harm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.
Impact: low · Exploitability: plausible
Developer action: Bound the input length or replace the expression when practical.
- 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
- scene-item-state.js:443
JavaScript analysis reported javascript.xray.unsafe-regex
Minor caution · medium confidence
A crafted input might briefly slow or freeze the local client, without showing broader security harm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.
Impact: low · Exploitability: plausible
Developer action: Bound the input length or replace the expression when practical.
- 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
- narration-sanitizer.js:67
JavaScript analysis reported javascript.xray.unsafe-regex
Minor caution · medium confidence
A crafted input might briefly slow or freeze the local client, without showing broader security harm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.
Impact: low · Exploitability: plausible
Developer action: Bound the input length or replace the expression when practical.
- 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
- prose-guard-edits.js:294
JavaScript analysis reported javascript.xray.unsafe-regex
Minor caution · medium confidence
A crafted input might briefly slow or freeze the local client, without showing broader security harm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.
Impact: low · Exploitability: plausible
Developer action: Bound the input length or replace the expression when practical.
- 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
- pre-flight.js:1199
JavaScript analysis reported javascript.xray.unsafe-regex
Minor caution · medium confidence
A crafted input might briefly slow or freeze the local client, without showing broader security harm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.
Impact: low · Exploitability: plausible
Developer action: Bound the input length or replace the expression when practical.
- 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
- character-sheet-generation.js:183
Contextual expected matches (12)
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
A static scanner flagged this regular expression as potentially unsafe, but the pattern is simple and only processes the project's own internal data. There is no realistic way for it to cause harm.
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 at line 44 is a simple, bounded pattern that parses internal report-path strings of the form relationshipEngine[name].field.subfield. It contains no nested quantifiers or overlapping alternatives that could cause catastrophic backtracking. The input it matches comes from project-internal fixture definitions, not attacker-controlled data. No ReDoS or other security issue 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.unsafe-regex
- File role
- production
- Source
- semantic-golden-evaluator.mjs:44
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This is part of a test file that pulls out individual functions from the extension's own code to test them separately. The dynamic execution only runs the project's own code with fixed test values, not anything from outside or from a user. This is a normal testing approach and poses no security risk.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: This candidate flags a `new Function(...)` call in a behavior test file. The test reads the project's own `index.js` source from the local filesystem, slices out a specific function body by string matching, and wraps it in `new Function` to execute that function in isolation for unit testing. The arguments passed are hardcoded test values (a modes object). No attacker-controlled input reaches this path; the evaluated code is the project's own committed source. This is a standard test-harness pattern for testing non-exported functions.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- test-behavior.mjs:21038-21041
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This is another test that extracts a function from the extension's own code to verify it works correctly. Only fixed test data and simple mock helpers are used. There is no security risk.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: This candidate flags a `new Function(...)` call that constructs `getLatestNarratorHandoffEntry` from the project's own `index.js` source text for isolated testing. The injected arguments are simple mock lambdas (message type checks and property accessors). No untrusted or attacker-controlled data flows into the dynamically constructed function. This is a test-only pattern with no runtime exposure in the shipped extension.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- test-behavior.mjs:21059-21063
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This code dynamically creates a function from the project's own source code so a test can verify layout calculations. Because it only uses the project's own code and runs in a test file, it does not introduce a security risk.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The new Function call at lines 11804-11813 constructs a function from source code extracted from the project's own index.js file (trackerLayoutSource). The embedded code is project-internal layout math logic, not attacker-controlled or user-supplied input. This is a test-harness technique to exercise specific bundled functions in isolation with fixed constant definitions. No untrusted data flows into the function constructor, and this file is a test file, not production runtime code loaded by the SillyTavern extension.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- test-behavior.mjs:11804-11813
Gitleaks reported generic-api-key
Expected behavior · high confidence
This is a test that checks whether the extension properly hides API keys and authorization tokens when displaying error messages. The 'secrets' detected by the scanner are fake test values designed to look like keys so the test can confirm they get removed from output. No real credentials are exposed.
Technical evidence
Scanner reason: Gitleaks matched secret-detection rule generic-api-key. The match applies to this repository.
Contextual assessment: The matched line is inside a test case in file that verifies the `formatSemanticDiagnostic` function properly redacts secrets from error messages. The strings that triggered gitleaks are synthetic test fixtures: `[REDACTED_SECRET:...]` placeholders that are already redacted, and `google-sensitive-key`, a deliberately named test string used to confirm that query-parameter keys are scrubbed from diagnostic output. The test explicitly asserts the formatted output does NOT contain these strings, proving the redaction works. No real credentials are present, and these values exist solely to test the redaction pipeline.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- gitleaks 8.30.1
- Rule
- generic-api-key
- File role
- production
- Source
- test-behavior.mjs:18097
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This test extracts a settings-migration function from the extension's own code and tests it with fixed values. No outside data is involved, so there is no security risk.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: This candidate flags a `new Function(...)` call that constructs `migrateNarratorHandoffSettings` from the project's own source for isolated unit testing. The arguments are hardcoded constants (numeric values, a sides map, and a simple coordinate lambda). No external or attacker-controlled input reaches this dynamic execution path. The evaluated body is the project's own committed function code.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- test-behavior.mjs:21050-21058
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This dynamically creates a display-formatting function from the project's own code for testing. The only extra input is a simple built-in text-trimming helper. It does not introduce a security risk.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The new Function call at lines 11821-11824 constructs formatTrackerItemDisplayName from source sliced from the project's own index.js (itemFormatterSource). The only injected parameter is a trivially safe inline arrow function that trims and slices a string. The function body is project-internal display formatting logic, not attacker-controlled code. This is a test-harness isolation technique with no untrusted data flow.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- test-behavior.mjs:11821-11824
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This test pulls out a dimension-normalization helper from the extension's own code and checks it with fixed numbers. There is no security risk.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: This candidate flags a `new Function(...)` call that constructs `normalizeTrackerWidgetSavedDimension` from the project's own source text. The function is invoked with no injected arguments and tested with hardcoded numeric values. No untrusted input flows into this path. This is a test-only isolation pattern.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- test-behavior.mjs:21042-21047
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This test extracts a widget-layout function from the extension's own code and runs it with fixed test values and simple mock helpers. No outside data is involved, so there is no security risk.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: This candidate flags a `new Function(...)` call that constructs `getNarratorHandoffWidgetLayout` from the project's own source text. The injected arguments are all hardcoded constants and simple mock lambdas (dimension clamps, coordinate mappers, a mock globalThis with innerWidth). No attacker-controlled or untrusted input reaches this dynamic execution. This is a test-harness pattern for verifying widget layout logic in isolation.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- test-behavior.mjs:21067-21082
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This is test code that reads a function from the extension's source file and runs it in isolation with fake data to check that old settings are properly cleaned up. The dynamic execution is confined to the test suite, uses only mock data controlled by the test, and does not run when the extension is used normally.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The `new Function` call occurs in a test file (file) and is used to extract the `getSettings` function body from the production source file by string-slicing between two known function boundaries, then invoking it with fully controlled mock arguments to verify settings migration behavior. No untrusted or external input flows into the constructed function body or its arguments. This is a legitimate test-harness technique for testing functions that depend on module-level globals, and it executes only in the test suite, not in the shipped extension runtime.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- test-behavior.mjs:17594-17604
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This dynamically creates a function from the project's own migration code to test it in isolation. Since it only uses the project's own code and lives in a test file, it poses no security risk.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The new Function call at lines 11814-11820 constructs migrateTrackerWidgetSettings from source sliced out of the project's own index.js (trackerMigrationSource). The function body is project-internal migration logic, not external or user-supplied code. This is part of a test harness that validates widget-settings migration behavior. No untrusted input reaches the function constructor.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- test-behavior.mjs:11814-11820
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
This is part of a test file that extracts widget-sizing functions from the extension's own code to verify they calculate positions correctly. Only fixed test values and a simple fake document object are used. There is no security risk.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: This candidate flags a `new Function(...)` call in a behavior test file within the test case 'tracker widgets stay in their chat-side margins with anchored three-corner resizing'. The test reads the project's own `index.js` source, slices out tracker widget geometry functions by string boundary matching, and wraps them in `new Function` to test them in isolation. The injected arguments are all hardcoded numeric constants and a minimal mock document object with a single querySelector stub. No attacker-controlled or untrusted input reaches this dynamic execution path. The evaluated code is the project's own committed function bodies. This is a standard test-harness isolation pattern.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- production
- Source
- test-behavior.mjs:21215-21230