CVE-2026-118772: hapijs joi · ReDoS
Affects hapijs joiSource CVE Database V5
Not known to be exploited · CVSS 7.5 High : upgrade to 18.3.1 soon.
Data as of 29 Oct 2026, 19:15 UTC
Thin evidence
One scorer or none| CNA (GitHub_M) | CVSS 3.1 | 7.5 |
|---|
- Patch
- Available – fixed in 18.3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HExploitation evidence
Disclosed: evidence found.
CVE published 29 Oct 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 29 Oct 2026.
What to do
Upgrade hapijs joi to 18.3.1.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| hapijsjoi | Affected
| Fixed in
|
| @hapijoi | Affected
| Fixed in– |
AI-suggested
Upgrade to joi version 18.3.1 or later, where this vulnerability is fixed. Applying this official fix will prevent the inefficient regular expression from causing event loop blocking. Until upgraded, avoid using the multiple option in Joi.string().email() with untrusted input that may contain long whitespace runs without effective length limits.
Description
A vulnerability in the hapijs joi JavaScript data validator affects versions from 16.0.0 up to 17.1.1 and 18.0.0 up to but not including 18.3.1. The Joi.string().email({ multiple: true }) rule uses a regular expression with inefficient complexity, causing the Node.js event loop to be blocked for seconds when processing attacker-controlled input with long whitespace runs. This can lead to denial of service by blocking other operations. The issue is fixed in version 18.3.1.
References
- github.com/hapijs/joi/security/advisories/GHSA-4528-x5fx-h6hg (opens in a new tab)
- github.com/hapijs/joi/pull/3162 (opens in a new tab)
- github.com/hapijs/joi/pull/3163 (opens in a new tab)
- github.com/hapijs/joi/commit/03dc1d909818503b06240dadc81e9227ed2649cf (opens in a new tab)
- github.com/hapijs/joi/commit/807858d7480f5075b0610817e3e44230890fb18e (opens in a new tab)
- github.com/hapijs/joi/releases/tag/v17.13.9 (opens in a new tab)
- github.com/hapijs/joi/releases/tag/v18.3.1 (opens in a new tab)