Skip to content

fix(security): bump 12 vulnerable dependencies (41 Dependabot alerts) - #188

Merged
t-timms merged 2 commits into
mainfrom
fix/security-dep-bumps
Jul 18, 2026
Merged

fix(security): bump 12 vulnerable dependencies (41 Dependabot alerts)#188
t-timms merged 2 commits into
mainfrom
fix/security-dep-bumps

Conversation

@t-timms

@t-timms t-timms commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Summary

Resolves all patchable open Dependabot alerts (41 open: 2 critical, 12 high, 15 moderate, 12 low).

Package From To Highest severity
litellm 1.83.14 1.91.3 CriticalCVE-2026-49468 auth bypass via Host header injection
starlette 1.0.0 1.3.1 High
mcp 1.27.0 1.28.1 High
cryptography 46.0.7 49.0.0 High
python-multipart 0.0.27 0.0.32 High
soupsieve 2.8.3 2.8.4 High
msgpack 1.1.2 1.2.1 High
aiohttp 3.13.4 3.14.1 Medium
pyjwt 2.12.1 2.13.0 Medium
idna 3.11 3.18 Medium
pydantic-settings 2.14.0 2.14.2 Medium
pip 26.1.1 26.1.2 Medium

Constraint changes in pyproject.toml

  • litellm>=1.84.0,<1.92 — 1.92.0 introduces a Rust extension with no Windows wheel (maturin source build fails); 1.91.3 is the last pure-Python release. Old stale comment about litellm capping aiohttp <=3.13.4 removed (no longer true).
  • python-multipart un-pinned from ==0.0.27 to >=0.0.31,<0.1 (DoS CVEs in boundary parsing).
  • mcp / pydantic-settings floors raised to patched versions.

chromadb (critical, not fixed here)

CVE-2026-45829 (pre-auth code injection) has no patched release — all versions <=1.5.9 affected. Dismissed as tolerable risk with justification on the alert: godspeed uses chromadb embedded-only (local PersistentClient behind the optional [index] extra); the vulnerable server API surface is never run or exposed. Revisit when upstream ships a fix.

Test plan

  • uv run pytest -m "not real_llm" -q4739 passed, 9 skipped, 3 deselected
  • One pre-existing failure, unrelated: test_returns_empty_when_none_found is not hermetic — _load_agents_md walks ancestor dirs from tmp_path and finds the user-level ~/CLAUDE.md on this machine. Passes in CI. Follow-up candidate: isolate the walk root in the test.

t-timms added 2 commits July 17, 2026 19:58
Resolves all patchable open Dependabot alerts on main:

- litellm 1.83.14 -> 1.91.3 (CVE-2026-49468 critical: auth bypass via
  Host header injection; capped <1.92 — 1.92.0 adds a Rust extension
  with no Windows wheel)
- starlette 1.0.0 -> 1.3.1, mcp 1.27.0 -> 1.28.1, aiohttp 3.13.4 ->
  3.14.1, cryptography 46.0.7 -> 49.0.0, pyjwt 2.12.1 -> 2.13.0,
  python-multipart 0.0.27 -> 0.0.32, soupsieve 2.8.3 -> 2.8.4,
  msgpack 1.1.2 -> 1.2.1, idna 3.11 -> 3.18, pydantic-settings
  2.14.0 -> 2.14.2, pip 26.1.1 -> 26.1.2
- chromadb CVE-2026-45829 (critical, no patched version exists)
  dismissed as tolerable risk: embedded-only usage via optional
  [index] extra; the server API attack surface is never exposed.

Test suite: 4739 passed. One pre-existing failure in
test_returns_empty_when_none_found (test is not hermetic — it walks
ancestor dirs from tmp_path and finds a user-level CLAUDE.md;
unrelated to this change).
- click 8.1.8 -> 8.4.2 (PYSEC-2026-2132, fix 8.3.3)
- lxml-html-clean 0.4.4 -> 0.4.5 via transitive pin-up
  (PYSEC-2026-2614); lxml 6.1.0 -> 6.1.1
- CI: ignore PYSEC-2026-311 (chromadb pre-auth code injection) with
  documented rationale — no patched release exists; embedded-only
  usage behind optional [index] extra, server API never exposed

Local pip-audit with CI's exact flags: clean (1 ignored).
Test suite: 4739 passed (same known non-hermetic failure only).
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