VDB
Sign up
LOW

GHSA-xffm-g5w8-qvg7

@eslint/plugin-kit is vulnerable to Regular Expression Denial of Service attacks through ConfigCommentParser

Quick fix

GHSA-xffm-g5w8-qvg7 — @eslint/plugin-kit: upgrade to the fixed version with the command below.

npm install @eslint/plugin-kit@0.3.4

Details

### Summary

The `ConfigCommentParser#parseJSONLikeConfig` API is vulnerable to a Regular Expression Denial of Service (ReDoS) attack in its only argument.

### Details

The regular expression at [packages/plugin-kit/src/config-comment-parser.js:158](https://github.com/eslint/rewrite/blob/bd4bf23c59f0e4886df671cdebd5abaeb1e0d916/packages/plugin-kit/src/config-comment-parser.js#L158) is vulnerable to a quadratic runtime attack because the grouped expression is not anchored. This can be solved by prepending the regular expression with `[^-a-zA-Z0-9/]`.

### PoC

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

const str = `${"A".repeat(1000000)}?: 1 B: 2`;

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

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

### Impact

This is a Regular Expression Denial of Service attack which may lead to blocking execution and high CPU usage.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/@eslint/plugin-kit
Introduced in: 0Fixed in: 0.3.4
Fixnpm install @eslint/plugin-kit@0.3.4

References