Skip to main content

Joi EUVDEUVD-2026-81299

| CVE-2026-92599 HIGH
Inefficient Regular Expression Complexity (ReDoS) (CWE-1333)
2026-09-16 disclosure@vulncheck.com GHSA-mrx9-2rrp-rhpx GHSA-6h2x-m376-mqjq
8.7
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify endpoint validating input with isoDate()
  2. Delivery
    Craft valid ISO date + long fractional-second digit run
  3. Exploit
    Submit large string in single request
  4. Execution
    Unanchored regex rescans every position (O(n²))
  5. Impact
    Event loop pinned, service stalls for legitimate users

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V2 - Validation and Business Logic Regex complexity limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The application must invoke the Joi.string().isoDate() validation rule on attacker-controllable input AND must NOT cap the input string length before it reaches joi. Because the algorithm is quadratic rather than exponential, the attacker must be able to send large strings (roughly 64KB for ~1.4s and 256KB for ~22s of stall), so any upstream body-size or field-length limit materially reduces or neutralizes the impact. No authentication is required (PR:N) and no user interaction is needed (UI:N); the limiting factors are the presence of an isoDate() rule on a reachable endpoint and the absence of a length cap. Workaround: cap the string length before it reaches joi, or upgrade to 17.13.7 / 18.2.6.

Impact

Signals are consistent and point to a genuine but bounded availability risk. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N, VA:H, VC:N/VI:N) correctly frames this as a network-reachable, unauthenticated, low-complexity denial-of-service with no confidentiality or integrity impact - the 8.7 score is driven entirely by high availability impact. CWE-1333 (ReDoS) matches the described unanchored-regex quadratic blowup. Importantly, the algorithmic complexity here is QUADRATIC (O(n²)), not exponential: the description quantifies ~1.4s for 64KB and ~22s for 256KB of input, so a single small request cannot stall the app - an attacker needs to submit large (tens-to-hundreds of KB) strings, and sustained impact requires repeated large requests. No EPSS score, no KEV listing, and no POC are present in the input, so there is no evidence of active exploitation; treat this as 'no public exploit identified.' Net: a real, easily-triggered DoS in a hugely popular library, worth prompt patching, but the raw 8.7 overstates single-request severity because the attack is throughput/size-dependent rather than an instant crash, and real-world exposure hinges on whether an isoDate() rule is actually reachable with uncapped input.

Exploit ScenarioDerived

An attacker identifies an HTTP/API endpoint whose request body or parameter is validated with Joi.string().isoDate() (common in hapi.js and Express request schemas). They submit a payload consisting of a valid ISO date followed by a very long run of fractional-second digits (e.g., 256KB), causing the unanchored regex to rescan from every position and pin a CPU/event-loop thread for many seconds. Repeating such requests exhausts the single-threaded Node.js event loop and stalls the service for all users. No public exploit code is identified in the provided sources.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 16, 2026

Denial of service in the Joi npm package's isoDate() validation rule allows unauthenticated remote attackers to stall Node.js applications by supplying a valid ISO date followed by a long run of fractional-second digits, causing quadratic regex engine restarts. Affected versions are 17.2.0 through 17.13.6 and 18.0.0 through 18.2.5; no public exploit identified at time of analysis, but the availability impact is high (CVSS 8.7) and unbounded inputs can cause multi-second stalls per request. Vendor-released patches 17.13.7 and 18.2.6 resolve the issue.

RemediationAI

Vendor-released patch: 17.13.7 and 18.2.6. Upgrade to Joi 17.13.7 or 18.2.6, which contain the fix for the unanchored regular expression. If immediate upgrade is not possible, cap the length of any string before it reaches Joi's isoDate() validation-for example, enforce a maximum field length at the API gateway or application layer-since the quadratic complexity means that limiting input to a few kilobytes neutralizes the attack (roughly 64 KB causes about 1.4 seconds of stall and 256 KB about 22 seconds). This workaround may reject unusually long legitimate ISO date strings, but such inputs are rare. Additionally, configure request body size limits to prevent large payloads from reaching the validation layer. Refer to the vendor advisory at https://github.com/hapijs/joi/security/advisories/GHSA-6h2x-m376-mqjq for details.

Affected VersionsENISA

joi 17.2.0 <17.13.7
joi 18.0.0 <18.2.6

Affected Packages

npm joi fix: 17.13.7, 18.2.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability is a regular expression denial of service (ReDoS) in the Joi validation library, classified as CWE-1333 (Inefficient Regular Expression Complexity). Joi's Joi.string().isoDate() rule applies an unanchored regular expression to validate ISO 8601 date strings; when the input begins with a valid ISO date but is followed by a long run of fractional-second digits, the regex engine restarts its search from every position in the string, resulting in time proportional to the square of the input length (quadratic complexity). This affects the npm package joi (hapi.js ecosystem) versions >=17.2.0 <17.13.7 and >=18.0.0 <18.2.6. No CPE strings were provided in the source data, but the advisory GHSA-6h2x-m376-mqjq and VulnCheck advisory detail the fix. The attack requires that an application invokes isoDate() on attacker-controllable input without a length cap; because the algorithm is quadratic rather than exponential, the impact is bounded by input size limits.

Know when Node.js gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (vulncheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Network-reachable, unauthenticated, low-complexity regex DoS with availability-only impact; A:H reflects sustained event-loop stall via repeated large requests, C/I:N as no data exposure.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Red Hat 7.5 HIGH

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 16, 2026 - 23:19 EUVD
CVE Published
Sep 16, 2026 - 22:18 cve.org
HIGH 8.7

DescriptionCVE.org

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.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 4 npm packages depend on joi (4 direct, 0 indirect)

Ecosystem-wide dependent count for version 17.2.0.

Technical POC Analysis

Evidence note: the supplied material is the GitHub advisory GHSA-6h2x-m376-mqjq plus two patch PR references.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A denial-of-service flaw in the Joi validation library for Node.js - affecting versions 17.2.0 through 17.13.6 and 18.0.0 through 18.2.5 - allows crafted input to stall request processing, degrading or taking down any customer-facing API or internal service that validates ISO dates through Joi. Because Joi is a common direct and transitive dependency, exposure most likely spans multiple teams and services rather than a single application, making this an estate-wide availability issue rather than a point fix. Leadership should care because the primary risk is service availability: customer-facing outages, SLA breaches, latency-driven support escalations, and remediation effort spread across every team that ships Node.js code.

Business Impact: High
Compensating Controls

Apply vendor patch (Joi 17.13.7 for 17.x, 18.2.6 for 18.x) per the advisory context - validate availability first, since the patch-status field reports none. Until upgraded: enforce maximum input length on all ISO-date parameters, reject or truncate excessive fractional-second digit sequences, apply strict request timeouts, connection limits, and rate limiting at the edge, and monitor for elevated request latency as an early warning of exploitation attempts.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
High
joi is one of the most widely-used Node.js validation libraries, tens of millions of weekly downloads
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise High Performance Computing 12 Not-Affected
SUSE Linux Enterprise Micro 5.3 Not-Affected
SUSE Linux Enterprise Micro 5.4 Not-Affected
SUSE Linux Enterprise Micro 5.5 Not-Affected
SUSE Linux Enterprise Module for Web and Scripting 15 SP7 Not-Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy