CVE-2024-34075
kurwov vulnerable to Denial of Service due to improper data sanitization
kurwov is a fast, dependency-free library for creating Markov Chains. An unsafe sanitization of dataset contents on the MarkovData#getNext method used in Markov#generate and Markov#choose allows a maliciously crafted string on the dataset to throw and stop the function from running properly. If a string contains a forbidden substring (i.e. __proto__) followed by a space character, the code will access a special property in MarkovData#finalData by removing the last character of the string, bypassing the dataset sanitization (as it is supposed to be already sanitized before this function is called). Any dataset can be contaminated with the substring making it unable to properly generate anything in some cases. This issue has been addressed in version 3.2.5 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
6.2
kurwov vulnerable to Denial of Service due to improper data sanitization
kurwov is a fast, dependency-free library for creating Markov Chains. An unsafe sanitization of dataset contents on the MarkovData#getNext method used in Markov#generate and Markov#choose allows a maliciously crafted string on the dataset to throw and stop the function from running properly. If a string contains a forbidden substring (i.e. __proto__) followed by a space character, the code will access a special property in MarkovData#finalData by removing the last character of the string, bypassing the dataset sanitization (as it is supposed to be already sanitized before this function is called). Any dataset can be contaminated with the substring making it unable to properly generate anything in some cases. This issue has been addressed in version 3.2.5 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
CVE-2024-34075- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-502
- Updated
- 2026-11-02
EUVDEUVD-2024-1647
6.2
kurwov is a fast, dependency-free library for creating Markov Chains. An unsafe sanitization of dataset contents on the MarkovData#getNext method used in Markov#generate and Markov#choose allows a maliciously crafted string on the dataset to throw and stop the function from running properly. If a string contains a forbidden substring (i.e. __proto__) followed by a space character, the code will access a special property in MarkovData#finalData by removing the last character of the string, bypassing the dataset sanitization (as it is supposed to be already sanitized before this function is called). Any dataset can be contaminated with the substring making it unable to properly generate anything in some cases. This issue has been addressed in version 3.2.5 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
EUVD-2024-1647- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-hfrv-h3q8-9jpr
6.2
kurwov vulnerable to Denial of Service due to improper data sanitization
Summary
An unsafe sanitization of dataset contents on the MarkovData#getNext method used in Markov#generate and Markov#choose allows a maliciously crafted string on the dataset to throw and stop the function from running properly.
Details
If a string contains a forbidden substring (i.e. __proto__) followed by a space character, the second line will access a special property in MarkovData#finalData by removing the last character of the string, bypassing the dataset sanitization (as it is supposed to be already sanitized before this function is called).
data is then defined as the special function found in its prototype instead of an array.
On the last line, data is then indexed by a random number, which is supposed to return a string but returns undefined as it's a function. Calling endsWith then throws.
PoC
https://runkit.com/embed/m6uu40r5ja9b
Impact
Any dataset can be contaminated with the substring making it unable to properly generate anything in some cases.
- Record
GHSA-hfrv-h3q8-9jpr- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-502
- Updated
- 2026-11-02
NVD
6.2
kurwov is a fast, dependency-free library for creating Markov Chains. An unsafe sanitization of dataset contents on the MarkovData#getNext method used in Markov#generate and Markov#choose allows a maliciously crafted string on the dataset to throw and stop the function from running properly. If a string contains a forbidden substring (i.e. __proto__) followed by a space character, the code will access a special property in MarkovData#finalData by removing the last character of the string, bypassing the dataset sanitization (as it is supposed to be already sanitized before this function is called). Any dataset can be contaminated with the substring making it unable to properly generate anything in some cases. This issue has been addressed in version 3.2.5 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
CVE-2024-34075- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-502
- Updated
- 2026-11-02
OSV
6.2
kurwov vulnerable to Denial of Service due to improper data sanitization
kurwov is a fast, dependency-free library for creating Markov Chains. An unsafe sanitization of dataset contents on the MarkovData#getNext method used in Markov#generate and Markov#choose allows a maliciously crafted string on the dataset to throw and stop the function from running properly. If a string contains a forbidden substring (i.e. __proto__) followed by a space character, the code will access a special property in MarkovData#finalData by removing the last character of the string, bypassing the dataset sanitization (as it is supposed to be already sanitized before this function is called). Any dataset can be contaminated with the substring making it unable to properly generate anything in some cases. This issue has been addressed in version 3.2.5 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
CVE-2024-34075- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-502
- Updated
- 2026-11-02
OSVGHSA-hfrv-h3q8-9jpr
6.2
kurwov vulnerable to Denial of Service due to improper data sanitization
Summary
An unsafe sanitization of dataset contents on the MarkovData#getNext method used in Markov#generate and Markov#choose allows a maliciously crafted string on the dataset to throw and stop the function from running properly.
Details
If a string contains a forbidden substring (i.e. __proto__) followed by a space character, the second line will access a special property in MarkovData#finalData by removing the last character of the string, bypassing the dataset sanitization (as it is supposed to be already sanitized before this function is called).
data is then defined as the special function found in its prototype instead of an array.
On the last line, data is then indexed by a random number, which is supposed to return a string but returns undefined as it's a function. Calling endsWith then throws.
PoC
https://runkit.com/embed/m6uu40r5ja9b
Impact
Any dataset can be contaminated with the substring making it unable to properly generate anything in some cases.
- Record
GHSA-hfrv-h3q8-9jpr- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-502
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
kurwovnpm |
3.1.0 up to 3.2.5 | 3.2.5 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases, published | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-34075 is a medium vulnerability (CVSS 6.2) in Xiboon Kurwov, published May 3, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.30%, the 22nd percentile. Fixed in kurwov 3.2.5.
References
github.com/xiboon/kurwov/security/advisories/GHSA-hfrv-h3q8-9jpr
github.com/xiboon/kurwov/commit/85d63e652594f121d6656177d7a3c0d823c976c9
github.com/xiboon/kurwov/blob/0d58dfa42135ab40e830e92622857282f980ca89/src/MarkovData.ts
nvd.nist.gov/vuln/detail/CVE-2024-34075
github.com/advisories/GHSA-hfrv-h3q8-9jpr
github.com/CVEProject/cvelistV5/tree/main/cves/2024/34xxx/CVE-2024-34075.json
github.com/xiboon/kurwov