Skip to content

fix: address Dependabot CVEs — starlette 1.3.1, pyjwt 2.13.0, fastapi 0.137.1#81

Merged
Otoru merged 1 commit into
mainfrom
fix/dependabot-starlette-pyjwt
Jun 17, 2026
Merged

fix: address Dependabot CVEs — starlette 1.3.1, pyjwt 2.13.0, fastapi 0.137.1#81
Otoru merged 1 commit into
mainfrom
fix/dependabot-starlette-pyjwt

Conversation

@Otoru

@Otoru Otoru commented Jun 17, 2026

Copy link
Copy Markdown
Owner

Summary

Addresses 13 open Dependabot security alerts by bumping three dependencies.

Changes

Package Before After Constraint change
starlette (examples) 0.49.3 1.3.1 >=0.49.1,<0.50.0>=1.3.1
fastapi (main) 0.128.0 0.137.1 ^0.128.0>=0.128.0
pyjwt (main, new explicit dep) 2.12.1 2.13.0 added >=2.13.0

FastAPI's ^0.128.0 was silently capping at <0.129.0 in Poetry, blocking the starlette upgrade. FastAPI 0.137.1 removed the starlette upper bound, enabling 1.x.
PyJWT is a transitive dep of redis; adding it explicitly as a direct dep floors the minimum to the patched version.

Alerts resolved

Starlette (7 alerts):

PyJWT (6 alerts):

The remaining ~10 alerts (urllib3, black, idna, pytest, requests, etc.) are already at their patched versions in the lock file and should auto-dismiss once Dependabot re-evaluates.

Notes

Starlette 1.x emits a StarletteDeprecationWarning when httpx is used with starlette.testclient — Starlette now prefers httpx2. This is non-breaking and all 242 tests pass; migrating to httpx2 can be done in a follow-up.

Test plan

  • poetry run black --check genesis/ tests/ examples/ — clean
  • poetry run mypy — clean
  • poetry run pytest tests/ — 242 passed, 0 failed

- fastapi: ^0.128.0 → >=0.128.0, resolves to 0.137.1 (removes starlette upper bound)
- starlette (examples): >=0.49.1,<0.50.0 → >=1.3.1, resolves to 1.3.1
- pyjwt: add explicit >=2.13.0 floor (transitive dep from redis), resolves to 2.13.0

Starlette CVEs addressed: DoS via form/multipart/Range, SSRF via UNC paths,
host header bypass, path poisoning, getattr dispatch (#7, #8, #19, #25, #26, #27, #28)

PyJWT CVEs addressed: token forgery, crit header bypass, SSRF via file:// schemes,
DoS via Base64URL decoding, algorithm allow-list bypass, unbounded JWKS requests
(#10, #20, #21, #22, #23, #24)

All 242 tests pass. black and mypy clean.
@Otoru Otoru merged commit 12fbd79 into main Jun 17, 2026
11 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