Vulnerability Name:

CVE-2022-31127 (CCN-230678)

Assigned:2022-07-06
Published:2022-07-06
Updated:2022-07-14
Summary: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.
CVSS v3 Severity:6.1 Medium (CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N)
5.8 Medium (Temporal CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N/E:H/RL:O/RC:C)
Exploitability Metrics:Attack Vector (AV): Network
Attack Complexity (AC): Low
Privileges Required (PR): None
User Interaction (UI): Required
Scope:Scope (S): Changed
Impact Metrics:Confidentiality (C): Low
Integrity (I): Low
Availibility (A): None
7.1 High (CCN CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L)
6.8 Medium (CCN Temporal CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L/E:H/RL:O/RC:C)
Exploitability Metrics:Attack Vector (AV): Network
Attack Complexity (AC): Low
Privileges Required (PR): None
User Interaction (UI): Required
Scope:Scope (S): Changed
Impact Metrics:Confidentiality (C): Low
Integrity (I): Low
Availibility (A): Low
CVSS v2 Severity:4.3 Medium (CVSS v2 Vector: AV:N/AC:M/Au:N/C:N/I:P/A:N)
Exploitability Metrics:Access Vector (AV): Network
Access Complexity (AC): Medium
Authentication (Au): None
Impact Metrics:Confidentiality (C): None
Integrity (I): Partial
Availibility (A): None
6.5 Medium (CCN CVSS v2 Vector: AV:N/AC:L/Au:S/C:P/I:P/A:P)
Exploitability Metrics:Access Vector (AV): Network
Access Complexity (AC): Low
Athentication (Au): Single_Instance
Impact Metrics:Confidentiality (C): Partial
Integrity (I): Partial
Availibility (A): Partial
Vulnerability Type:CWE-79
Vulnerability Consequences:Cross-Site Scripting
References:Source: MITRE
Type: CNA
CVE-2022-31127

Source: XF
Type: UNKNOWN
nodejs-cve202231127-xss(230678)

Source: MISC
Type: Patch, Third Party Advisory
https://github.com/nextauthjs/next-auth/commit/ae834f1e08a4a9915665eecb9479c74c6b039c9c

Source: MISC
Type: Release Notes, Third Party Advisory
https://github.com/nextauthjs/next-auth/releases/tag/next-auth%40v4.9.0

Source: CCN
Type: NextAuth.js GIT Repository
Improper handling of email input

Source: CONFIRM
Type: Exploit, Third Party Advisory
https://github.com/nextauthjs/next-auth/security/advisories/GHSA-pgjx-7f9g-9463

Source: MISC
Type: Vendor Advisory
https://next-auth.js.org/getting-started/upgrade-v4

Source: MISC
Type: Vendor Advisory
https://next-auth.js.org/providers/email#customizing-emails

Source: CCN
Type: SNYK-JS-NEXTAUTH-2944244
Improper Input Validation

Source: CCN
Type: Mend Vulnerability Database
CVE-2022-31127

Vulnerable Configuration:Configuration 1:
  • cpe:/a:nextauth.js:next-auth:*:*:*:*:*:node.js:*:* (Version >= 4.0.0 and < 4.9.0)
  • OR cpe:/a:nextauth.js:next-auth:*:*:*:*:*:node.js:*:* (Version < 3.29.8)

  • Configuration CCN 1:
  • cpe:/a:nodejs:node.js:*:*:*:*:-:*:*:*

  • * Denotes that component is vulnerable
    BACK
    nextauth.js next-auth *
    nextauth.js next-auth *
    nodejs node.js *