Skip to content

Commit 15063c1

Browse files
committed
release 21.2.4
1 parent 754602d commit 15063c1

6 files changed

Lines changed: 24 additions & 13 deletions

File tree

docs/changelog.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,30 @@
66

77
.. towncrier release notes start
88
9+
**********************
10+
v21.2.4 (2026-04-14)
11+
**********************
12+
13+
Bugfixes - 21.2.4
14+
=================
15+
16+
- Security hardening: validate each entry of a seed wheel archive before extracting it so a tampered wheel cannot escape
17+
the app-data image directory via an absolute path or ``..`` traversal. (:issue:`3118`)
18+
- Security hardening: verify the SHA-256 of every bundled seed wheel when it is loaded so a corrupted or tampered file
19+
on disk fails loud instead of being handed to pip. The hash table is generated alongside ``BUNDLE_SUPPORT`` by
20+
``tasks/upgrade_wheels.py``. (:issue:`3119`)
21+
- Security hardening: validate the distribution name and version specifier passed to ``pip download`` when acquiring a
22+
seed wheel so extras, pip flags, or shell metacharacters cannot be smuggled into the subprocess command line.
23+
(:issue:`3120`)
24+
- Security hardening: replace the string-prefix containment check in ``virtualenv.util.zipapp`` with
25+
``Path.relative_to`` so the zipapp extraction helpers refuse any path that does not resolve under the archive root.
26+
(:issue:`3121`)
27+
- Security hardening: do not silently fall back to an unverified HTTPS context when the periodic update request to PyPI
28+
fails TLS verification. The returned metadata drives which wheel version virtualenv considers "up to date", so
29+
accepting an unverified response lets a network-level attacker suppress security updates. Set
30+
``VIRTUALENV_PERIODIC_UPDATE_INSECURE=1`` to restore the previous behavior on hosts with broken trust stores.
31+
(:issue:`3122`)
32+
933
**********************
1034
v21.2.3 (2026-04-14)
1135
**********************

docs/changelog/3118.bugfix.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/changelog/3119.bugfix.rst

Lines changed: 0 additions & 3 deletions
This file was deleted.

docs/changelog/3120.bugfix.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/changelog/3121.bugfix.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/changelog/3122.bugfix.rst

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)