Approved changes feed: RSS · Atom

cpe:2.3:a:hapijs:joi:*:*:*:*:*:*:*:*

part: a version: * update: *

VendorHapijs (cde07e56-6e3e-5211-9d96-925613bfc13f)
ProductJoi (6792fcdb-6b3a-5f16-adae-96b4e7a99bc8)
Edition*
Language*
Software edition*
Target software*
Target hardware*
Other*

Notes

Imported from purl2cpe mapping

PURL mappings

PURLSourceLast updated
pkg:github/hapijs/joi purl2cpe 2026-09-09 08:34:17.339668

Vulnerability references

IdentifiercpeApplicabilitySubmitteddb.gcve.eu detailsRationale
CVE:CVE-2026-118772 vulnerable 2026-11-03 10:17:04.428926 joi: quadratic-time split in `string().email({ multiple: true })` allows denial of service
HIGH (7.5)
joi is a schema description language and data validator for JavaScript. From 17.1.1 until 17.13.9 and 18.3.1, the Joi.string().email({ multiple: true }) rule uses a separator regular expression whose leading whitespace quantifier is retried at every position in a long whitespace run that contains no separator, causing quadratic work during String.prototype.split. The behavior applies to the default separator and every custom separator. Applications that validate attacker-controlled values with the multiple option and no effective prior length limit can have the Node.js event loop blocked for seconds by one request, preventing other work. A .max() rule is not sufficient when abortEarly: false allows the email rule to run after the maximum-length check fails. This vulnerability is fixed in versions 17.13.9 and 18.3.1.
Published: 2026-10-29T18:13:33.771Z
Updated: 2026-11-04T01:33:51.841Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-92599 vulnerable 2026-10-13 12:28:53.602683 Joi before 17.13.7 and 18.2.6 ReDoS via isoDate
HIGH (7.5)
joi (npm package `joi`, hapi.js) versions >=17.2.0 <17.13.7 and >=18.0.0 <18.2.6 are vulnerable to regular expression denial of service in the `Joi.string().isoDate()` validation rule. One of the regular expressions the rule applies to the input is unanchored, so a valid ISO date followed by a long run of fractional-second digits causes the regex engine to restart its search from every position in the string, yielding time proportional to the square of the input length (about 1.4 s for 64 KB of digits and about 22 s for 256 KB). A remote attacker who can supply a string to an isoDate validation can stall the application with a single request. Fixed in 17.13.7 and 18.2.6; as a workaround, cap the length of the string before it reaches joi.
Published: 2026-09-16T21:47:03.073Z
Updated: 2026-09-18T20:06:43.275Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-90771 vulnerable 2026-09-16 04:33:05.607703 joi before 17.13.8 and 18.2.9 Prototype Pollution via messages
LOW (3.7)
joi before versions 17.13.8 and 18.2.9 contains a prototype pollution vulnerability in the messages compilation function that accepts __proto__ as an error code. Attackers can supply __proto__ keys in custom messages to replace the returned object's prototype, breaking downstream code relying on Object.prototype methods.
Published: 2026-09-13T10:45:42.498Z
Updated: 2026-09-24T14:21:52.339Z
Reference links
Imported from gcve-enriched-dumps CVE data

Contribute

You can submit an edit proposal for this CPE entry or suggest a related product/vendor addition using the action button above.

Inspect record JSON

Open JSON directly

Open this panel to browse, search, copy or download the JSON record.