Bug 2563634 (CVE-2026-118772)

Summary: CVE-2026-118772 joi: joi: Denial of Service via inefficient regular expression in email validation
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security <prodsec-ir-bot>
Status: NEW --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: unspecifiedCC: aazores, akhatavk, aos-team-art-private, asdas, cdrage, cmah, dfreiber, dhanak, dpaolell, drosa, drow, dsimansk, dymurray, eaguilar, ebaron, ibolton, jburrell, jdelft, jmatsuok, jmatthew, jmontleo, jtolenti, jupierce, kingland, lchilton, lgarciaa, mbiarnes, mnovotny, pgaikwad, pjindal, ppalepu, ppostler, prdhamdh, rhel-process-autobot, rjohnson, rushinde, sausingh, sdawley, sfeifer, sghai, sidsharm, slucidi, sseago, suppawar, vkumar, vlaad, watson-tool-maintainers
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in joi. The email validation rule configured to validate multiple addresses uses an inefficient regular expression when splitting input strings. A remote attacker can exploit this flaw by submitting input containing long runs of whitespace, causing excessive computation. This can block the application's processing thread and lead to a Denial of Service (DoS).
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2026-10-29 18:58:57 UTC
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.