TavernKeeper Scan Report

MentallyQuill/TavernaryCompanion

Commit a19eaf6 Reviewed

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

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

0 immediate danger 0 material 55 low

What this review found

No material or immediate-danger item was identified.

Deterministic technical evidence (41)
  • zizmor reported unpinned-uses · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/check.yml:20

  • Dependency advisory GHSA-rq7h-c2jc-7f22:pkg:3aec41a6cfa7e1b2a4042fd3 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-587h-7wmj-h5pm:pkg:b41be7a7462df650440a4fc0 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • zizmor reported artipacked · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/check.yml:19

  • zizmor reported unpinned-uses · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/release-artifact.yml:25

  • Dependency advisory GHSA-jqff-g426-hqxp:pkg:9d5a0ee915070fcb3b4f0f49 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-q2hr-2g5m-vwhr:pkg:5071d948cc44d0262ff79d5b applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-fph4-wmhf-6fwf:pkg:02097b1c123d52488af54cbe applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • zizmor reported unpinned-uses · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/release-artifact.yml:14

  • Dependency advisory GHSA-r825-w8mm-5pxw:pkg:3259ffa7e3cefed5e5cdc3c9 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-pmjh-fq2x-6v4x:pkg:814e6386268dbf3533461ca1 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-2883-xcg3-v3hh:pkg:d0255a07b416d6426cad8ae8 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-xp26-3454-mjgp:pkg:05e998734cfc7252d5bdf2fc applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-q2hr-2g5m-vwhr:pkg:795fdc464a3888c7b68760ab applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-rx4f-c7p8-82vq:pkg:84b2df35347fd80a7d52507c applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-5jgf-p345-68v8:pkg:0c0b4150b3480deab8a6ef16 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-f65p-4m7j-42xc:pkg:d8eaa1be485d9c348ff3a796 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-2gqq-gqf2-x968:pkg:46832ca569076237770558e9 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • zizmor reported unpinned-uses · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/release-artifact.yml:15

  • Dependency advisory GHSA-hrr3-gc8f-f4qj:pkg:092c05eeb590cb190e9aa084 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-8436-99hf-9mmv:pkg:8ca5f098d431dc526b1c0927 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-698v-4r3x-3vcv:pkg:99b85b777507832b1528d4ee applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • zizmor reported artipacked · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/release-artifact.yml:14

  • Dependency advisory GHSA-rfgv-xxqx-mfg5:pkg:fa194ca81f9401706246a35f applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-r53p-7pc4-xj5r:pkg:bd7641efc84f0d9546a70936 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • zizmor reported cache-poisoning · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/release-artifact.yml:15

  • Dependency advisory GHSA-vfpm-58rq-9qcg:pkg:0daee9a9c68a2c822a9b9edd applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-6j4f-fj2g-mc7p:pkg:1b256821002216bb3b207a3c applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-68fv-2mgg-jv7q:pkg:9534329f616dc744f00f37e0 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-2jfj-6hjv-fm6j:pkg:175831eb9d2400b3cdc340b4 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-qw65-cvwx-89v3:pkg:919579613c6f8464c1814045 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-w293-vg96-wgc3:pkg:d43b5e923dc7ff1e776c4a60 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-3wwx-pv8p-q78v:pkg:a08e866514b3f530ce58da45 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-6j4f-fj2g-mc7p:pkg:5bd3a73046cf56d467e3fe31 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-qhr7-859c-m2p7:pkg:30aebd0885cdb30a5bdc22ef applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • zizmor reported unpinned-uses · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/check.yml:19

  • Dependency advisory GHSA-3xpg-4rpp-hhhm:pkg:a6f8bf7a6965562dac1ca61a applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-qhr7-859c-m2p7:pkg:51214a760489337721516703 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • zizmor reported unpinned-uses · zizmor 1.28.0

    The code has a known weakness, though this scan does not show that anyone can exploit it here.

    Policy reason: zizmor-known-workflow-rule · Execution scope: automation

    Source: .github/workflows/check.yml:30

  • Dependency advisory GHSA-9jrq-w75r-8gcw:pkg:7d885660c3103155c3124eb7 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

  • Dependency advisory GHSA-qxg6-89mg-rqv8:pkg:b74bbaf10e6570abe6f79a19 applies · osv-scanner 2.4.0

    A dependency has a published security issue, though this scan does not show that the project exposes it to an attacker.

    Policy reason: osv-structured-advisory · Execution scope: unknown

    Source: package-lock.json

Contextual expected matches (13)

OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval

Expected behavior · high confidence

The flagged code belongs to a well-known validation library that turns its rule sheets into fast checking functions. That is simply how the library works, and it runs on the project's own rules, not on anything downloaded or typed in by a user.

Technical evidence

Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.

Contextual assessment: The flagged construct is the bundled Ajv JSON-schema validator's schema compiler. It generates a validation function from a schema definition and instantiates it with a function constructor at compile time. This is the library's documented, standard internal mechanism, present because the dependency is bundled into the generated build. The schemas it compiles ship inside the extension; fetched catalog data is the payload being validated, not a schema. The supplied evidence shows no flow of network or user-controlled content into the code generator, so no concealed or attacker-reachable execution is demonstrated.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
opengrep 1.26.0
Rule
tavernkeeper.dynamic-execution.javascript-eval
File role
generated
Source
dist/extension.js:2937

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The scanner saw web-address-looking text inside code the project bundled from well-known standard libraries. These are labels and namespaces, not destinations where your information is sent.

Technical evidence

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

Contextual assessment: The flagged string literals are URI scheme names and namespace identifiers embedded in bundled third-party libraries (a URI parsing library, a JSON-schema validator, and a UI rendering library). They are parsing constants and schema identifiers, not endpoints that the extension contacts. The project's documented network behavior is limited to fetching its public catalog JSON, which matches the project's stated purpose and is disclosed to users. No data flow from host state or credentials to these literals is present in 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_families-1
Rule
javascript.xray.shady-link
File role
generated
Source
dist/extension.js:3424

JavaScript analysis reported javascript.xray.data-exfiltration

Expected behavior · high confidence

This is a build helper that downloads a specific, locked-in version of a known source package, checks that the files match their recorded fingerprints, and stores them inside the project. Nothing is sent out from your computer. The scanner's alert was triggered by a routine use of the computer's temporary-folder feature, not by any actual data leaving the machine.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.data-exfiltration. 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.data-exfiltration
File role
tooling
Source
scripts/sync-tavernary-core.mjs:13

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The flagged links are local test addresses used by a performance script to feed the extension's own build output to a simulated browser. Nothing is sent over the network.

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 maps to localhost URL literals inside a Playwright route handler in a developer-only performance audit script. The handler resolves request pathnames against the project root, returns a 403 when the resolved path escapes the root, and otherwise serves locally built bundle and fixture files to a headless Chromium. Navigation targets the same local pseudo-origin. There is no remote endpoint, no transmission of user data, and no involvement of the shipped extension at runtime; this is standard local-harness scaffolding with an explicit path-containment guard.

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
tooling
Source
scripts/performance-installed-audit.mjs:78

JavaScript analysis reported javascript.xray.data-exfiltration

Expected behavior · high confidence

This is a test file that builds the extension in a temporary folder on the same computer and checks that the output is correct. It never sends anything anywhere. The scanner's warning came from a routine temporary-folder feature, not from any real data leak.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.data-exfiltration. 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.data-exfiltration
File role
test
Source
tests/unit/build.test.ts:5

JavaScript analysis reported javascript.xray.serialize-environment

Expected behavior · high confidence

The flagged pattern is just a test script copying the local environment when it runs git to set up a throwaway test repository. Nothing is collected or sent anywhere.

Technical evidence

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

Contextual assessment: The scanner flagged an environment-serialization pattern at the spread of process.env into the env option of a child-process call. The supplied source is a test-fixture tooling script that creates a temporary directory, copies a fixture extension into it, and runs git init/add/commit/rev-parse there via execFileSync. Spreading the parent environment is the standard way to spawn git with overridden author/committer identity, and the child's output is only used locally for the commit hash. No environment data is logged, transmitted, or persisted outside the temporary git repository, and the script runs only in the development tooling path, not in the shipped extension.

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.serialize-environment
File role
tooling
Source
scripts/create-fixture-repository.mjs:15

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The flagged address is the automated test setup pointing at a server on the developer's own computer. It is part of the test tooling, never reaches users, and sends nothing to anyone else.

Technical evidence

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

Contextual assessment: The flagged literal is a loopback address on a test port configured as the base address for the project's end-to-end test suite. The file is test tooling configuration, not shipped runtime code, and a loopback address directs traffic to the local machine only. There is no external destination, no credential handling, and no path to user-facing 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.shady-link
File role
tooling
Source
playwright.config.ts:18

JavaScript analysis reported javascript.xray.prototype-pollution

Expected behavior · high confidence

The flagged text appears in a validation library that deliberately ignores a dangerous special key so it cannot be abused. The scanner mistook a safety guard for a hazard.

Technical evidence

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

Contextual assessment: The two matched signals are literal prototype-key comparisons inside the bundled Ajv validator. Both occurrences are defensive filters that explicitly skip the prototype key when enumerating schema properties and dependencies. This is mitigating code that reduces prototype-pollution risk, not a pollution sink. No attacker-controlled path writes inherited properties, and no vulnerable behavior 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_families-1
Rule
javascript.xray.prototype-pollution
File role
generated
Source
dist/extension.js:1750

JavaScript analysis reported javascript.download-to-execution

Expected behavior · high confidence

The tool noticed that the file both downloads data and has a code-building feature. The download is the project's normal catalog fetch, and the code-building feature belongs to a standard validation library that turns the project's own rule sheets into fast checking functions. The downloaded data is checked by those rules; it is never used as the rules themselves.

Technical evidence

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

Contextual assessment: This is same-file co-occurrence, not a demonstrated data flow. The network primitive is the documented catalog client, which checks response status and requires a JSON content type before parsing the body. The dynamic code construction is the bundled Ajv validator's standard mechanism for compiling JSON schemas into validation functions. The schemas compiled ship inside the extension bundle; the fetched catalog response is the data being validated, not a schema. Nothing in the supplied evidence routes response content into the code generator, so no download-to-execution chain exists.

Impact: none · Exploitability: unlikely

Developer action: Keep the JSON schemas passed to the bundled validator static and developer-defined; never construct or compile schemas from fetched catalog content.

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.download-to-execution
File role
generated
Source
dist/extension.js:195-6973

JavaScript analysis reported javascript.xray.unsafe-regex

Expected behavior · medium confidence

The flagged patterns are familiar text-matching rules from standard validation libraries, such as ones recognizing web addresses, email addresses, and identification strings. They are ordinary and widely used; at worst an unusual input could cause a brief local slowdown while it is checked.

Technical evidence

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

Contextual assessment: The shown matches are standard validation patterns from the bundled libraries (UUID, IPv4, IPv6, email, hostname, URI, JSON-pointer formats) plus the project's own display-cleanup patterns. These are widely deployed library patterns used to validate strings, not adversarial constructs. A theoretical worst case for complex validation regexes is elevated CPU time during validation of unusual input, which is a recoverable local slowdown with low impact in this threat model. Not all 33 occurrences were individually shown, but every supplied sample is a known library 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_families-1
Rule
javascript.xray.unsafe-regex
File role
generated
Source
dist/extension.js:2776

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The flagged links are just a local test web address used by a performance-measuring script to load the extension's own test files in a simulated browser. No real internet connection or data transfer happens.

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 corresponds to localhost URL literals used with a Playwright route handler in a developer-only performance audit harness. The script intercepts requests to a local pseudo-origin, resolves the requested pathname inside the project root, and explicitly rejects paths that escape the root with a 403 before serving local fixture files to a headless Chromium instance. No traffic leaves the machine, no remote host is contacted, the URLs never leave the local route interceptor, and the script is part of the repository's tooling rather than the shipped extension bundle. The path-containment check further constrains what can be served, so this is a self-contained local measurement 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_families-1
Rule
javascript.xray.shady-link
File role
tooling
Source
scripts/performance-audit.mjs:61

JavaScript analysis reported javascript.xray.unsafe-command

Expected behavior · high confidence

The flagged code runs the standard git program to fetch and verify a specific saved version of a source package during development builds. It does not execute arbitrary commands from outside input, and it only runs on the developer's machine, not as part of the extension users install.

Technical evidence

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

Contextual assessment: The scanner flagged the synchronous child-process call that runs git in this vendoring script. The supplied code spawns the git executable with an array of literal arguments rather than a shell string, so there is no shell-injection surface in the shown call sites. The arguments are fixed subcommands plus values validated by a strict 40-character hexadecimal commit check, and the working directory is either a freshly created temporary directory or a caller-supplied local checkout. This is standard, proportionate tooling for the script's stated purpose of fetching and verifying a pinned upstream commit. It runs only as a development-time build script, not inside the shipped SillyTavern extension.

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-command
File role
tooling
Source
scripts/sync-tavernary-core.mjs:22-26

JavaScript analysis reported javascript.xray.data-exfiltration

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.data-exfiltration. 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.data-exfiltration
File role
tooling
Source
scripts/create-fixture-repository.mjs:2

Related contextual observations

Network responses are validated defensively and are not linked to the flagged code-generation routine

low risk · high confidence

The part of the code that downloads data carefully checks what it received before reading it, and the part that builds code on the fly works from the project's own rule sheets. The two are neighbors in the same bundled file, not partners in a dangerous chain.

Technical assessment

The visible catalog client rejects non-success statuses and requires a JSON content type before reading the response body, then parses it as data. The dynamic function construction flagged elsewhere belongs to the bundled schema validator's compiler and operates on schemas that ship with the extension. The supplied evidence shows separation between response handling and code generation, so the scanner's correlation reflects dependency bundling rather than a runtime path from downloaded content to executed code.

Impact: none · Exploitability: unlikely

Developer action: Continue validating fetched catalog responses against bundled, developer-defined schemas before use.

Sources:

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity