Every CVE Search/ Get API key

CVE-2026-92599

Joi before 17.13.7 and 18.2.6 ReDoS via isoDate

8.7 HighFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.58%Up 0.2 points since Sep 17, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.7

Joi before 17.13.7 and 18.2.6 ReDoS via isoDate

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.

Record
CVE-2026-92599
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1333
Updated
2026-11-02
EUVDEUVD-2026-81299 8.7

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.

Record
EUVD-2026-81299
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-6h2x-m376-mqjq 8.7

joi: Quadratic regular-expression backtracking in `Joi.string().isoDate()`

Impact

Any application that validates a user-supplied string with Joi.string().isoDate() can be stalled by a single request. One of the regular expressions the rule runs over the input was unanchored, so a valid ISO date followed by a long run of fractional-second digits made the regex engine restart its search from every position in the string, costing time proportional to the square of the input length. 64 KB of digits costs about 1.4 s and 256 KB about 22 s.

Patches

Upgrade to version 17.13.7 or 18.2.6 depending on your current major version.

Workarounds

None except capping the length of the string before it reaches joi.

Record
GHSA-6h2x-m376-mqjq
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1333
Updated
2026-11-02
GitHub AdvisoriesGHSA-mrx9-2rrp-rhpx 8.7

Duplicate Advisory: joi: Quadratic regular-expression backtracking in `Joi.string().isoDate()`

Duplicate Advisory

This advisory has been withdrawn because it is a duplicate of GHSA-6h2x-m376-mqjq. This link is maintained to preserve external references.

Original Description

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.

Record
GHSA-mrx9-2rrp-rhpx
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1333
Updated
2026-11-02
NVD 8.7

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.

Record
CVE-2026-92599
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1333
Updated
2026-11-02
OSV 8.7

Joi before 17.13.7 and 18.2.6 ReDoS via isoDate

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.

Record
CVE-2026-92599
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-1333
Updated
2026-11-02
Show 9 moreShow less
OSVGHSA-6h2x-m376-mqjq 8.7

joi: Quadratic regular-expression backtracking in `Joi.string().isoDate()`

Impact

Any application that validates a user-supplied string with Joi.string().isoDate() can be stalled by a single request. One of the regular expressions the rule runs over the input was unanchored, so a valid ISO date followed by a long run of fractional-second digits made the regex engine restart its search from every position in the string, costing time proportional to the square of the input length. 64 KB of digits costs about 1.4 s and 256 KB about 22 s.

Patches

Upgrade to version 17.13.7 or 18.2.6 depending on your current major version.

Workarounds

None except capping the length of the string before it reaches joi.

Record
GHSA-6h2x-m376-mqjq
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1333
Updated
2026-11-02
OSVGHSA-mrx9-2rrp-rhpx 8.7

Duplicate Advisory: joi: Quadratic regular-expression backtracking in `Joi.string().isoDate()`

Duplicate Advisory

This advisory has been withdrawn because it is a duplicate of GHSA-6h2x-m376-mqjq. This link is maintained to preserve external references.

Original Description

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.

Record
GHSA-mrx9-2rrp-rhpx
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1333
Updated
2026-11-02
OSVRHSA-2026:68778 7.5

Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

Record
RHSA-2026:68778
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVRHSA-2026:68821 7.5

Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

Record
RHSA-2026:68821
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVRHSA-2026:68926 7.5

Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

Record
RHSA-2026:68926
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVCLSA-2026-1790719586 No score

TuxCare security update for joi (1 CVE)

TuxCare rebuilt joi to address 1 CVE. Fixed in 17.13.6-tuxcare.1.

Record
CLSA-2026-1790719586
Updated
2026-11-02
OSVCLSA-2026-1792510126 No score

TuxCare security update for joi (4 CVEs)

TuxCare rebuilt joi to address 4 CVEs. Fixed in 17.13.4-tuxcare.1.

Record
CLSA-2026-1792510126
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-92599 No score

CVE-2026-92599 in joi - Patched by Root

Root has patched CVE-2026-92599 in the joi package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-CVE-2026-92599
Updated
2026-11-02
OSVROOT-APP-NPM-GHSA-6h2x-m376-mqjq No score

GHSA-6h2x-m376-mqjq in joi - Patched by Root

Root has patched GHSA-6h2x-m376-mqjq in the joi package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-GHSA-6h2x-m376-mqjq
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
joi
npm
17.2.0 up to 17.13.7
17.13.7
joi
npm
18.0.0 up to 18.2.6
18.2.6
joi
TuxCare:npm
17.13.6-tuxcare.0 up to 17.13.6-tuxcare.1, plus listed versions
17.13.6
17.13.6-tuxcare.1
joi
TuxCare:npm
From an advisory covering 4 CVEs
17.13.4-tuxcare.0 up to 17.13.4-tuxcare.1, plus listed versions
17.13.4
17.13.4-tuxcare.1
grafana13.2
Red Hat:hummingbird:1
From an advisory covering 14 CVEs
before 0:13.2.1-0.5.hum1
0:13.2.1-0.5.hum1
grafana12.4
Red Hat:hummingbird:1
From an advisory covering 14 CVEs
before 0:12.4.10-0.6.hum1
0:12.4.10-0.6.hum1
grafana13.1
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:13.1.6-0.2.hum1
0:13.1.6-0.2.hum1
joi
Root:npm
before 17.13.4-aikido.2
17.13.4-aikido.217.13.6-aikido.217.13.3-aikido.417.13.5-aikido.2
@rootio/joi
Root:npm
before 17.13.4-root.io.2
17.13.4-root.io.217.13.6-root.io.217.13.3-root.io.417.13.5-root.io.2
joi
Root:npm
before 18.2.3-aikido.1
18.2.3-aikido.117.13.6-aikido.117.13.4-aikido.117.13.5-aikido.117.13.3-aikido.217.13.3-aikido.317.13.4-aikido.217.13.6-aikido.217.13.3-aikido.417.13.5-aikido.2
@rootio/joi
Root:npm
before 18.2.3-root.io.1
18.2.3-root.io.117.13.6-root.io.117.13.4-root.io.117.13.5-root.io.117.13.3-root.io.217.13.3-root.io.317.13.4-root.io.217.13.6-root.io.217.13.3-root.io.417.13.5-root.io.2

History

History
RecordedChangedSources
affected, facts
affected
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-92599 is a high vulnerability (CVSS 8.7) in Hapijs Joi, published September 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.58%, the 48th percentile. Fixed in joi 17.13.7.

References

Show 99 moreShow less
MoveEnter Open