CVE-2026-30837
Regular Expression Denial of Service in Elysia URL Validation
Publication date: 2026-03-10
Last updated on: 2026-03-20
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| elysiajs | elysia | to 1.4.26 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-1333 | The product uses a regular expression with an inefficient, possibly exponential worst-case computational complexity that consumes excessive CPU cycles. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability exists in the Elysia Typescript framework prior to version 1.4.26. Specifically, the function t.String({ format: 'url' }) is vulnerable to a Regular Expression Denial of Service (ReDoS) attack. The issue arises when a partial URL format, including protocol and hostname, is repeated multiple times, causing the regular expression to slow down significantly and potentially degrade performance.
How can this vulnerability impact me? :
The vulnerability can lead to a denial of service condition by causing the regular expression used for URL validation to consume excessive processing time. This can slow down or halt the application using the vulnerable Elysia framework, impacting availability. According to the CVSS score, the impact is on availability with a high severity (CVSS v3.1 Base Score 7.5), meaning attackers can cause significant service disruption remotely without any privileges or user interaction.
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
I don't know
What immediate steps should I take to mitigate this vulnerability?
To mitigate this vulnerability, you should upgrade the Elysia framework to version 1.4.26 or later, where the ReDoS issue with t.String({ format: 'url' }) has been fixed.