<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Wed, 14 Oct 2026 06:55:30 +0000</lastBuildDate>
    <item>
      <title>GHSA-5jpx-9hw9-2fx4 — NextAuthjs Email misdelivery Vulnerability</title>
      <link>https://db.gcve.eu/vuln/ghsa-5jpx-9hw9-2fx4</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: next-auth&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;NextAuth.js&amp;#39;s email sign-in can be forced to deliver authentication emails to an attacker-controlled mailbox due to a bug in `nodemailer`&amp;#39;s address parser used by the project (fixed in `nodemailer` **v7.0.7**). A crafted input such as:&lt;/p&gt;
&lt;p&gt;```
&amp;#34;e@attacker.com&amp;#34;@victim.com
```&lt;/p&gt;
&lt;p&gt;is parsed incorrectly and results in the message being delivered to `e@attacker.com` (attacker) instead of `&amp;#34;&amp;lt;e@attacker.com&amp;gt;@victim.com&amp;#34;` (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.&lt;/p&gt;
&lt;p&gt;&amp;lt;h2&amp;gt;Affected NextAuthjs Version&amp;lt;/h2&amp;gt;&lt;/p&gt;
&lt;p&gt;≤ Version | Afftected
-- | --
4.24.11 | Yes
5.0.0-beta.29 | Yes&lt;/p&gt;
&lt;p&gt;## POC&lt;/p&gt;
&lt;p&gt;Example Setup showing misdelivery of email&lt;/p&gt;
&lt;p&gt;```jsx
import NextAuth from &amp;#34;next-auth&amp;#34;
import Nodemailer from &amp;#34;next-auth/providers/nodemailer&amp;#34;
import { PrismaAdapter } from &amp;#34;@auth/prisma-adapter&amp;#34;
import { prisma } from &amp;#34;@/lib/prisma&amp;#34;&lt;/p&gt;
&lt;p&gt;export const { handlers, auth, signIn, signOut } = NextAuth({
  adapter: PrismaAdapter(prisma),
  providers: [
    Nodemailer({
      server: {
        host: &amp;#34;127.0.0.1&amp;#34;,
        port: 1025,
        ...
      },
      from: &amp;#34;noreply@authjs.dev&amp;#34;,
    }),
  ],
  pages: {
    signIn: &amp;#39;/auth/signin&amp;#39;,
    verifyRequest: &amp;#39;/auth/verify-request&amp;#39;,
  },
})&lt;/p&gt;
&lt;p&gt;```&lt;/p&gt;
&lt;p&gt;```jsx
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…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: next-auth&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;NextAuth.js&amp;#39;s email sign-in can be forced to deliver authentication emails to an attacker-controlled mailbox due to a bug in `nodemailer`&amp;#39;s address parser used by the project (fixed in `nodemailer` **v7.0.7**). A crafted input such as:&lt;/p&gt;
&lt;p&gt;```
&amp;#34;e@attacker.com&amp;#34;@victim.com
```&lt;/p&gt;
&lt;p&gt;is parsed incorrectly and results in the message being delivered to `e@attacker.com` (attacker) instead of `&amp;#34;&amp;lt;e@attacker.com&amp;gt;@victim.com&amp;#34;` (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.&lt;/p&gt;
&lt;p&gt;&amp;lt;h2&amp;gt;Affected NextAuthjs Version&amp;lt;/h2&amp;gt;&lt;/p&gt;
&lt;p&gt;≤ Version | Afftected
-- | --
4.24.11 | Yes
5.0.0-beta.29 | Yes&lt;/p&gt;
&lt;p&gt;## POC&lt;/p&gt;
&lt;p&gt;Example Setup showing misdelivery of email&lt;/p&gt;
&lt;p&gt;```jsx
import NextAuth from &amp;#34;next-auth&amp;#34;
import Nodemailer from &amp;#34;next-auth/providers/nodemailer&amp;#34;
import { PrismaAdapter } from &amp;#34;@auth/prisma-adapter&amp;#34;
import { prisma } from &amp;#34;@/lib/prisma&amp;#34;&lt;/p&gt;
&lt;p&gt;export const { handlers, auth, signIn, signOut } = NextAuth({
  adapter: PrismaAdapter(prisma),
  providers: [
    Nodemailer({
      server: {
        host: &amp;#34;127.0.0.1&amp;#34;,
        port: 1025,
        ...
      },
      from: &amp;#34;noreply@authjs.dev&amp;#34;,
    }),
  ],
  pages: {
    signIn: &amp;#39;/auth/signin&amp;#39;,
    verifyRequest: &amp;#39;/auth/verify-request&amp;#39;,
  },
})&lt;/p&gt;
&lt;p&gt;```&lt;/p&gt;
&lt;p&gt;```jsx
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…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-5jpx-9hw9-2fx4</guid>
    </item>
  </channel>
</rss>
