Executive brief
django-allauth is a popular authentication and registration package for the Django web framework. A security issue was identified where the software failed to revoke access for users who were marked as inactive. This means that if an administrator disables a user's account, any existing login tokens held by that user would remain valid, potentially allowing unauthorized access to the system until those tokens naturally expire.
Technical details
A vulnerability classified as Insufficient Session Expiration (CWE-613) exists in django-allauth's Identity Provider (IdP) implementation. The root cause is a missing check for the 'is_active' status of a user during token validation in the OIDC/OAuth2 request validator. An attacker with a previously issued, valid access or refresh token can continue to authenticate and access protected resources even after their account has been disabled by an administrator. The issue is resolved in version 65.13.0 by adding explicit checks for 'user.is_active' in the 'validate_bearer_token' and 'validate_refresh_token' methods.
Affected products
- pennersr django-allauth < 65.13.0
Timeline
- 2025-10-31: patched: Version 65.13.0 released
- 2025-12-15: disclosed: CVE-2025-65430 published
- 2025-12-15: advisory: GitHub Advisory GHSA-qhmc-3mvr-f2j4 published
References
- https://allauth.org/news/2025/10/django-allauth-65.13.0-released
- https://github.com/pennersr/django-allauth/commit/39f4a4ce9c891795b00914ca5ec32de72d5369c0
- https://github.com/pennersr/django-allauth/commit/c54edf947c5a1c8c4ff3cddb75c86000ecb2507d
- https://github.com/pypa/advisory-database/tree/main/vulns/django-allauth/PYSEC-2025-110.yaml