CVE-2026-113714: CWE-354: Improper Validation of Integrity Check Value in pypa virtualenv
Description
virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.9, download_wheel() writes package-index downloads directly into the reusable wheel/house cache before selecting a verification target from pip's textual Saved output. With default-index digest comparison enabled, a controlled package index can inject a misleading Saved line through a discarded link's data-requires-python attribute; this forged-line variant also requires knowledge of an absolute path to the genuine bundled wheel. The wrong path can then be hashed, while a digest mismatch leaves the rejected archive in the cache for later selection without verification. A separate rejected-cache-file variant requires control over downloaded data or archive selection but not the forged-line prerequisites. Explicit custom-index exceptions are outside the promised PyPI comparison, and the issue does not independently bypass TLS or establish control of default PyPI. This issue is fixed in version 21.14.9.
CVSS v4.0
Score 2.3low
Affected software
pypa
virtualenv
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in virtualenv 21.14.8 arises from the download_wheel() function writing package-index downloads directly into the reusable wheel/house cache before selecting a verification target. With default-index digest comparison enabled, an attacker controlling a package index can inject a forged Saved line via the data-requires-python attribute, requiring knowledge of an absolute path to the genuine bundled wheel. This can cause the wrong path to be hashed, leaving a digest mismatch that results in a rejected archive remaining in the cache and potentially selected later without verification. A separate variant involves rejected-cache-file manipulation requiring control over downloaded data or archive selection but not the forged-line prerequisites. Explicit custom-index exceptions are not affected, and the issue does not bypass TLS or control default PyPI. The vulnerability is fixed in version 21.14.9.
Potential Impact
An attacker controlling a package index could cause virtualenv to accept a cached archive without proper verification, potentially leading to the use of unverified or tampered packages. However, exploitation requires specific conditions including knowledge of absolute paths and control over package index data. The vulnerability does not bypass TLS or compromise the default PyPI repository. The CVSS 4.0 score is 2.3, indicating low severity.
Mitigation Recommendations
Upgrade virtualenv to version 21.14.9 or later, where this issue is fixed. No other mitigations are indicated or necessary according to the available data.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-10-20T16:03:14.862Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6ad7bede2cdf04f656550f56
Added to database: 10/20/2026, 19:19:58 UTC
Last enriched: 10/20/2026, 19:33:16 UTC
Last updated: 10/20/2026, 19:49:14 UTC
Views: 9
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.