CVE-2026-100169: Account pre-hijacking in the Prowler API through email based social account linking without verification
Improper Authentication in the social account linking path of the Prowler API in Prowler from 5.4.0 before 5.35.0 allows a remote unauthenticated attacker to obtain persistent access to the account of a user who has not yet registered, because ProwlerSocialAccountAdapter.presociallogin() in api/src/backend/api/adapters.py links a Google or GitHub login to any existing local account that has the same email address as the one returned by the provider, without requiring that the address has been verified by the provider or on the existing account, and without any other check that both accounts belong to the same person. Self registration is open and the new account is usable at once, because UserViewSet.getpermissions() in api/src/backend/api/v1/views.py grants AllowAny to the create action, ACCOUNTEMAILVERIFICATION is set to none in api/src/backend/config/settings/sociallogin.py, and the Django ModelBackend checks only the password and isactive, not the django-allauth EmailAddress record. An attacker who registers an email address before its owner keeps the password set at registration after the link is made, because sociallogin.connect() does not reset the password and does not disable the existing account, and the owner who later signs in with Google or GitHub is logged into the attacker's account. django-allauth makes the same email based link on its own, because SOCIALACCOUNTEMAILAUTHENTICATION and SOCIALACCOUNTEMAILAUTHENTICATIONAUTOCONNECT are both set to True in the same settings module. This gives the attacker the cloud provider credentials, scan findings and tenant memberships held in the account.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Prowlerto a version that resolves this vulnerability.Fixed in 5.35.0
Event History
Frequently Asked Questions
Which installations are affected?
Affected versions are Prowler 5.4.0 through versions before 5.35.0. The issue applies where users can self-register and use Google or GitHub social login linking.
What does an attacker need to do to exploit this?
An unauthenticated remote attacker can register a local account using an email address before that address's legitimate owner registers. If a Google or GitHub login is then linked based on the same email address, the attacker retains the password set during registration and can keep accessing the account.
Does email verification block this attack?
No. The affected configuration sets ACCOUNT_EMAIL_VERIFICATION to none, and the social-linking code does not require the provider email or the existing local-account email to be verified before linking.
What is the remediation?
Upgrade to Prowler 5.35.0 or later. Versions before 5.35.0 are affected according to the provided version range.