A vulnerability in pnpm prior to versions 10.34.2 and 11.5.3 allows manipulation of the project environment lockfile (pnpm-lock.yaml) to bypass package-manager resolution. This can cause pnpm to install and execute arbitrary bytes during automatic version switching. The issue is fixed in versions 10.34.2 and 11.5.3.
A vulnerability in pnpm prior to versions 10.34.2 and 11.5.3 allows malicious packages using reserved bin names such as "." or ".." to cause deletion of the PNPM_HOME directory during global package removal. This occurs because these reserved names bypass pnpm's bin-name guard, leading to unintended directory removal. The issue is fixed in versions 10.34.2 and 11.5.3.
A directory traversal vulnerability in pnpm versions 11.3.0 up to but not including 11.5.3 allows crafted package manifests to write files outside the intended download directory. This can lead to arbitrary file overwrites. The issue is fixed in version 11.5.3.
A vulnerability in the pnpm package manager prior to versions 10.34.4 and 11.7.0 allows crafted patch entries to resolve outside the intended patches directory. This flaw can cause the pnpm patch-remove command to delete arbitrary files accessible to the user. The issue is fixed in versions 10.34.4 and 11.7.0.
pnpm versions prior to 10.34.4 and 11.8.0 have a path traversal vulnerability in the configDependencies environment lockfile feature. This flaw allows a crafted pnpm-lock.yaml file to cause symlink creation outside the intended node_modules/.pnpm-config directory during installation, potentially leading to unauthorized symlink creation and integrity issues. The vulnerability is fixed in versions 10.34.4 and 11.8.0.
pnpm versions prior to 10.34.4 and 11.7.0 have a vulnerability where a crafted lockfile alias can cause directory traversal outside the hoisted node_modules directory or overwrite pnpm-owned layout directories. This allows manipulation of the package installation layout. The issue is fixed in versions 10.34.4 and 11.7.0.
A high-severity vulnerability in pnpm allows repository-controlled configDependencies to select and execute a native install engine called pacquet without proper trust validation. This can result in arbitrary native code execution during package installation. The issue stems from pnpm treating pacquet or @pnpm/pacquet declared in pnpm-workspace.yaml as an install-engine opt-in, which leads to resolving and spawning platform-specific pacquet binaries from repository-controlled dependencies. A patch is available that restricts this behavior to trusted allowlists outside the repository.
A Unicode normalization mismatch in setuptools' handling of MANIFEST.in exclusion rules can cause files intended to be excluded from source distributions to be included instead on macOS APFS/HFS+ filesystems. This occurs because the matching process compares byte sequences without Unicode normalization, causing NFC-encoded patterns to fail to match NFD-encoded filenames. As a result, sensitive files with non-ASCII names may be unintentionally published to PyPI. This issue affects setuptools versions prior to 7.5.3_1 and has been fixed in 7.5.3_1.
A path traversal vulnerability in the setuptools PackageIndex.download function allows an attacker to write files to arbitrary filesystem locations with the permissions of the running process. This flaw arises from insufficient sanitization of URL-derived filenames used in os.path.join, enabling path traversal despite some replacement of '..' sequences. The vulnerability affects pip-tools versions >=7.3.0_1 and <7.4.1_2 and was fixed in version 7.4.1_2. Exploitation could lead to arbitrary file write and potentially remote code execution depending on context. The vulnerability has a high severity score (CVSS 8.7) and no known exploits in the wild have been reported. The risk is somewhat reduced due to deprecation of easy_install and package_index components.
CVE-2024-6345 is a high-severity vulnerability in the package_index module of pypa/setuptools used by pip-tools. Versions up to 69.1.1 allow remote code execution via download functions that process package URLs. These functions can be exploited if they handle user-controlled inputs, enabling arbitrary command execution. The issue is fixed in setuptools version 70.0 and pip-tools version 7.4.1_1.
A Regular Expression Denial of Service (ReDoS) vulnerability exists in soupsieve's CSS selector parser due to a regex pattern that suffers catastrophic backtracking when processing attribute selectors with unterminated quoted values. This flaw allows an attacker to cause significant CPU consumption and thread blocking with a small payload of about 300 bytes. The issue affects soupsieve versions from 3.4.2 up to but not including 3.9.2_1 and has been assigned CVE-2026-49477. A fix is available in version 3.9.2_1.
A memory exhaustion vulnerability exists in soupsieve's CSS selector parser used by Beautiful Soup 4. The parser allocates unbounded memory when compiling large comma-separated selector lists, allowing an attacker to cause denial of service by supplying a crafted CSS selector string. A 500 KB input can cause approximately 244 MB of heap memory allocation, leading to potential out-of-memory conditions or process termination.
### Impact
An attacker who uses this vulnerability can craft a PDF which leads to large memory usage. This requires loading images where the declared size values are much too large compared to the actual data.
### Patches
This has been fixed in [pypdf==6.14.0](https://github.com/py-pdf/pypdf/releases/tag/6.14.0).
### Workarounds
If you cannot upgrade yet, consider applying the changes from PR [#3888](https://github.com/py-pdf/pypdf/pull/3888).
### Impact
An attacker who uses this vulnerability can craft a PDF which leads to long runtimes. This requires cross-reference streams with repeated malformed cross-reference streams.
### Patches
This has been fixed in [pypdf==6.14.0](https://github.com/py-pdf/pypdf/releases/tag/6.14.0).
### Workarounds
If you cannot upgrade yet, consider applying the changes from PR [#3887](https://github.com/py-pdf/pypdf/pull/3887).
### Impact
An attacker who uses this vulnerability can craft a PDF which leads to an infinite loop. This requires parsing the content stream of a page with a not terminated inline image, as done when extracting the page text for example.
### Patches
This has been fixed in [pypdf==6.14.1](https://github.com/py-pdf/pypdf/releases/tag/6.14.1).
### Workarounds
If you cannot upgrade yet, consider applying the changes from PR [#3891](https://github.com/py-pdf/pypdf/pull/3891).
### Impact
An attacker who uses this vulnerability can craft a PDF which leads to an infinite loop. This requires parsing the content stream of a page with a not terminated inline image, as done when extracting the page text for example. It only affects the ASCII85 and ASCIIHex filters.
### Patches
This has been fixed in [pypdf==6.14.2](https://github.com/py-pdf/pypdf/releases/tag/6.14.2).
### Workarounds
If you cannot upgrade yet, consider applying the changes from PR [#3892](https://github.com/py-pdf/pypdf/pull/3892).
### Impact
An attacker who uses this vulnerability can craft a PDF which leads to large memory usage, as `MAX_DECLARED_STREAM_LENGTH` is sometimes ignored. This requires parsing a content stream without a `/Length` value.
### Patches
This has been fixed in [pypdf==6.13.3](https://github.com/py-pdf/pypdf/releases/tag/6.13.3).
### Workarounds
If you cannot upgrade yet, consider applying the changes from PR [#3871](https://github.com/py-pdf/pypdf/pull/3871).
### Impact
An attacker who uses this vulnerability can craft a PDF which leads to long runtimes. This requires accessing a stream which uses the `/FlateDecode` filter with a PNG predictor.
### Patches
This has been fixed in [pypdf==6.12.2](https://github.com/py-pdf/pypdf/releases/tag/6.12.2).
### Workarounds
If you cannot upgrade yet, consider applying the changes from PR [#3806](https://github.com/py-pdf/pypdf/pull/3806).
### Impact
An attacker who uses this vulnerability can craft a PDF which leads to large memory usage. This requires parsing large XMP metadata, possibly with lots of unnecessary elements.
### Patches
This has been fixed in [pypdf==6.12.1](https://github.com/py-pdf/pypdf/releases/tag/6.12.1).
### Workarounds
If you cannot upgrade yet, consider applying the changes from PR [#3796](https://github.com/py-pdf/pypdf/pull/3796).
### Impact
An attacker who uses this vulnerability can craft a PDF which leads to the RAM being exhausted. This requires accessing an image using `/FlateDecode` with large size values.
### Patches
This has been fixed in [pypdf==6.10.2](https://github.com/py-pdf/pypdf/releases/tag/6.10.2).
### Workarounds
If you cannot upgrade yet, consider applying the changes from PR [#3734](https://github.com/py-pdf/pypdf/pull/3734).