Skip to main content
VulnerabilityPublished

CVE-2026-118772: joi · quadratic-time split in `string().email({ multiple: true })` allows denial of service

Affects joiSource GCVE Database

0
Compare
Authoritative record:CVE-2026-118772· High 7.5

Not known to be exploited · CVSS 7.5 High : upgrade to 17.13.9 soon.

Data as of 31 Oct 2026, 01:54 UTC

CVSS 3.1 base score
7.5High
How severe the flaw is on the 0–10 CVSS scale.

Thin evidence

One scorer or none
CVSS scores by source
CNA (GitHub_M)CVSS 3.17.5
Patch
Available – fixed in 17.13.9, 18.3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 29 Oct 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq 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 30 Oct 2026.

What to do

Upgrade joi to 17.13.9; joi to 18.3.1.

Affected software

ProductAffectedFixed in
npmjoiAffected
  • >=17.1.1 <17.13.9
Fixed in
  • 17.13.9
npm@hapi/joiAffected
  • >=16.0.0 <=17.1.1
Fixed in–
npmjoiAffected
  • >=18.0.0 <18.3.1
Fixed in
  • 18.3.1

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

AI-suggested

A fix is available in joi versions 17.13.9 and 18.3.1. Users should upgrade to these or later versions to resolve the vulnerability. For users unable to upgrade immediately, applying a .max() length constraint before the .email({ multiple: true }) validation can prevent long inputs from reaching the vulnerable code. Avoid using the abortEarly: false option with this schema, as it causes the email rule to run even if the max rule fails. Using .trim() is not an effective workaround as it only removes whitespace at the start and end of the input.

Description

A denial of service vulnerability exists in the joi library's string email validation when using the multiple option. The email validation splits input strings using a regular expression that performs in quadratic time on long runs of whitespace, causing the Node.js event loop to block for several seconds with large whitespace inputs. This affects joi versions from 16.0.0 through 17.13.8 and 18.0.0 through 18.3.0. The issue is fixed in joi versions 17.13.9 and 18.3.1.

References

Community reviews

Loading reviews…