Skip to content

SQL Injection and Cross-site Scripting in class-validator

Critical severity GitHub Reviewed Published Oct 12, 2021 to the GitHub Advisory Database • Updated Jan 27, 2023

Package

npm class-validator (npm)

Affected versions

< 0.14.0

Patched versions

0.14.0

Description

In TypeStack class-validator, validate() input validation can be bypassed because certain internal attributes can be overwritten via a conflicting name. Even though there is an optional forbidUnknownValues parameter that can be used to reduce the risk of this bypass, this option is not documented and thus most developers configure input validation in the vulnerable default manner. With this vulnerability, attackers can launch SQL Injection or XSS attacks by injecting arbitrary malicious input.

The default settings for forbidUnknownValues has been changed to true in 0.14.0.

NOTE: a software maintainer agrees with the "is not documented" finding but suggests that much of the responsibility for the risk lies in a different product.

References

Published by the National Vulnerability Database Oct 24, 2019
Reviewed Oct 8, 2021
Published to the GitHub Advisory Database Oct 12, 2021
Last updated Jan 27, 2023

Severity

Critical
9.8
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

CVE ID

CVE-2019-18413

GHSA ID

GHSA-fj58-h2fr-3pp2
Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.