Skip to content

CI: ignore CVE-2026-3219 (pip 26.0.1 archive-handling) until pip 26.1 ships #527

@aallan

Description

@aallan

Summary

The dependency-audit CI job flags CVE-2026-3219 in pip 26.0.1 (published 2026-04-20). Until pip 26.1 ships with the fix, we ignore this CVE in the pip-audit invocation. This issue tracks the ignore so it gets removed once the upstream fix lands on PyPI.

CVE details

  • CVE: CVE-2026-3219
  • GitHub Advisory: GHSA-58qw-9mgm-455v
  • Affected: pip ≤ 26.0.1
  • Nature: pip handles concatenated tar+ZIP files as ZIP regardless of filename or archive format. An archive that is both a valid tar and a valid ZIP could cause pip to install files inconsistent with what the filename implies.
  • Threat model: requires installing from an untrusted, ambiguously-formatted archive. Does not apply to our CI, which installs from PyPI over TLS.

Upstream fix

New behaviour: pip only proceeds with installation if the archive identifies uniquely as a ZIP or a tar, not as both.

Why ignore rather than upgrade

As of filing, no pip release contains the fix. pip 26.0.2 does not exist; pip 26.1 is the next release that will contain the fix per the upstream milestone. There is nothing to upgrade to.

Switching dependency-audit from pip to uv would not help — pip-audit transitively depends on pip-api, which pulls pip into the environment regardless of installer. pip-audit then scans its own environment and reports the CVE on pip itself.

Action items

  • Add --ignore-vuln CVE-2026-3219 to .github/workflows/ci.yml dependency-audit step with a dated comment linking this issue, the CVE, and the upstream fix PR.
  • Add a KNOWN_ISSUES.md row.
  • Remove the ignore once pip 26.1 is on PyPI and the base GitHub Actions runners pick it up. Expected timeline: days to weeks after 2026-04-24.

Related precedent

We already ignore CVE-2026-4539 in pygments 2.19.2 by the same pattern (see .github/workflows/ci.yml). That ignore is still in force because pygments hasn't shipped a fix. This new ignore follows the same convention but has a clearer path to removal: pip 26.1 exists, it just hasn't been released.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciCI/CD and GitHub Actions

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions