chore(deps): update dependency next-auth to v4.24.15 [security] - #48
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update dependency next-auth to v4.24.15 [security]#48renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
November 10, 2025 23:10
be0a9e2 to
28ef7df
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
December 3, 2025 16:03
28ef7df to
f555ada
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
December 31, 2025 18:38
f555ada to
4d8fb5d
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
January 8, 2026 21:06
4d8fb5d to
572cd34
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
January 19, 2026 17:10
572cd34 to
644cb16
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
February 2, 2026 15:46
644cb16 to
8fa864a
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
March 5, 2026 16:12
8fa864a to
d1f6bdb
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
March 13, 2026 12:39
d1f6bdb to
d3d4cfc
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
2 times, most recently
from
March 30, 2026 18:58
d3d4cfc to
0cf1c46
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
April 8, 2026 15:37
0cf1c46 to
376e2b5
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
April 29, 2026 17:28
376e2b5 to
11db9d7
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
May 18, 2026 13:50
11db9d7 to
d30c031
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
May 28, 2026 22:12
d30c031 to
94e96fb
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
July 12, 2026 14:07
94e96fb to
0c0fea1
Compare
renovate
Bot
force-pushed
the
renovate/npm-next-auth-vulnerability
branch
from
July 20, 2026 23:49
0c0fea1 to
c0d931a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
4.24.5→4.24.15NextAuthjs Email misdelivery Vulnerability
GHSA-5jpx-9hw9-2fx4
More information
Details
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 innodemailerv7.0.7). A crafted input such as:is parsed incorrectly and results in the message being delivered to
e@attacker.com(attacker) instead of"<e@attacker.com>@victim.com"(the intended recipient atvictim.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.Affected NextAuthjs Version
POC
Example Setup showing misdelivery of email
Mitigation
Update to nodemailer 7.0.7
Credits
https://zeropath.com/ Helped identify this security issue
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:PReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Auth.js: OAuth state, nonce, and PKCE check cookies are not bound to the provider that created them
GHSA-x445-f3h2-j279
More information
Details
Summary
Auth.js stores the OAuth/OIDC anti-CSRF checks (
state,nonce, and the PKCE verifier) in global cookies that are not bound to the provider that created them. On callback, a check value minted during a sign-in started with one provider can satisfy the callback for a different provider, because the stored cookie is not verified against the callback provider's identity (provider id, issuer, client id, or redirect URI). In a multi-provider app that allows account linking while logged in, this provider-confusion / mix-up condition can let an attacker link their account at a second provider to a victim's user.Am I affected?
You may be affected if all of the following hold:
next-auth<= 4.24.14or>= 5.0.0-beta.1, <= 5.0.0-beta.31, or@auth/core<= 0.41.2.stateor only onnonce).You are not affected if you use a single OAuth provider, do not allow logged-in account linking, or all providers enforce PKCE.
Impact
Patched version
The fix binds the OAuth check cookies to the provider/authorization flow that created them, so a callback cannot consume a check value minted for a different provider. Upgrade to the first releases containing this fix (pending; this advisory will be updated with exact patched versions before publication).
Workarounds
If you cannot upgrade immediately:
checks: ["pkce"], in addition tostate/nonce) on every provider that supports it; PKCE blocks the practical code-swap variant because the attacker cannot observe the relying party's verifier.events.linkAccountas sensitive: add audit logging, user notification, or out-of-band confirmation so that any unexpected link is visible (defense-in-depth, not a root-cause fix).Credit
Reported by @Nadav0077. Thank you for the responsible disclosure.
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Auth.js: Email normalizer validates the address before Unicode normalization, allowing a homoglyph @ bypass
GHSA-7rqj-j65f-68wh
More information
Details
Summary
The default email-address normalizer used by the email/magic-link sign-in flow validates the address before applying Unicode normalization. An address can contain a Unicode character that is not an ASCII
@(U+0040) but canonicalizes to one under NFKC/NFKD normalization (the normalization commonly applied by mail libraries and services for internationalized email). Such an address passes the normalizer's single-@check, but a downstream mail library that normalizes the string then sees two@separators and may deliver the passwordless sign-in link to a different recipient than intended. This is an instance of validating before canonicalizing.Am I affected?
You may be affected if all of the following hold:
next-auth>= 4.0.0, < 4.24.14, or@auth/core>= 0.1.0, < 0.41.3.normalizeIdentifier).sendVerificationRequestimplementation uses a mail library or delivery service that applies Unicode normalization to recipient addresses (most internationalized-email/SMTPUTF8-capable senders do).You are not affected if you do not use the email provider, or if your normalizer/mailer rejects or canonicalizes non-ASCII addresses before they are validated.
Impact
Patched version
The fix applies Unicode (NFKC) normalization before the address is validated, so homoglyph separators are collapsed and rejected up front. Upgrade to the first release containing this fix (pending; this advisory will be updated with the exact patched version before publication). No application code changes are required after upgrading.
Workarounds
If you cannot upgrade immediately:
normalizeIdentifieron the email provider that callsidentifier.normalize("NFKC")(and lower-cases/trims) before any validation, and rejects addresses that do not contain exactly one@after normalization.Credit
Reported by @kakashi-kx. Thank you for the responsible disclosure.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Auth.js: getToken() throws an uncaught exception on malformed Bearer authorization headers
GHSA-xmf8-cvqr-rfgj
More information
Details
Summary
The exported
getToken()helper (next-auth/jwtand@auth/core/jwt) can throw an uncaught exception when it reads a malformedAuthorization: Bearer …header. When no session cookie is present,getToken()URL-decodes the bearer value before validating it, and malformed percent-encoding causes the decode step to throw rather than being treated as an invalid token. BecausegetToken()is commonly called in API routes, middleware, and other request handlers, a single unauthenticated request can trigger an unhandled exception in code paths that authenticate requests.Am I affected?
You are affected if all of the following hold:
next-auth<= 5.0.0-beta.25(or@auth/coreexposing the samegetToken()implementation).getToken()directly — for example in a Route Handler, middleware, or server-side request handler.getToken()call in your owntry/catch.You are not affected if you only use the framework's
auth()helper and never callgetToken()yourself, or if everygetToken()call site already has its own exception handling.Impact
getToken().CWE-20: Improper Input Validation.
Patched version
The fix makes
getToken()treat a malformed Bearer value as an invalid token and returnnull, matching how other undecodable tokens are already handled. Upgrade to the first release containing this fix (to be published; this advisory will be updated with the exact patched version before publication) and no code changes are required.Workarounds
If you cannot upgrade immediately, either:
Config/code-level: wrap your
getToken()calls so a thrown error is treated as "no token", e.g.Or strip/normalize the incoming
Authorizationheader at the edge (proxy, middleware) before it reachesgetToken(), rejecting values whose Bearer portion is not valid percent-encoding.Credit
Reported by @deprrous. Thank you for the responsible disclosure.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
nextauthjs/next-auth (next-auth)
v4.24.15Compare Source
Security patch release for the 4.x line.
getToken()now returnsnullinstead of throwing when theAuthorizationheader contains a malformed Bearer value.state,nonce, and PKCE check cookies are now bound to the provider that created them and are rejected when a different provider handles the callback. Sign-ins in flight across the upgrade fail once and succeed on retry.@bypass.NEXTAUTH_URLnow takes precedence over the auto-detected forwarded host in trusted-host mode.uuidto^11.1.1; the 14.x line is ESM-only and brokerequire()on Node versions below 20.19.v4.24.14Compare Source
Bugfixes
GitHub now returns an
issparameter in OAuth callbacks.openid-clientvalidates it unconditionally, which was breaking authentication for apps that didn't configure an issuer. This sets the default GitHub provider issuer tohttps://github.com/login/oauth.v4.24.13Compare Source
v4.24.12Compare Source
v4.24.11Compare Source
v4.24.10Compare Source
What's Changed
490a033Full Changelog: https://github.com/nextauthjs/next-auth/compare/next-auth@4.24.9...next-auth@4.24.10
v4.24.9Compare Source
What's Changed
awaitdynamic APIs as per Next.js 15 changes by @balazsorban44 in4d143c5New Contributors
Full Changelog: https://github.com/nextauthjs/next-auth/compare/next-auth@4.24.8...next-auth@4.24.9
v4.24.8Compare Source
What's Changed
identifier@auth/*-adaptersfor v4 by @balazsorban44 in #11562New Contributors
Full Changelog: https://github.com/nextauthjs/next-auth/compare/next-auth@4.24.7...next-auth@4.24.8
v4.24.7Compare Source
Others
v4.24.6Compare Source
Bugfixes
nodemailerimports (#9261) (fa287be)Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.