Security audit: pyjwt CVE-2026-102274 (upgrade) and oauthlib CVE-2026-49265 (server-side PKCE, not reachable; allauth pins oauthlib<4) #323
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo#323
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The Security audit job failed on
d9013ff7f(run 600). Nothing in that push caused it: two advisories were published against locked dependencies.pyjwtoauthlibpyjwt
A plain upgrade.
pyjwtcomes in throughdjango-allauth[socialaccount], which accepts<3, anduv locktakes 2.15.1. allauth itself moves from 65.19.2 to 65.19.5 in the same step.oauthlib: not reachable in Postulo, and not upgradable yet
code_challenge_method_plainandcode_challenge_method_s256inoauthlib/oauth2/rfc6749/grant_types/authorization_code.pycompare with==, at the token endpoint of an OAuth2 provider.allauth.socialaccountwith the OpenID Connect provider, which is the client side: signing in with somebody else's identity service. It does not installallauth.idp, and nothing insrc/importsoauthlib.oauthlib<4,>=3.3.0for thesocialaccountextra, souv lockcannot take 4.0.0. Forcing it with an override would run allauth against a major version it has not been tested with, on the sign-in path.What to do
pyjwtanddjango-allauth.pip-auditignore CVE-2026-49265 by name, with the reason written beside the flag inci.yml.oauthlib4 or later, so the exception is removed the moment it stops being needed and cannot outlive its reason.