Vulnerability Details CVE-2022-31127
NextAuth.js is a complete open source authentication solution for Next.js applications. An attacker can pass a compromised input to the e-mail [signin endpoint](https://next-auth.js.org/getting-started/rest-api#post-apiauthsigninprovider) that contains some malicious HTML, tricking the e-mail server to send it to the user, so they can perform a phishing attack. Eg.: `balazs@email.com, <a href="http://attacker.com">Before signing in, claim your money!</a>`. This was previously sent to `balazs@email.com`, and the content of the email containing a link to the attacker's site was rendered in the HTML. This has been remedied in the following releases, by simply not rendering that e-mail in the HTML, since it should be obvious to the receiver what e-mail they used: next-auth v3 users before version 3.29.8 are impacted. (We recommend upgrading to v4, as v3 is considered unmaintained. next-auth v4 users before version 4.9.0 are impacted. If for some reason you cannot upgrade, the workaround requires you to sanitize the `email` parameter that is passed to `sendVerificationRequest` and rendered in the HTML. If you haven't created a custom `sendVerificationRequest`, you only need to upgrade. Otherwise, make sure to either exclude `email` from the HTML body or efficiently sanitize it.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.006
EPSS Ranking 68.3%
CVSS Severity
CVSS v3 Score 7.1
CVSS v2 Score 4.3
Products affected by CVE-2022-31127
-
cpe:2.3:a:nextauth.js:next-auth:-
-
cpe:2.3:a:nextauth.js:next-auth:1.0.0
-
cpe:2.3:a:nextauth.js:next-auth:1.1.0
-
cpe:2.3:a:nextauth.js:next-auth:1.1.1
-
cpe:2.3:a:nextauth.js:next-auth:1.1.10
-
cpe:2.3:a:nextauth.js:next-auth:1.1.2
-
cpe:2.3:a:nextauth.js:next-auth:1.1.3
-
cpe:2.3:a:nextauth.js:next-auth:1.1.5
-
cpe:2.3:a:nextauth.js:next-auth:1.1.6
-
cpe:2.3:a:nextauth.js:next-auth:1.1.7
-
cpe:2.3:a:nextauth.js:next-auth:1.1.8
-
cpe:2.3:a:nextauth.js:next-auth:1.1.9
-
cpe:2.3:a:nextauth.js:next-auth:1.10.0
-
cpe:2.3:a:nextauth.js:next-auth:1.11.0
-
cpe:2.3:a:nextauth.js:next-auth:1.12.0
-
cpe:2.3:a:nextauth.js:next-auth:1.12.1
-
cpe:2.3:a:nextauth.js:next-auth:1.13.0
-
cpe:2.3:a:nextauth.js:next-auth:1.2.1
-
cpe:2.3:a:nextauth.js:next-auth:1.3.0
-
cpe:2.3:a:nextauth.js:next-auth:1.4.0
-
cpe:2.3:a:nextauth.js:next-auth:1.4.1
-
cpe:2.3:a:nextauth.js:next-auth:1.5.0
-
cpe:2.3:a:nextauth.js:next-auth:1.5.1
-
cpe:2.3:a:nextauth.js:next-auth:1.6.0
-
cpe:2.3:a:nextauth.js:next-auth:1.7.0
-
cpe:2.3:a:nextauth.js:next-auth:1.7.1
-
cpe:2.3:a:nextauth.js:next-auth:1.7.2
-
cpe:2.3:a:nextauth.js:next-auth:1.7.3
-
cpe:2.3:a:nextauth.js:next-auth:1.8.0
-
cpe:2.3:a:nextauth.js:next-auth:1.8.1
-
cpe:2.3:a:nextauth.js:next-auth:1.8.2
-
cpe:2.3:a:nextauth.js:next-auth:1.8.3
-
cpe:2.3:a:nextauth.js:next-auth:1.8.4
-
cpe:2.3:a:nextauth.js:next-auth:1.8.5
-
cpe:2.3:a:nextauth.js:next-auth:1.9.0
-
cpe:2.3:a:nextauth.js:next-auth:1.9.1
-
cpe:2.3:a:nextauth.js:next-auth:2.0
-
cpe:2.3:a:nextauth.js:next-auth:2.0.0
-
cpe:2.3:a:nextauth.js:next-auth:2.0.1
-
cpe:2.3:a:nextauth.js:next-auth:2.1.0
-
cpe:2.3:a:nextauth.js:next-auth:2.2.0
-
cpe:2.3:a:nextauth.js:next-auth:2.2.1
-
cpe:2.3:a:nextauth.js:next-auth:3.0.0
-
cpe:2.3:a:nextauth.js:next-auth:3.0.1
-
cpe:2.3:a:nextauth.js:next-auth:3.1.0
-
cpe:2.3:a:nextauth.js:next-auth:3.10.0
-
cpe:2.3:a:nextauth.js:next-auth:3.10.1
-
cpe:2.3:a:nextauth.js:next-auth:3.11.0
-
cpe:2.3:a:nextauth.js:next-auth:3.11.1
-
cpe:2.3:a:nextauth.js:next-auth:3.11.2
-
cpe:2.3:a:nextauth.js:next-auth:3.12.0
-
cpe:2.3:a:nextauth.js:next-auth:3.13.0
-
cpe:2.3:a:nextauth.js:next-auth:3.13.1
-
cpe:2.3:a:nextauth.js:next-auth:3.13.2
-
cpe:2.3:a:nextauth.js:next-auth:3.13.3
-
cpe:2.3:a:nextauth.js:next-auth:3.14.0
-
cpe:2.3:a:nextauth.js:next-auth:3.14.1
-
cpe:2.3:a:nextauth.js:next-auth:3.14.2
-
cpe:2.3:a:nextauth.js:next-auth:3.14.3
-
cpe:2.3:a:nextauth.js:next-auth:3.14.4
-
cpe:2.3:a:nextauth.js:next-auth:3.14.5
-
cpe:2.3:a:nextauth.js:next-auth:3.14.6
-
cpe:2.3:a:nextauth.js:next-auth:3.14.7
-
cpe:2.3:a:nextauth.js:next-auth:3.14.8
-
cpe:2.3:a:nextauth.js:next-auth:3.15.0
-
cpe:2.3:a:nextauth.js:next-auth:3.15.1
-
cpe:2.3:a:nextauth.js:next-auth:3.15.10
-
cpe:2.3:a:nextauth.js:next-auth:3.15.11
-
cpe:2.3:a:nextauth.js:next-auth:3.15.12
-
cpe:2.3:a:nextauth.js:next-auth:3.15.13
-
cpe:2.3:a:nextauth.js:next-auth:3.15.2
-
cpe:2.3:a:nextauth.js:next-auth:3.15.3
-
cpe:2.3:a:nextauth.js:next-auth:3.15.4
-
cpe:2.3:a:nextauth.js:next-auth:3.15.5
-
cpe:2.3:a:nextauth.js:next-auth:3.15.6
-
cpe:2.3:a:nextauth.js:next-auth:3.15.7
-
cpe:2.3:a:nextauth.js:next-auth:3.15.8
-
cpe:2.3:a:nextauth.js:next-auth:3.15.9
-
cpe:2.3:a:nextauth.js:next-auth:3.16.0
-
cpe:2.3:a:nextauth.js:next-auth:3.16.1
-
cpe:2.3:a:nextauth.js:next-auth:3.17.0
-
cpe:2.3:a:nextauth.js:next-auth:3.17.1
-
cpe:2.3:a:nextauth.js:next-auth:3.17.2
-
cpe:2.3:a:nextauth.js:next-auth:3.18.0
-
cpe:2.3:a:nextauth.js:next-auth:3.18.1
-
cpe:2.3:a:nextauth.js:next-auth:3.18.2
-
cpe:2.3:a:nextauth.js:next-auth:3.19.0
-
cpe:2.3:a:nextauth.js:next-auth:3.19.1
-
cpe:2.3:a:nextauth.js:next-auth:3.19.2
-
cpe:2.3:a:nextauth.js:next-auth:3.19.3
-
cpe:2.3:a:nextauth.js:next-auth:3.19.4
-
cpe:2.3:a:nextauth.js:next-auth:3.19.5
-
cpe:2.3:a:nextauth.js:next-auth:3.19.6
-
cpe:2.3:a:nextauth.js:next-auth:3.19.7
-
cpe:2.3:a:nextauth.js:next-auth:3.19.8
-
cpe:2.3:a:nextauth.js:next-auth:3.2.0
-
cpe:2.3:a:nextauth.js:next-auth:3.2.1
-
cpe:2.3:a:nextauth.js:next-auth:3.20.0
-
cpe:2.3:a:nextauth.js:next-auth:3.20.1
-
cpe:2.3:a:nextauth.js:next-auth:3.21.0
-
cpe:2.3:a:nextauth.js:next-auth:3.21.1
-
cpe:2.3:a:nextauth.js:next-auth:3.22.0
-
cpe:2.3:a:nextauth.js:next-auth:3.23.0
-
cpe:2.3:a:nextauth.js:next-auth:3.23.1
-
cpe:2.3:a:nextauth.js:next-auth:3.23.2
-
cpe:2.3:a:nextauth.js:next-auth:3.23.3
-
cpe:2.3:a:nextauth.js:next-auth:3.24.0
-
cpe:2.3:a:nextauth.js:next-auth:3.24.1
-
cpe:2.3:a:nextauth.js:next-auth:3.25.0
-
cpe:2.3:a:nextauth.js:next-auth:3.26.0
-
cpe:2.3:a:nextauth.js:next-auth:3.26.1
-
cpe:2.3:a:nextauth.js:next-auth:3.27.0
-
cpe:2.3:a:nextauth.js:next-auth:3.27.1
-
cpe:2.3:a:nextauth.js:next-auth:3.27.2
-
cpe:2.3:a:nextauth.js:next-auth:3.27.3
-
cpe:2.3:a:nextauth.js:next-auth:3.28.0
-
cpe:2.3:a:nextauth.js:next-auth:3.29.0
-
cpe:2.3:a:nextauth.js:next-auth:3.29.1
-
cpe:2.3:a:nextauth.js:next-auth:3.29.2
-
cpe:2.3:a:nextauth.js:next-auth:3.29.3
-
cpe:2.3:a:nextauth.js:next-auth:3.29.4
-
cpe:2.3:a:nextauth.js:next-auth:3.29.5
-
cpe:2.3:a:nextauth.js:next-auth:3.29.6
-
cpe:2.3:a:nextauth.js:next-auth:3.29.7
-
cpe:2.3:a:nextauth.js:next-auth:3.3.0
-
cpe:2.3:a:nextauth.js:next-auth:3.3.1
-
cpe:2.3:a:nextauth.js:next-auth:3.4.0
-
cpe:2.3:a:nextauth.js:next-auth:3.4.1
-
cpe:2.3:a:nextauth.js:next-auth:3.4.2
-
cpe:2.3:a:nextauth.js:next-auth:3.5.0
-
cpe:2.3:a:nextauth.js:next-auth:3.5.1
-
cpe:2.3:a:nextauth.js:next-auth:3.6.0
-
cpe:2.3:a:nextauth.js:next-auth:3.6.1
-
cpe:2.3:a:nextauth.js:next-auth:3.7.0
-
cpe:2.3:a:nextauth.js:next-auth:3.7.1
-
cpe:2.3:a:nextauth.js:next-auth:3.8.0
-
cpe:2.3:a:nextauth.js:next-auth:3.9.0
-
cpe:2.3:a:nextauth.js:next-auth:4.0.0
-
cpe:2.3:a:nextauth.js:next-auth:4.0.1
-
cpe:2.3:a:nextauth.js:next-auth:4.0.2
-
cpe:2.3:a:nextauth.js:next-auth:4.0.3
-
cpe:2.3:a:nextauth.js:next-auth:4.0.4
-
cpe:2.3:a:nextauth.js:next-auth:4.0.5
-
cpe:2.3:a:nextauth.js:next-auth:4.0.6
-
cpe:2.3:a:nextauth.js:next-auth:4.1.0
-
cpe:2.3:a:nextauth.js:next-auth:4.1.1
-
cpe:2.3:a:nextauth.js:next-auth:4.1.2
-
cpe:2.3:a:nextauth.js:next-auth:4.2.0
-
cpe:2.3:a:nextauth.js:next-auth:4.2.1
-
cpe:2.3:a:nextauth.js:next-auth:4.3.0
-
cpe:2.3:a:nextauth.js:next-auth:4.3.1
-
cpe:2.3:a:nextauth.js:next-auth:4.3.2
-
cpe:2.3:a:nextauth.js:next-auth:4.3.3
-
cpe:2.3:a:nextauth.js:next-auth:4.3.4
-
cpe:2.3:a:nextauth.js:next-auth:4.4.0
-
cpe:2.3:a:nextauth.js:next-auth:4.5.0
-
cpe:2.3:a:nextauth.js:next-auth:4.6.0
-
cpe:2.3:a:nextauth.js:next-auth:4.6.1
-
cpe:2.3:a:nextauth.js:next-auth:4.7.0
-
cpe:2.3:a:nextauth.js:next-auth:4.8.0