Skip to content

Release 82.0.1.post1: fix CVE-2026-59890 (Python 3.9 line) - #5

Merged
icanhasmath merged 2 commits into
82.0.1.xfrom
82.0.1-security
Sep 29, 2026
Merged

icanhasmath merged 2 commits into
82.0.1.xfrom
82.0.1-security

Conversation

@icanhasmath

Copy link
Copy Markdown
Collaborator

Summary

ActiveState security release 82.0.1.post1: the last Python 3.9-compatible setuptools line, with the upstream CVE fix backported.

  • Why 82.0.1: upstream 83.0.0 and 84.0.0 require Python >= 3.10 (pypa/setuptools 07389c4 dropped 3.9), so 82.0.1 is the last release that supports 3.9.
  • CVE-2026-59890 / GHSA-h35f-9h28-mq5c (medium): an exclude, global-exclude, recursive-exclude or prune rule in MANIFEST.in could fail to drop a non-ASCII-named file whose name is NFD on disk while the pattern is NFC, so the file was published in the sdist. Upstream fix pypa/setuptools@dd9f436a3 (released in v83.0.0) was cherry-picked unchanged.
  • This is the only advisory affecting 82.0.1. The vendored packages (wheel 0.46.3, packaging 26.0, jaraco.context 6.1.0, etc.) have no open OSV advisories.

Commits

  1. Fix CVE-2026-59890: Normalize Unicode form when matching MANIFEST.in patterns (upstream authorship kept, cherry picked from line kept)
  2. Release 82.0.1.post1: version bump in pyproject.toml and .bumpversion.cfg, plus a NEWS.rst entry

Testing (Python 3.9.25)

  • test_manifest.py, test_egg_info.py, test_sdist.py: 176 passed, 2 skipped, 1 xfailed
  • The two new regression tests fail on pristine v82.0.1 and pass with the fix
  • The sdist and wheel build and install as 82.0.1.post1 with Requires-Python: >=3.9
  • The full test suite was not run

🤖 Generated with Claude Code

jaraco and others added 2 commits September 28, 2026 18:31
…patterns

FileList matched MANIFEST.in patterns against on-disk names byte-for-byte
with no Unicode normalization. On macOS APFS/HFS+, a file stored NFD and a
pattern authored NFC denote the same file but differ byte-for-byte, so an
exclude/global-exclude/recursive-exclude/prune rule could silently fail to
drop a non-ASCII-named file, publishing it in the sdist despite the rule.

Normalize both the pattern and the candidate path to NFC before matching,
via a new unicode_utils.normalize() helper and a _NormalizedMatcher wrapper
around the compiled pattern in translate_pattern.

Fixes GHSA-h35f-9h28-mq5c.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
(cherry picked from commit dd9f436)

Backported unchanged from v83.0.0 onto v82.0.1; the fix uses no
Python 3.10+ features, so 82.0.1.x keeps supporting Python 3.9.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bump version to 82.0.1.post1 (PEP 440 post-release) and record the
backported GHSA-h35f-9h28-mq5c fix in NEWS.rst. Python 3.9 support is
unchanged (requires-python >= 3.9).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@icanhasmath
icanhasmath merged commit 838d0d2 into 82.0.1.x Sep 29, 2026
12 of 43 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants