CVEsludCVE-2026-117680Published Nov 1, 13:29 · Updated Nov 1, 13:29 UTC
2.1
LowCVSS 4.0 · from EEF
CVE-2026-117680

jsv treats regex match budget exhaustion as a non-match, bypassing patternProperties and not

jsv · CWE-754 · CWE-754
Affectedjsv, lud/jsv
FixUpdate to 0.26.2 or newer
PublishedNov 1, 13:29 · EEF
ScoredNov 1 · 2.1 · EEF
Exploit code publicNone known · checked 23:18 UTC
ExploitedNone known · CISA KEV checked 23:19 UTC

What we know

No known exploitation. CISA KEV, checked 23:19 UTC.
No public exploit code known. Exploit-DB, Metasploit, Nuclei, checked 23:18 UTC.
An attacker needs local access to the machine. CVSS: local.
It only works under certain conditions, which makes it harder to pull off. CVSS: high attack complexity.

Description

Improper Check for Unusual or Exceptional Conditions vulnerability in the pattern and patternProperties keywords in lud jsv allows an unauthenticated remote attacker to bypass schema validation via a string that matches a schema regex only after heavy backtracking. JSV.Helpers.RegexExt.bounded_match?/2 runs schema regexes with a backtracking budget but calls :re.run/3 without :report_errors, so a match that exhausts the budget returns the same :nomatch as a real non-match. A key that matches a patternProperties regex is then checked against additionalProperties or not at all, and a string that matches a not subschema with a pattern is accepted. Before the budget existed, Regex.match?/2 failed the same way at Erlang's default match limit. Only schemas whose regex explores a catastrophic branch before the branch that matches are affected. The attacker controls the data, not the schema, and linear patterns never exhaust the budget. This issue affects jsv: from 0.1.0 before 0.26.2.

From EEF

Affected and fixed versions

ProductAffectedFixed injsv0.1.0 – before 0.26.20.26.2lud/jsv302a5d0803468f81a1cf08e3b67d8b14cee759ca – before defdb8a68ac7f218aa5dfe85190d484017cb8817–

Exploit code

Exploit-DBnone knownMetasploitnone knownNucleinone known

References

Regex match budget exhaustion is treated as a non-match, bypassing `patternProperties` and `not` · github.comvendor advisoryrelatedEEF CNA record for CVE-2026-117680 · cna.erlef.orgrelatedOSV record EEF-CVE-2026-117680 · osv.devrelatedIntroducing commit 302a5d0 in lud/jsv · github.comrelatedFix commit defdb8a in lud/jsv · github.compatch