CVE-2025-65431 django-allauth's Okta and NetIQ implementations used a mutable identifier for authorization decisions

Medium 5.4 Published Updated

Attackers can hijack accounts by exploiting mutable preferred_username identifiers in Okta and NetIQ integrations within allauth-django.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2025-65431?

CVE-2025-65431 is a medium-severity authentication bypass vulnerability in n/a, published on 15 Dec 2025. Any signed-in user can exploit it over the network, with no action from the victim.

Official description

An issue was discovered in allauth-django before 65.13.0. Both Okta and NetIQ were using preferred_username as the identifier for third-party provider accounts. That value may be mutable and should therefore be avoided for authorization decisions. The providers are now using sub instead.

Weakness: CWE-287

Which versions are affected by CVE-2025-65431?

3 open source packages ship an affected version, including django-allauth. It affects 1 product.

PackageAffectedFixed in
django-allauth PyPIAll versions65.13.0
django-allauth PyPIAll versions65.13.0
django-allauth PyPIAll versions65.13.0

Products include Allauth Allauth.

How do I fix CVE-2025-65431?

Upgrade django-allauth to 65.13.0 or later.

Upgrade, and rotate credentials and sessions that may have been exposed. More about Authentication bypass.

Is CVE-2025-65431 being exploited?

There is no known exploitation of CVE-2025-65431 in the wild and no public exploit code.

Sources

Also known as DEBIAN-CVE-2025-65431, GHSA-8m3c-c723-h4p4, PYSEC-2025-111, UBUNTU-CVE-2025-65431.

Is CVE-2025-65431 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free