Quick answers
- Is CVE-2026-48038 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-48038 being exploited in the wild.
- How severe is CVE-2026-48038?
- Medium severity, with a CVSS score of 5.3, published 14 July 2026.
- Which products and versions are affected?
- joi (npm) < 18.2.1, SEMVER:introduced=18.0.0,fixed=18.2.1.
- Is there a fix for CVE-2026-48038?
- Yes. joi (npm): upgrade to 18.2.1 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2026-48038 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2026-48038?
- Check whether you run joi (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- joi (npm): upgrade to 18.2.1 or later
npm install joi@18.2.1
Technical details
A denial of service vulnerability exists in Joi due to an uncaught RangeError when processing deeply nested input against recursive link() schemas. The root cause is a failure to protect link recursion from exceeding the maximum call stack size. An unauthenticated remote attacker can exploit this by submitting a crafted JSON payload or object. If the application calls the synchronous validate() method without a try/catch block, the resulting unhandled exception can crash the Node.js process. In cases where validateAsync() or try/catch is used, the library returns a RangeError instead of a standard ValidationError, which may still disrupt expected error-handling logic. The issue is fixed in versions 17.13.4 and 18.2.1.
Affected products
- hapijs joi < 17.13.4, >= 18.0.0 < 18.2.1
Identifiers
- CVE-2026-48038
- GHSA-q7cg-457f-vx79
Timeline
- 2026-05-04: patched: Fix merged into master branch
- 2026-05-20: advisory: GitHub Security Advisory published
- 2026-07-14: disclosed: CVE published to NVD