Executive brief
Auth.js is a popular authentication library used to manage user login flows, including passwordless email sign-in. A flaw in its email validation allows attackers to use Unicode characters that look like @ symbols to bypass email address checks. An attacker can exploit this to intercept passwordless login links meant for a victim's email and use them to take over the victim's account without any interaction from the victim.
Technical details
The vulnerability is a validation-before-canonicalization flaw (CWE-180) in the email normalizer used by the passwordless sign-in provider. The normalizer validates email addresses for exactly one ASCII @ character before applying Unicode NFKC normalization. An attacker can craft an email address containing a homoglyph character (e.g., U+FF20 FULLWIDTH COMMERCIAL AT) that passes the single-@ check but normalizes to a real @ symbol when processed by downstream mail libraries. This causes the passwordless link to be delivered to a different, attacker-controlled recipient address. The attack requires no user interaction and is triggered when the attacker initiates the sign-in flow. Patches are available: @auth/core 0.41.3+, next-auth 4.24.15+, and next-auth 5.0.0-beta.32+.
Affected products
- Auth.js @auth/core 0.1.0 to 0.41.2
- Auth.js next-auth 4.10.3 to 4.24.14, 5.0.0-beta.1 to 5.0.0-beta.31
Timeline
- 2026-07-23: disclosed: Published as GHSA-7rqj-j65f-68wh
- 2026-07-23: patched: @auth/core 0.41.3, next-auth 4.24.15, and 5.0.0-beta.32 released