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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| lud | jsv | 0.1.0 – < 0.26.2 | 0.26.2 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Hex | jsv | >= 0.1.0, < 0.26.2 | 0.26.2 | EEF-CVE-2026-117680 |
References
- Regex match budget exhaustion is treated as a non-match, bypassing `patternProperties` and `not` vendor-advisory related
- EEF CNA record for CVE-2026-117680 related
- OSV record EEF-CVE-2026-117680 related
- Introducing commit 302a5d0 in lud/jsv related
- Fix commit defdb8a in lud/jsv patch