CVE-2022-31127: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
(updated )
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 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.
References
- github.com/nextauthjs/next-auth/commit/ae834f1e08a4a9915665eecb9479c74c6b039c9c
- github.com/nextauthjs/next-auth/releases/tag/next-auth%40v4.9.0
- github.com/nextauthjs/next-auth/security/advisories/GHSA-pgjx-7f9g-9463
- next-auth.js.org/getting-started/upgrade-v4
- next-auth.js.org/providers/email
- nvd.nist.gov/vuln/detail/CVE-2022-31127
Detect and mitigate CVE-2022-31127 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →