CVE-2026-48038 json
joi: Uncaught RangeError on deeply nested input through recursive `link()` schemas
published 2026-06-11 4 mo ago modified 2026-10-24 15 d ago also GHSA-q7cg-457f-vx79 , EUVD-2026-44390
- cvss
- 5.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 44%
- public exploits
- 0
- none known
Summary
joi is a schema description language and data validator for JavaScript. Prior to 17.13.4 and 18.2.1, denial of service is possible via an untrapped exception in services validating user-supplied JSON or object input with recursive link() schemas. When validate() is called without try/catch in a request handler, deeply nested input can trigger an unhandled RangeError and potentially crash the process; lower-impact paths using validateAsync() or try/catch produce a RangeError instead of a structured ValidationError. This issue is fixed in versions 17.13.4 and 18.2.1.
Patch / fix
- npm joi 17.13.4, 18.2.1
- github.com/hapijs/joi@97bd51d commit
- github.com/hapijs/joi@fc146a6 commit
- github.com/hapijs/joi@2392713 commit
- github.com/hapijs/joi#3113 pull request
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-48038 updated cvss 5.3
joi: joi: Denial of Service via uncaught RangeError on deeply nested input through recursive link() schemas
-
Red Hat Gatekeeper 3 joi Red Hat Migration Toolkit for Containers joi Red Hat Build of Podman Desktop joi Red Hat OpenShift AI (RHOAI) joi Red Hat OpenShift Container Platform 4 joi Red Hat OpenShift Dev Spaces joiaffected: workaround, no fix available “Upgrade to joi 17.13.4 or 18.2.1. As a workaround, wrap validate() calls in try/catch to prevent uncaught exceptions from crashing the process.”
-
Red Hat Cryostat 4 joi Red Hat Data Grid 8 joinot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 3 mo ago
Exploit prediction
0.52% chance of exploitation in the next 30 days, higher than 44% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
| GitHub | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | joi | >=18.0.0, <18.2.1 <17.13.4 |
18.2.1 17.13.4 |
Affected products
- hapijs joi
Classification
References
-
github.com
/hapijs/joi/pull/3113
web
- github.com /hapijs/joi/commit/97bd51de94d595a2d8949eb3bec0dbdd2f8a7a74
- github.com /hapijs/joi/commit/fc146a628ab9cc250854407722d9f8738c9548e7
-
github.com
/hapijs/joi/commit/2392713d3e9dd91ba752ac0c96e0eaf3d24b9a11
web
-
github.com
/hapijs/joi/security/advisories/GHSA-q7cg-457f-vx79
web
-
github.com
/hapijs/joi
package
Sources
- CVE List CVE-2026-48038
- GitHub Advisory GHSA-q7cg-457f-vx79
- NVD CVE-2026-48038
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.