GitHub Advisoryadvisory · npm

GHSA-4qhx-g9wp-g9m6 Failure to sanitize quotes which can lead to sql injection in squel

CRITICAL Published 2019-06-14 Modified 2021-09-16 Official page ↗
Ecosystem
npm
Packages
squel
Severity
Critical
Weaknesses
CWE-74, CWE-89
Reviewed
2019-06-14

Affected packages

• npm squel: <= 5.13.0 (no fix yet)

Description

All versions of `squel` are vulnerable to sql injection. The `squel` package does not properly escape user provided input when provided using the `setFields` method. This could lead to sql injection if the query was then executed. Proof of concept demonstrating the injection of a single quote into a generated sql statement from user provided input. ``` > console.log(squel.insert().into('buh').setFields({foo: "bar'baz"}).toString()); INSERT INTO buh (foo) VALUES ('bar'baz') ``` Recommendation There is no fix at this time and the issue has been reported publicly. Consider using another query builder that provides strong guarantees for input sanitization to prevent sql injection attacks.

Related

Weakness · CWE (2)

  • CWE-74 Improper Neutralization of Special Elements in Output Used by a Downstream Component weakness
  • CWE-89 Improper Neutralization of Special Elements used in an SQL Command weakness

References