
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-104150 is a Regular Expression Denial of Service (ReDoS) vulnerability in the AdonisJS HTTP Server package (@adonisjs/http-server). The flaw exists in the router.matchers.slug() function, whose regular expression contains adjacent greedy quantifiers with overlapping character classes, enabling quadratic backtracking when processing maliciously crafted slug parameters. Affected versions are all releases prior to 8.2.2 (for AdonisJS v6) and all 9.x releases prior to 9.1.1 (for AdonisJS v7). The vulnerability was published on October 15, 2026, with patches released on July 27, 2026. It carries a CVSS v3.1 base score of 7.5 (High) and a CVSS v4.0 base score of 8.7 (High) (GitHub Advisory).
The root cause is classified under CWE-400 (Uncontrolled Resource Consumption) and CWE-1333 (Inefficient Regular Expression Complexity). The vulnerable regular expression in router.matchers.slug() is /^[^\s-_](?!.*?[-_]{2,})([a-z0-9-\\]{1,})[^\s]*[^-_\s]$/, which contains adjacent greedy quantifiers ([a-z0-9-\\]{1,} followed by [^\s]*) with overlapping character classes. When a long slug string ending in a character rejected by the final assertion (e.g., a trailing underscore) is evaluated, the regex engine must explore an exponential number of possible divisions between the overlapping quantifiers, resulting in approximately O(n^1.98) complexity. Because route matching occurs before any middleware is applied, an unauthenticated attacker can trigger this path simply by sending an HTTP GET request to any route configured with .where('slug', router.matchers.slug()), bypassing authentication or rate-limiting controls entirely (GitHub Advisory, Patch Commit).
Successful exploitation causes excessive CPU consumption that blocks the Node.js event loop, preventing the affected worker process from serving any requests — including requests to unrelated routes and health-check endpoints — for the duration of the regex evaluation. Only a small number of crafted requests may be sufficient to saturate a worker's capacity, effectively causing a denial of service. There is no confidentiality or integrity impact; the vulnerability is limited to availability (GitHub Advisory).
No public proof-of-concept exploit code has been identified, and there is no evidence of in-the-wild exploitation at this time (GitHub Advisory). The NVD SSVC assessment classifies the vulnerability as automatable with no known exploitation. The EPSS score is 0.0, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. However, the attack requires no authentication, no user interaction, and low complexity — any application exposing a route with router.matchers.slug() is potentially reachable by any internet-based attacker.
router.matchers.slug() on an attacker-controlled URL parameter (e.g., /posts/:slug). This can be done by probing URL patterns typical of AdonisJS applications or reviewing publicly accessible source code._). Example: a string of 50,000 a characters followed by _.GET /posts/aaa...aaa_ (with tens of thousands of characters).router.matchers.slug() evaluates the malicious input, causing quadratic backtracking (~O(n^1.98)) and consuming excessive CPU cycles, blocking the Node.js event loop._ or -; requests with URL path segments significantly exceeding normal length limits./posts/:slug) with extremely long parameter values; elevated response times or timeouts on these routes.The primary remediation is to upgrade @adonisjs/http-server to version 9.1.1 (for AdonisJS v7) or 8.2.2 (for AdonisJS v6), which replace the vulnerable regex with a rewritten pattern that eliminates overlapping unbounded repetitions (v9.1.1 Release, v8.2.2 Release). As a temporary workaround, implement request-line length limits at the reverse proxy or load balancer level (e.g., Nginx large_client_header_buffers) to reduce the maximum input size processed by the vulnerable regex, though this does not fully mitigate the vulnerability. Additionally, deploying rate-limiting at the network perimeter (before requests reach the application) can reduce the impact of repeated exploitation attempts.
Fix availability across major Linux distributions and their releases.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."