Skip to content

ci: audit runtime deps only, bump idna to 3.15#26

Merged
KhaledSalhab-Develeap merged 1 commit into
mainfrom
ci/runtime-only-audit-and-idna-bump
May 21, 2026
Merged

ci: audit runtime deps only, bump idna to 3.15#26
KhaledSalhab-Develeap merged 1 commit into
mainfrom
ci/runtime-only-audit-and-idna-bump

Conversation

@KhaledSalhab-Develeap
Copy link
Copy Markdown
Collaborator

Summary

The Audit dependencies step in ci.yml was running uv run pip-audit against the full venv, which flagged:

  • idna 3.11 (CVE-2026-45409, fix 3.15) — real, in our runtime closure (pulled via httpx/anyio).
  • pip 26.0.1 (CVE-2026-3219, CVE-2026-6357, fix 26.1) — installer, not shipped to users.
  • urllib3 2.6.3 (PYSEC-2026-141, PYSEC-2026-142, fix 2.7.0) — pip-audit's own transitive dep via requests, not in our runtime closure.

continue-on-error: true was hiding the noise rather than fixing it.

This PR:

  1. Mirrors the runtime-only audit pattern from publish.yml (ci: audit runtime deps only in publish workflow #24): export the runtime closure with uv export --no-dev --no-emit-project --no-hashes and run pip-audit -r against that file. Drops the CI-tooling noise (pip, urllib3).
  2. Bumps idna in uv.lock from 3.11 to 3.15 to clear the only real runtime vulnerability.
  3. Removes continue-on-error: true from the audit step. With noise gone and the real CVE patched, this becomes a hard gate consistent with publish.

Test plan

  • uv export --no-dev --no-emit-project --no-hashes -o /tmp/runtime-requirements.txt && uv run pip-audit -r /tmp/runtime-requirements.txt locally returns No known vulnerabilities found.
  • uv run pytest -q passes 482 tests, coverage 95.76%.
  • CI on this PR shows green on the new Audit runtime dependencies step across 3.11/3.12/3.13.

CI's `Audit dependencies` step was running `uv run pip-audit` against the
full venv. It found vulnerabilities in pip itself (CVE-2026-3219,
CVE-2026-6357) and in pip-audit's own transitive deps (urllib3 PYSEC-2026-141
and -142). Neither of those reaches the wheels users install. With
`continue-on-error: true` it didn't block the workflow, but the red output
was misleading.

Mirror the runtime-only audit pattern publish.yml has used since #24:
export the runtime closure with `uv export --no-dev --no-emit-project` and
run pip-audit against that file. This drops the CI-tooling noise.

The runtime closure still had one real vulnerability: `idna 3.11`
(CVE-2026-45409, fix in 3.15), pulled transitively through `httpx`/`anyio`.
Bump it in uv.lock to 3.15. Locally `pip-audit -r runtime-requirements.txt`
now reports "No known vulnerabilities found".

With the noise gone, drop `continue-on-error: true` so audit becomes a hard
gate consistent with publish.yml.
@KhaledSalhab-Develeap KhaledSalhab-Develeap merged commit e3ac359 into main May 21, 2026
3 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.

1 participant