Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.
Path to vulnerable library: /node_modules/jest-util/node_modules/braces/package.json,/node_modules/@cypress/code-coverage/node_modules/braces/package.json,/node_modules/copy-webpack-plugin/node_modules/braces/package.json,/node_modules/@typescript-eslint/typescript-estree/node_modules/braces/package.json,/node_modules/fork-ts-checker-webpack-plugin/node_modules/braces/package.json,/node_modules/@typescript-eslint/parser/node_modules/braces/package.json,/node_modules/jest-message-util/node_modules/braces/package.json,/node_modules/@babel/cli/node_modules/braces/package.json,/backend/node_modules/braces/package.json,/node_modules/@typescript-eslint/eslint-plugin/node_modules/braces/package.json,/node_modules/jest-config/node_modules/braces/package.json,/node_modules/@jest/transform/node_modules/braces/package.json,/node_modules/jest-haste-map/node_modules/braces/package.json,/node_modules/@jest/core/node_modules/braces/package.json,/node_modules/watchpack/node_modules/braces/package.json,/node_modules/size-limit/node_modules/braces/package.json
Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.
Path to vulnerable library: /backend/node_modules/sane/node_modules/braces/package.json,/node_modules/braces/package.json,/backend/node_modules/find-yarn-workspace-root/node_modules/braces/package.json
The NPM package `braces`, versions prior to 3.0.3, fails to limit the number of characters it can handle, which could lead to Memory Exhaustion. In `lib/parse.js,` if a malicious user sends "imbalanced braces" as input, the parsing will enter a loop, which will cause the program to start allocating heap memory without freeing it at any moment of the loop. Eventually, the JavaScript heap limit is reached, and the program will crash.
Mend Note: After conducting a further research, it was concluded that CVE-2024-4068 does not contain a high security risk that reflects the NVD score, but should be kept for users' awareness. Users of braces should follow the fix recommendation as noted.
CVE-2024-4068 - High Severity Vulnerability
Vulnerable Libraries - braces-3.0.2.tgz, braces-2.3.2.tgz
braces-3.0.2.tgz
Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.
Library home page: https://registry.npmjs.org/braces/-/braces-3.0.2.tgz
Path to dependency file: /package.json
Path to vulnerable library: /node_modules/jest-util/node_modules/braces/package.json,/node_modules/@cypress/code-coverage/node_modules/braces/package.json,/node_modules/copy-webpack-plugin/node_modules/braces/package.json,/node_modules/@typescript-eslint/typescript-estree/node_modules/braces/package.json,/node_modules/fork-ts-checker-webpack-plugin/node_modules/braces/package.json,/node_modules/@typescript-eslint/parser/node_modules/braces/package.json,/node_modules/jest-message-util/node_modules/braces/package.json,/node_modules/@babel/cli/node_modules/braces/package.json,/backend/node_modules/braces/package.json,/node_modules/@typescript-eslint/eslint-plugin/node_modules/braces/package.json,/node_modules/jest-config/node_modules/braces/package.json,/node_modules/@jest/transform/node_modules/braces/package.json,/node_modules/jest-haste-map/node_modules/braces/package.json,/node_modules/@jest/core/node_modules/braces/package.json,/node_modules/watchpack/node_modules/braces/package.json,/node_modules/size-limit/node_modules/braces/package.json
Dependency Hierarchy: - copy-webpack-plugin-6.3.2.tgz (Root Library) - fast-glob-3.2.4.tgz - micromatch-4.0.2.tgz - :x: **braces-3.0.2.tgz** (Vulnerable Library)
braces-2.3.2.tgz
Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.
Library home page: https://registry.npmjs.org/braces/-/braces-2.3.2.tgz
Path to dependency file: /backend/package.json
Path to vulnerable library: /backend/node_modules/sane/node_modules/braces/package.json,/node_modules/braces/package.json,/backend/node_modules/find-yarn-workspace-root/node_modules/braces/package.json
Dependency Hierarchy: - patch-package-6.2.2.tgz (Root Library) - find-yarn-workspace-root-1.2.1.tgz - micromatch-3.1.10.tgz - :x: **braces-2.3.2.tgz** (Vulnerable Library)
Found in HEAD commit: 50731d7b248d2728e4e5fda6648192e5a322f08c
Found in base branch: master
Vulnerability Details
The NPM package `braces`, versions prior to 3.0.3, fails to limit the number of characters it can handle, which could lead to Memory Exhaustion. In `lib/parse.js,` if a malicious user sends "imbalanced braces" as input, the parsing will enter a loop, which will cause the program to start allocating heap memory without freeing it at any moment of the loop. Eventually, the JavaScript heap limit is reached, and the program will crash. Mend Note: After conducting a further research, it was concluded that CVE-2024-4068 does not contain a high security risk that reflects the NVD score, but should be kept for users' awareness. Users of braces should follow the fix recommendation as noted.
Publish Date: 2024-05-13
URL: CVE-2024-4068
CVSS 3 Score Details (7.5)
Base Score Metrics: - Exploitability Metrics: - Attack Vector: Network - Attack Complexity: Low - Privileges Required: None - User Interaction: None - Scope: Unchanged - Impact Metrics: - Confidentiality Impact: None - Integrity Impact: None - Availability Impact: High
For more information on CVSS3 Scores, click here.Suggested Fix
Type: Upgrade version
Release Date: 2024-05-13
Fix Resolution: braces - 3.0.3