CVE-2026-118772
validatedZero produced an exploit or a check.GHSA-4528-x5fx-h6hg ↗EUVD-2026-113320 ↗
description
Joi email validation with the multiple-address option can consume excessive CPU on long whitespace input, delaying other work in the Node.js process. Applications are exposed when untrusted values reach this rule without a length limit that stops validation before the email check, including public endpoints.
mitigation
Upgrade npm joi to version 18.3.1 or later. Until a fixed @hapi/joi release is recorded, enforce a maximum input length before the email rule and keep fail-fast validation enabled rather than using abortEarly: false.
fixed in 18.3.1
outcome
Contextual check: a technique exists and was validated, but no deterministic check could cover this one.
source signals
Public signals that triggered or updated the pipeline. These are inputs for the deltas above.
- 2026-10-29 18:13Zcve_org: trigger signal, started the run
- 2026-10-30 23:10Z
this entry in the feed
GET /api/v1/feed/CVE-2026-118772
{ "etk_id": "ETK-2026-2995", "cve_id": "CVE-2026-118772", "display_id": "CVE-2026-118772", "ghsa_id": "GHSA-4528-x5fx-h6hg", "euvd_id": "EUVD-2026-113320", "status": "published", "anchor_state": "anchored", "title": "Algorithmic denial of service in Joi email validation", "summary": "Joi email validation with the multiple-address option can consume excessive CPU on long whitespace input, delaying other work in the Node.js process. Applications are exposed when untrusted values reach this rule without a length limit that stops validation before the email check, including public endpoints.", "mitigation": "Upgrade npm joi to version 18.3.1 or later. Until a fixed @hapi/joi release is recorded, enforce a maximum input length before the email rule and keep fail-fast validation enabled rather than using abortEarly: false.", "vendor": "hapijs", "product": "joi", "affected": [ { "affected_notes": [], "affected_ranges": [ ">=17.1.1 <17.13.9", ">=18.0.0 <18.3.1" ], "ecosystem": "npm", "fixed_versions": [ "18.3.1" ], "package_name": "joi", "purl": "pkg:npm/joi" }, { "affected_notes": [], "affected_ranges": [ ">= 16.0.0" ], "ecosystem": "npm", "fixed_versions": [], "package_name": "@hapi/joi", "purl": "pkg:npm/@hapi/joi" } ], "cwes": [ 1333 ], "cvss_score": 7.5, "cvss_src": "cna_vendor", "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "epss_score": null, "epss_percentile": null, "epss_asof": null, "automation": "contextual", "check": true, "check_confidence_basis": "assessed", "exploit": false, "pipeline_minutes": 11.531464616666666, "t0_at": "2026-10-29T18:13:33.771000+00:00", "signals": { "check": { "at": "2026-10-30T23:30:46.933709+00:00", "days": 1.2202912350578703, "is_lower_bound": false, "measured_at": "2026-10-29T18:13:33.771000+00:00", "url": null }, "public_poc": { "at": "2026-10-30T23:10:23+00:00", "days": 1.206125335648148, "is_lower_bound": false, "measured_at": "2026-10-29T18:13:33.771000+00:00", "url": "https://github.com/advisories/GHSA-4528-x5fx-h6hg" }, "trigger_signal": { "at": "2026-10-29T18:13:33.771000+00:00", "days": 0, "is_lower_bound": false, "measured_at": "2026-10-29T18:13:33.771000+00:00", "url": "https://www.cve.org/CVERecord?id=CVE-2026-118772" } } }
published 2026-10-29 18:31Z
last change 2026-10-31 00:16Z
Need the technical details behind an entry?
Every entry here shows what we attempted and when. The technical details, the generated exploit that fired it and the evidence behind the verdict are not public. Tell us about your use case and we’ll get back to you about extended API access.