chore(deps): update dependency next-auth to v4.24.15 [security] - #271
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update dependency next-auth to v4.24.15 [security]#271renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.13→4.24.15Auth.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 OSV and 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 OSV and 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 OSV and 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.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, 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.