CVE-2024-9506
Regular Expression Denial of Service (ReDoS)
Improper regular expression in Vue's parseHTML function leads to a potential regular expression denial of service vulnerability.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
3.7
Regular Expression Denial of Service (ReDoS)
Improper regular expression in Vue's parseHTML function leads to a potential regular expression denial of service vulnerability.
- Record
CVE-2024-9506- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-1333
- Updated
- 2026-11-02
EUVDEUVD-2024-2953
3.7
Improper regular expression in Vue's parseHTML function leads to a potential regular expression denial of service vulnerability.
- Record
EUVD-2024-2953- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-5j4c-8p2g-v4jx
2.9
ReDoS vulnerability in vue package that is exploitable through inefficient regex evaluation in the parseHTML function
The ReDoS can be exploited through the parseHTML function in the html-parser.ts file. This flaw allows attackers to slow down the application by providing specially crafted input that causes inefficient processing of regular expressions, leading to excessive resource consumption.
To demonstrate this vulnerability, here's an example. In a Vue client-side application, create a new Vue instance with a template string that includes a <script> tag but closes it incorrectly with something like </textarea>.
new Vue({
el: '#app',
template: '
<div>
Hello, world!
<script>${'<'.repeat(1000000)}</textarea>
</div>'
});
Next, set up a basic HTML page (e.g., index.html) to load this JavaScript and mount the Vue instance:
<!DOCTYPE html>
<html>
<head>
<title>My first Vue app</title>
</head>
<body>
<div id=\"app\">Loading...</div>
</body>
</html>
When you visit the app in your browser at http://localhost:3000, you'll notice that the time taken to parse and mount the Vue application increases significantly due to the ReDoS vulnerability, demonstrating how the flaw can affect performance.
- Record
GHSA-5j4c-8p2g-v4jx- CVSS 4.0
- 2.9 Low
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P - CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-1333
- Updated
- 2026-11-02
NVD
3.7
Improper regular expression in Vue's parseHTML function leads to a potential regular expression denial of service vulnerability.
- Record
CVE-2024-9506- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-1333
- Updated
- 2026-11-02
OSVGHSA-5j4c-8p2g-v4jx
2.9
ReDoS vulnerability in vue package that is exploitable through inefficient regex evaluation in the parseHTML function
The ReDoS can be exploited through the parseHTML function in the html-parser.ts file. This flaw allows attackers to slow down the application by providing specially crafted input that causes inefficient processing of regular expressions, leading to excessive resource consumption.
To demonstrate this vulnerability, here's an example. In a Vue client-side application, create a new Vue instance with a template string that includes a <script> tag but closes it incorrectly with something like </textarea>.
new Vue({
el: '#app',
template: '
<div>
Hello, world!
<script>${'<'.repeat(1000000)}</textarea>
</div>'
});
Next, set up a basic HTML page (e.g., index.html) to load this JavaScript and mount the Vue instance:
<!DOCTYPE html>
<html>
<head>
<title>My first Vue app</title>
</head>
<body>
<div id=\"app\">Loading...</div>
</body>
</html>
When you visit the app in your browser at http://localhost:3000, you'll notice that the time taken to parse and mount the Vue application increases significantly due to the ReDoS vulnerability, demonstrating how the flaw can affect performance.
- Record
GHSA-5j4c-8p2g-v4jx- CVSS 4.0
- 2.9 Low
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P - CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-1333
- Updated
- 2026-11-02
OSVCLSA-2026-1774830270 No score
TuxCare security update for 2 packages (2 CVEs)
TuxCare rebuilt 2 packages to address 2 CVEs. Fixed in 2.6.11-tuxcare.2.
- Record
CLSA-2026-1774830270- Updated
- 2026-11-02
Show 6 moreShow less
OSVCLSA-2026-1774916696 No score
TuxCare security update for 2 packages (2 CVEs)
TuxCare rebuilt 2 packages to address 2 CVEs. Fixed in 2.6.14-tuxcare.5.
- Record
CLSA-2026-1774916696- Updated
- 2026-11-02
OSVCLSA-2026-1791908879 No score
TuxCare security update for 2 packages (1 CVE)
TuxCare rebuilt 2 packages to address 1 CVE. Fixed in 2.2.6-tuxcare.3.
- Record
CLSA-2026-1791908879- Updated
- 2026-11-02
OSVCLSA-2026-1793148256 No score
TuxCare security update for vue (2 CVEs)
TuxCare rebuilt vue to address 2 CVEs. Fixed in 2.6.11-tuxcare.2.
- Record
CLSA-2026-1793148256- Updated
- 2026-11-02
OSVCLSA-2026-1793148258 No score
TuxCare security update for vue (2 CVEs)
TuxCare rebuilt vue to address 2 CVEs. Fixed in 2.6.14-tuxcare.5.
- Record
CLSA-2026-1793148258- Updated
- 2026-11-02
OSVCLSA-2026-1793148266 No score
TuxCare security update for vue (1 CVE)
TuxCare rebuilt vue to address 1 CVE. Fixed in 2.2.6-tuxcare.3.
- Record
CLSA-2026-1793148266- Updated
- 2026-11-02
OSVCLSA-2026-1793148267 No score
TuxCare security update for vue (1 CVE)
TuxCare rebuilt vue to address 1 CVE. Fixed in 2.7.16-tuxcare.9.
- Record
CLSA-2026-1793148267- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
vuenpm |
2.0.0-alpha.1 up to 3.0.0-alpha.0 | 3.0.0-alpha.0 |
vue-server-rendererTuxCare:npm From an advisory covering 2 CVEs |
2.6.11-tuxcare.0 up to 2.6.11-tuxcare.2, plus listed versions 2.6.112.6.11-tuxcare.1 |
2.6.11-tuxcare.2 |
vue-template-compilerTuxCare:npm From an advisory covering 2 CVEs |
2.6.11-tuxcare.0 up to 2.6.11-tuxcare.2, plus listed versions 2.6.112.6.11-tuxcare.1 |
2.6.11-tuxcare.2 |
vue-server-rendererTuxCare:npm From an advisory covering 2 CVEs |
2.6.14-tuxcare.0 up to 2.6.14-tuxcare.5, plus listed versions 2.6.142.6.14-tuxcare.12.6.14-tuxcare.22.6.14-tuxcare.32.6.14-tuxcare.4 |
2.6.14-tuxcare.5 |
vue-template-compilerTuxCare:npm From an advisory covering 2 CVEs |
2.6.14-tuxcare.0 up to 2.6.14-tuxcare.5, plus listed versions 2.6.142.6.14-tuxcare.12.6.14-tuxcare.22.6.14-tuxcare.32.6.14-tuxcare.4 |
2.6.14-tuxcare.5 |
vue-server-rendererTuxCare:npm |
2.2.6-tuxcare.0 up to 2.2.6-tuxcare.3, plus listed versions 2.2.62.2.6-tuxcare.12.2.6-tuxcare.2 |
2.2.6-tuxcare.3 |
vue-template-compilerTuxCare:npm |
2.2.6-tuxcare.0 up to 2.2.6-tuxcare.3, plus listed versions 2.2.62.2.6-tuxcare.12.2.6-tuxcare.2 |
2.2.6-tuxcare.3 |
vueTuxCare:npm From an advisory covering 2 CVEs |
2.6.11-tuxcare.0 up to 2.6.11-tuxcare.2, plus listed versions 2.6.11 |
2.6.11-tuxcare.2 |
vueTuxCare:npm From an advisory covering 2 CVEs |
2.6.14-tuxcare.0 up to 2.6.14-tuxcare.5, plus listed versions 2.6.14 |
2.6.14-tuxcare.5 |
vueTuxCare:npm |
2.2.6-tuxcare.0 up to 2.2.6-tuxcare.3, plus listed versions 2.2.62.2.6-tuxcare.12.2.6-tuxcare.2 |
2.2.6-tuxcare.3 |
vueTuxCare:npm |
2.7.16-tuxcare.0 up to 2.7.16-tuxcare.9, plus listed versions 2.7.162.7.16-tuxcare.12.7.16-tuxcare.52.7.16-tuxcare.62.7.16-tuxcare.72.7.16-tuxcare.8 |
2.7.16-tuxcare.9 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | bio/vue-template-compiler-patched | 2025-04-16 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases, products, published | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV, PoC in GitHub |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-9506 is a low vulnerability (CVSS 3.7) in @clerk Vue, published October 15, 2024. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 0.57%, the 47th percentile. Fixed in vue 3.0.0-alpha.0.