-
Notifications
You must be signed in to change notification settings - Fork 88
fix(deps): update dependency next-auth to v4.20.1 [security] #2010
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
✅ Deploy Preview for netlify-plugin-nextjs-export-demo ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
✅ Deploy Preview for netlify-plugin-nextjs-nx-monorepo-demo ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
✅ Deploy Preview for next-plugin-edge-middleware ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
✅ Deploy Preview for next-i18next-demo ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
✅ Deploy Preview for netlify-plugin-nextjs-next-auth-demo ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
✅ Deploy Preview for nextjs-plugin-custom-routes-demo ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
✅ Deploy Preview for netlify-plugin-nextjs-demo ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
✅ Deploy Preview for next-plugin-canary ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
✅ Deploy Preview for netlify-plugin-nextjs-static-root-demo ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
This PR contains the following updates:
4.16.4
->4.20.1
GitHub Vulnerability Alerts
CVE-2023-27490
Impact
next-auth
applications using OAuth provider versions beforev4.20.1
are affected.A bad actor who can spy on the victim's network or able to social engineer the victim to click a manipulated login link could intercept and tamper with the authorization URL to log in as the victim, bypassing the CSRF protection.
As an example, an attack can happen in the following scenario.
next-auth
site. For example https://next-auth-example.vercel.app/next-auth
sets thechecks
cookies according to how the OAuth provider is configured. In this case,state
andpkce
are set by default for the Google Provider.The attacker intercepts the returned authorization URL, strips away the OAuth check (nonce, state, pkce), and returns the URL without the check to the victim's browser. For example:
From
https://accounts.google.com/o/oauth2/v2/auth/oauthchooseaccount?client_id=client_id&scope=openid%20email%20profile&response_type=code&redirect_uri=https%3A%2F%2Fnext-auth-example.vercel.app%2Fapi%2Fauth%2Fcallback%2Fgoogle&state=state&code_challenge=code_challenge&code_challenge_method=S256&service=lso&o2v=2&flowName=GeneralOAuthFlow
to
https://accounts.google.com/o/oauth2/v2/auth/oauthchooseaccount?client_id=client_id&scope=openid%20email%20profile&response_type=code&redirect_uri=https%3A%2F%2Fnext-auth-example.vercel.app%2Fapi%2Fauth%2Fcallback%2Fgoogle&service=lso&o2v=2&flowName=GeneralOAuthFlow
.Notice the parameters
state
,code_challenge
andcode_verifier
are removed from the victim's address bar.The victim attempts to log in using their OAuth account.
The Authorization Server logs the victim in and calls back to the
next-auth
api/auth/callback/:providerId
endpoint.5.1. The attacker intercepts and logs this callback URL for later use.
5.2.
next-auth
checks the callback call from OAuth Authorization Server (doesn't have checks) and compares the checks with the cookies set (has checks) at step 2. This check will fail, resulting in the victim isn't logged in. However, at this step, the Authorization Server has already accepted the victim's request to log in and generated/sent acode
in the URL.The attacker now has an authorization URL with the
code
that the AS will exchange for validaccess_token
/id_token
and can log in as the victim automatically. They can open a new browser window and paste in the URL logged at step 5.1 and log in as the victim.Patches
We patched the vulnerability in
next-auth
v4.20.1
To upgrade, run one of the following:
Workarounds
Upgrading to
latest
is the recommended way to fix this issue. However, using Advanced Initialization, developers can manually check the callback request forstate
,pkce
, andnonce
against the provider configuration, and abort the sign-in process if there is a mismatch. Check out the source code for help.References
checks
provider configRelease Notes
nextauthjs/next-auth
v4.20.1
Compare Source
Full Changelog: https://github.com/nextauthjs/next-auth/compare/next-auth@4.20.0...next-auth@4.20.1
v4.20.0
Compare Source
What's Changed
getServerSideProps
by @ChinonsoIg in https://github.com/nextauthjs/next-auth/pull/6589engines
requirement onopenid-client
by @balazsorban44 in https://github.com/nextauthjs/next-auth/pull/6654NEXTAUTH_URL_INTERNAL
by @ThangHuuVu in https://github.com/nextauthjs/next-auth/pull/6814New Contributors
Full Changelog: https://github.com/nextauthjs/next-auth/compare/next-auth@4.19.2...next-auth@4.20.0
v4.19.2
Compare Source
What's Changed
Full Changelog: https://github.com/nextauthjs/next-auth/compare/next-auth@4.19.1...next-auth@4.19.2
v4.19.1
Compare Source
What's Changed
unstable
note. by @OrJDev in https://github.com/nextauthjs/next-auth/pull/6537unstable_getServerSession
by @joulev in https://github.com/nextauthjs/next-auth/pull/6560New Contributors
Full Changelog: https://github.com/nextauthjs/next-auth/compare/next-auth@4.19.0...next-auth@4.19.1
v4.19.0
Compare Source
What's Changed
oauth_token_secret
in https://github.com/nextauthjs/next-auth/pull/6534unstable_
prefixgetServerSession
in https://github.com/nextauthjs/next-auth/pull/6535generateSessionToken
awaitable in https://github.com/nextauthjs/next-auth/pull/6536Full Changelog: https://github.com/nextauthjs/next-auth/compare/next-auth@4.18.10...next-auth@4.19.0
v4.18.10
Compare Source
Full Changelog: https://github.com/nextauthjs/next-auth/compare/next-auth@4.18.9...next-auth@4.18.10
v4.18.9
Compare Source
Bugfixes
f54424c
)null
for Azure AD (09bcc1d
)v4.18.8
Compare Source
What's Changed
docusaurus.config.js
settings (v4
) https://github.com/nextauthjs/next-auth/pull/6160NextAuth
correctly https://github.com/nextauthjs/next-auth/pull/6206Full Changelog: https://github.com/nextauthjs/next-auth/compare/next-auth@v4.18.7...next-auth@4.18.8
v4.18.7
Compare Source
Bugfixes
v4.18.6
Compare Source
Bugfixes
2875b49
)5259d24
)v4.18.5
Compare Source
Bugfixes
62f672a
)2c669b3
)v4.18.4
Compare Source
Bugfixes
Request
->Response
regressions (#5991) (5c4a9a6
)Content-Type
byunstable_getServerSession
https://github.com/nextauthjs/next-auth/pull/5991/commits/7c24c5613f470f4b33f0486201821c6d40bedca8,
while settingset-cookie
https://github.com/nextauthjs/next-auth/pull/5991/commits/7a390844c8db3c548ca0155f16d6a033693a3fbfv4.18.3
Compare Source
Bugfixes
157269e
)221bc8e
)Other
0a140cd
)v4.18.2
Compare Source
Bugfixes
f329102
)v4.18.1
Compare Source
Bugfixes
authOptions
inunstable_getServerSession
(#5973) (b19b2bc
)Other
Request
andResponse
(#4769) (7e91d7d
)c4352a7
)v4.18.0
Compare Source
Features
f277989
)Bugfixes
0d17578
)response.name
toresponse.nickname
(Naver) (#5915) (6e408e2
)unstable_getServerSession
return type (#5792) (a307079
)Other
2301c1b
)v4.17.0
Compare Source
Features
Bugfixes
jwt
inNextAuthOptions
(#5804) (8387c78
)Other
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ 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 has been generated by Mend Renovate. View repository job log here.