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: | vulnerability | Assignee: | Product Security <prodsec-ir-bot> |
| Status: | NEW --- | QA Contact: | |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | unspecified | CC: | 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: | |||
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.