CVE-2022-25883 – nodejs-semver: Regular expression denial of service
https://notcve.org/view.php?id=CVE-2022-25883
Versions of the package semver before 7.5.2 are vulnerable to Regular Expression Denial of Service (ReDoS) via the function new Range, when untrusted user data is provided as a range. A Regular Expression Denial of Service (ReDoS) vulnerability was discovered in node-semver package via the 'new Range' function. This issue could allow an attacker to pass untrusted malicious regex user data as a range, causing the service to excessively consume CPU depending upon the input size, resulting in a denial of service. • https://github.com/npm/node-semver/blob/main/classes/range.js%23L97-L104 https://github.com/npm/node-semver/blob/main/internal/re.js%23L138 https://github.com/npm/node-semver/blob/main/internal/re.js%23L160 https://github.com/npm/node-semver/commit/717534ee353682f3bcf33e60a8af4292626d4441 https://github.com/npm/node-semver/pull/564 https://security.snyk.io/vuln/SNYK-JS-SEMVER-3247795 https://access.redhat.com/security/cve/CVE-2022-25883 https://bugzilla.redhat.com/show_bug.cg • CWE-1333: Inefficient Regular Expression Complexity •
CVE-2022-29244 – npm packing does not respect root-level ignore files in workspaces
https://notcve.org/view.php?id=CVE-2022-29244
npm pack ignores root-level .gitignore and .npmignore file exclusion directives when run in a workspace or with a workspace flag (ie. `--workspaces`, `--workspace=<name>`). Anyone who has run `npm pack` or `npm publish` inside a workspace, as of v7.9.0 and v7.13.0 respectively, may be affected and have published files into the npm registry they did not intend to include. Users should upgrade to the latest, patched version of npm v8.11.0, run: npm i -g npm@latest . Node.js versions v16.15.1, v17.19.1, and v18.3.0 include the patched v8.11.0 version of npm. npm pack ignora las directivas de exclusión de archivos .gitignore y .npmignore a nivel de root cuando es ejecutado en un espacio de trabajo o con un flag de espacio de trabajo (es decir, "--workspaces", "--workspace=(name)"). • https://github.com/nodejs/node/pull/43210 https://github.com/nodejs/node/releases/tag/v16.15.1 https://github.com/nodejs/node/releases/tag/v17.9.1 https://github.com/nodejs/node/releases/tag/v18.3.0 https://github.com/npm/cli/releases/tag/v8.11.0 https://github.com/npm/cli/security/advisories/GHSA-hj9c-8jmm-8c52 https://github.com/npm/cli/tree/latest/workspaces/libnpmpack https://github.com/npm/cli/tree/latest/workspaces/libnpmpublish https://github.com • CWE-200: Exposure of Sensitive Information to an Unauthorized Actor CWE-212: Improper Removal of Sensitive Information Before Storage or Transfer •
CVE-2021-43616 – npm: npm ci succeeds when package-lock.json doesn't match package.json
https://notcve.org/view.php?id=CVE-2021-43616
The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if dependency information in package-lock.json differs from package.json. This behavior is inconsistent with the documentation, and makes it easier for attackers to install malware that was supposed to have been blocked by an exact version match requirement in package-lock.json. NOTE: The npm team believes this is not a vulnerability. It would require someone to socially engineer package.json which has different dependencies than package-lock.json. That user would have to have file system or write access to change dependencies. • https://github.com/icatalina/CVE-2021-43616 https://docs.npmjs.com/cli/v7/commands/npm-ci https://docs.npmjs.com/cli/v8/commands/npm-ci https://github.com/npm/cli/commit/457e0ae61bbc55846f5af44afa4066921923490f https://github.com/npm/cli/issues/2701 https://github.com/npm/cli/issues/2701#issuecomment-972900511 https://github.com/npm/cli/issues/2701#issuecomment-979054224 https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/NXNVFKOF5ZYH5NIRWHKN6O6UBCHDV6FE https • CWE-345: Insufficient Verification of Data Authenticity •
CVE-2021-39135 – UNIX Symbolic Link (Symlink) Following in @npmcli/arborist
https://notcve.org/view.php?id=CVE-2021-39135
`@npmcli/arborist`, the library that calculates dependency trees and manages the node_modules folder hierarchy for the npm command line interface, aims to guarantee that package dependency contracts will be met, and the extraction of package contents will always be performed into the expected folder. This is accomplished by extracting package contents into a project's `node_modules` folder. If the `node_modules` folder of the root project or any of its dependencies is somehow replaced with a symbolic link, it could allow Arborist to write package dependencies to any arbitrary location on the file system. Note that symbolic links contained within package artifact contents are filtered out, so another means of creating a `node_modules` symbolic link would have to be employed. 1. A `preinstall` script could replace `node_modules` with a symlink. • https://cert-portal.siemens.com/productcert/pdf/ssa-389290.pdf https://github.com/npm/arborist/security/advisories/GHSA-gmw6-94gg-2rc2 https://www.npmjs.com/package/%40npmcli/arborist https://www.oracle.com/security-alerts/cpuoct2021.html • CWE-59: Improper Link Resolution Before File Access ('Link Following') CWE-61: UNIX Symbolic Link (Symlink) Following •
CVE-2021-39134 – UNIX Symbolic Link (Symlink) Following in @npmcli/arborist
https://notcve.org/view.php?id=CVE-2021-39134
`@npmcli/arborist`, the library that calculates dependency trees and manages the `node_modules` folder hierarchy for the npm command line interface, aims to guarantee that package dependency contracts will be met, and the extraction of package contents will always be performed into the expected folder. This is, in part, accomplished by resolving dependency specifiers defined in `package.json` manifests for dependencies with a specific name, and nesting folders to resolve conflicting dependencies. When multiple dependencies differ only in the case of their name, Arborist's internal data structure saw them as separate items that could coexist within the same level in the `node_modules` hierarchy. However, on case-insensitive file systems (such as macOS and Windows), this is not the case. Combined with a symlink dependency such as `file:/some/path`, this allowed an attacker to create a situation in which arbitrary contents could be written to any location on the filesystem. • https://cert-portal.siemens.com/productcert/pdf/ssa-389290.pdf https://github.com/npm/arborist/security/advisories/GHSA-2h3h-q99f-3fhc https://www.npmjs.com/package/%40npmcli/arborist https://www.oracle.com/security-alerts/cpuoct2021.html • CWE-61: UNIX Symbolic Link (Symlink) Following CWE-178: Improper Handling of Case Sensitivity •