CVE-2026-92599: Joi before 17.13.7 and 18.2.6 ReDoS via isoDate

Published Sep 16, 2026
·
Updated

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.

Affected Software

1 affected component
npm/joi>17.2.0<17.13.7, >18.0.0<18.2.6

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade joi (npm package `joi`, hapi.js) to a version that resolves this vulnerability.

    Fixed in 17.13.7
  2. Upgrade

    Upgrade joi (npm package `joi`, hapi.js) to a version that resolves this vulnerability.

    Fixed in 18.2.6
  3. Configuration

    As a workaround prior to upgrading to 17.13.7 or 18.2.6, cap (limit) the length of the string supplied to Joi.string().isoDate() so the isoDate validation does not process overly long inputs.

    joi (npm package `joi`, hapi.js) Joi.string().isoDate() input length = cap the length of the string before it reaches joi

Event History

Sep 16, 2026
CVE Published
via MITRE·09:47 PM
Data Sourced
via MITRE·09:47 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to this issue?

Deployments using the npm package joi in versions >=17.2.0 and <17.13.7, or >=18.0.0 and <18.2.6, are affected if they use the Joi.string().isoDate() validation rule on attacker-controlled input.

2

What does an attacker need to exploit the vulnerability?

An attacker only needs network access to an application endpoint that passes a supplied string to an isoDate validation. A valid ISO date followed by a long sequence of fractional-second digits can cause a single request to stall the application.

3

What can be done if upgrading is not immediately possible?

Cap the input string length before it reaches joi. This limits the quadratic regex processing triggered by long runs of fractional-second digits.

4

How can I assess potential impact in my application?

Identify uses of Joi.string().isoDate() and determine whether their input can be supplied remotely or by untrusted users. Inputs approaching 64 KB of crafted digits may consume about 1.4 seconds of processing, while 256 KB may consume about 22 seconds.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203