Snyk has a proof-of-concept or detailed explanation of how to exploit this vulnerability.
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applicationsUpgrade pg-promise
to version 11.5.5 or higher.
pg-promise is a PostgreSQL interface for Node.js
Affected versions of this package are vulnerable to SQL Injection when using the simple query mode. Since pgFormatting
is enabled by default, pg-promise escapes parameter values before inserting them into a query string.
When a placeholder is directly preceded by a minus -
and not separated by any whitespace, pg-promise does not handle the particular case when a negative number is inserted for the placeholder. This leads to two consecutive minus signs in the query, turning them into the start of a line comment.
Note:
To exploit this behavior and cause SQL Injection, the following conditions must be met by a parameterized query:
a placeholder for a numeric value must be immediately preceded by a minus (as described above).
there must be a second placeholder for a string value after the first placeholder; both must be on the same line.
both parameter values must be user-controlled