ajv 8.20.0
- Source
- https://github.com/ajv-validator/ajv
- Tag scanned
v8.20.0- Compared with
v8.19.0(0 signals introduced since)- Files
- 244 scanned, 144 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 13 info
- Scan time
- 9.0 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 11 of 11 warn and critical signals; 11 demoted to info.
- Disclude version
- 4.1.0
- Scanned (UTC)
- 2026-10-22 10:36
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
-
Ajv ajv.likely benign Markdown docs example showing an Ajv keyword import.Reasoning
The snippet is a TypeScript example in Markdown documentation for Ajv keyword registration. The non-literal import is a doc illustration, not executable project code.
-
Ajv ajv.likely benign Second Markdown docs example for Ajv keyword definitions.Reasoning
Same documentation context as the other keywords.md finding: an illustrative code block in a docs file with no execution path.
-
// console.log("\n\n\n *** \n", sourceCode) const makeValidate = const validate: AnyValidateFunction = this..likely benign Ajv compiler generating validation functions via new Function.Reasoning
Ajv's JIT compiler builds validator functions from generated source using new Function. This is the library's core, documented code-generation design, not hidden or attacker-supplied code.
-
sourceCode = `return ` const makeParse = const parse: => unknown = this..likely benign JTD parser code generation via new Function.Reasoning
The JTD parser generator uses new Function to build a parse function from internally generated code, matching Ajv's standard code-generation approach.
-
sourceCode = `return ` const makeSerialize = const serialize: => string = this..likely benign JTD serializer code generation via new Function.Reasoning
The JTD serializer generator uses new Function on internally generated code, consistent with the library's design and not attacker-controlled input.
-
const json = const bundleDir = path. fs.likely benign Build script reading package.json with a path-joined require.Reasoning
The build script requires package.json through path.join with __dirname, a fixed local path. This is ordinary build tooling.
-
Ajv from "../dist/core" const AjvClass: typeof Ajv = typeof window == "object" ? . :likely benign Test helper requiring the Ajv build in Node only, using string concatenation.Reasoning
The require uses a concatenated string to keep bundlers from resolving the module in browser builds. The target is a fixed local relative path, and the concatenation is a known test-harness pattern, not a payload.
-
const AjvClass: typeof Ajv2019 = typeof window == "object" ? . :likely benign Test helper requiring the 2019 Ajv build in Node only.Reasoning
Same dual browser/Node test-harness pattern: a concatenated require of a fixed local dist path, guarded by a window check.
-
const AjvClass: typeof Ajv2020 = typeof window == "object" ? . :likely benign Test helper requiring the 2020 Ajv build in Node only.Reasoning
Same test-harness pattern as the other spec files, requiring a fixed local dist module.
-
const AjvClass: typeof AjvJTD = typeof window == "object" ? . :likely benign Test helper requiring the JTD Ajv build in Node only.Reasoning
Same test-harness pattern: a fixed local dist/jtd require, selected only when no window object exists.
-
const chai: ChaiStatic = typeof window == "object" ? . :likely benign Test shim loading chai in Node, using a concatenated require.Reasoning
A browser/Node shim that requires the chai test dependency via concatenated string. The target is a well-known package, so this is a bundler-avoidance idiom, not malicious.
-
Reproduce This Scan
Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
&&