Description
Nhost is an open source Firebase alternative with GraphQL. Prior to version 0.49.1, Nhost automatically links an incoming OAuth identity to an existing Nhost account when the email addresses match. This is only safe when the email has been verified by the OAuth provider. Nhost's controller trusts a profile.EmailVerified boolean that is set by each provider adapter. The vulnerability is that several provider adapters do not correctly populate this field they either silently drop a verified field the provider API actually returns (Discord), or they fall back to accepting unconfirmed emails and marking them as verified (Bitbucket). Two Microsoft providers (AzureAD, EntraID) derive the email from non-ownership-proving fields like the user principal name, then mark it verified. The result is that an attacker can present an email they don't own to Nhost, have the OAuth identity merged into the victim's account, and receive a full authenticated session. This issue has been patched in version 0.49.1.
Problem types
CWE-287: Improper Authentication
Product status
References
github.com/.../nhost/security/advisories/GHSA-6g38-8j4p-j3pr
github.com/nhost/nhost/pull/4162
github.com/...ommit/ec8dab3f2cf46e1131ddaf893d56c37aa00380b2
github.com/nhost/nhost/releases/tag/auth@0.49.1