Wave 6a.0: dep-sweep — close 33 CVE alerts + absorb 6 Dependabot PRs#104
Merged
Conversation
Bumps 14 packages in uv.lock to close 33 GitHub Security advisories. Auth middleware regression set (23 passed, 3 skipped) intact; full pytest suite (1981 passed, 6 skipped) preserved across both tiers. Tier 1 — 6 high-severity bumps: urllib3 2.6.3 -> 2.7.0 (CVE-2026-44431, -44432) python-multipart 0.0.22 -> 0.0.29 (CVE-2026-42561, -40347) GitPython 3.1.46 -> 3.1.50 (CVE-2026-42284, -42215, -44243, -44244, GHSA-only #57) PyJWT 2.11.0 -> 2.13.0 (CVE-2026-32597) pillow 12.1.1 -> 12.2.0 (CVE-2026-40192, -42311, -42308, -42309, -42310) diffusers 0.36.0 -> 0.37.1 (PARTIAL — 0.38.0 blocked by safetensors pre-release) Tier 2 — 8 medium/low-severity bumps: aiohttp 3.13.3 -> 3.13.5 (10 CVEs) cryptography 46.0.5 -> 48.0.0 (CVE-2026-34073, -39892) Pygments 2.19.2 -> 2.20.0 (CVE-2026-4539) idna 3.11 -> 3.16 (CVE-2026-45409) pip 26.0.1 -> 26.1.1 (CVE-2026-3219, -6357) pytest 9.0.2 -> 9.0.3 (CVE-2025-71176) python-dotenv 1.2.1 -> 1.2.2 (CVE-2026-28684) requests 2.32.5 -> 2.34.2 (CVE-2026-25645) Deferred to v1.4 (upstream blockers): diffusers 0.37.1 -> 0.38.0 (safetensors>=0.8.0rc0 pre-release; transitive only, not imported) transformers 4.57.6 -> 5.0.0rc3 (pre-release; major-bump compat work out of scope) Dismissed (no upstream patch): diskcache 5.6.3 (CVE-2025-69872 has no first_patched_version; transitive via llama-cpp-python) Dependabot PR triage: Closes-as-absorbed: #97 idna, #98 pip, #99 urllib3, #100 diffusers, #101 python-multipart, #102 gitpython Verify chain: ruff check . PASS python -m mypy backpropagate/ PASS (40 files) python -m pytest tests/test_auth_middleware.py -q 23 passed, 3 skipped (INTACT) python -m pytest -q 1981 passed, 6 skipped (BASELINE PRESERVED) python scripts/check_doc_drift.py PASS (0 items) Per v1.3 dep-sweep brief; uv-only scope (npm site/* and docker python bumps remain for Wave 6a per-domain agents). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 24, 2026
9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Foundation-layer mini-wave that bumps 14 packages in
uv.lockto close 33 GitHub Security advisories before Wave 6a's per-domain agents dispatch. Ships sequentially (not in parallel with Wave 6a) so the auth-polish agents have a stable dep target —httpx/ middleware-adjacent version drift is the canonical risk the wave was carved out to prevent.Per-CVE table
Tier 1 — High-severity (6 packages, 14 CVEs closed)
safetensors>=0.8.0rc0(pre-release); see deferred listPyJWT note: CVE-2026-32597 affects the
[security]extra'sJWTManagerhelper inui_security.py. That helper is a separate optional layer never reached by the v1.2.0 auth middleware that closed GHSA-f65r-h4g3-3h9h (ui_app/auth.pyuses stdlibhmac, notjwt). The bump still ships because operators who importJWTManagerdirectly are on the user-facing path.Tier 2 — Medium / Low (8 packages, 19 CVEs closed)
Deferred to v1.4 (upstream blockers — 3 CVEs)
safetensors>=0.8.0rc0(pre-release). Mitigation: transitive viaunsloth, not imported bybackpropagate/**/*.py— no reachable codepath into vulnerable image-decode functions. Will close when safetensors 0.8.0 GA lands orunslothloosens its safetensors floor. Affects CVE-2026-44513, CVE-2026-45804.transformersIS a direct dependency, so the codepath argument does not apply — held only on the major-version compat work that 5.0 would require acrosstrainer.py+datasets.py. Affects CVE-2026-1839.Dismissed (1 CVE — no upstream patch)
first_patched_version; no newer release exists on PyPI. Transitive viallama-cpp-python(only pulled in by[export]extra) and not imported bybackpropagate/**/*.py. Will close automatically when upstream ships a fix.Dependabot PR triage
All 6 open
dependabot/uv/*PRs are Option A — absorb. Sweep'suv lock --upgrade-packagecovers each one against a single, freshly-resolved baseline; merging them individually would have produced 6 round-trips of lockfile churn. Each will be closed-with-comment naming this PR after it merges.Out-of-scope Dependabot PRs (left for Wave 6a per-domain agents): #96 (actions group), #75 (docker python), #76-78 (site/* npm).
Verify chain
Notes for the coordinator
uv.lock+CHANGELOG.mdtouched.git ls-files --eolshows index keepslffor both files; working-copy CRLF is the expected Windows checkout behaviour.gh api.Test plan
uv lock --upgrade-package <pkg>🤖 Generated with Claude Code