GitHub Advisoryadvisory · npm

GHSA-wc9v-mj63-m9g5 Remote Code Execution in pg

CRITICAL Published 2018-07-24 Modified 2023-09-11 Official page ↗
Aliases
CVE-2017-16082
Ecosystem
npm
Packages
pg
Severity
Critical
CVSS vector
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-94
Reviewed
2020-06-16

Affected packages

• npm pg: < 2.11.2 → fixed in 2.11.2 • npm pg: >= 3.0.0, < 3.6.4 → fixed in 3.6.4 • npm pg: >= 4.0.0, < 4.5.7 → fixed in 4.5.7 • npm pg: >= 5.0.0, < 5.2.1 → fixed in 5.2.1 • npm pg: >= 6.0.0, < 6.0.5 → fixed in 6.0.5 • npm pg: >= 6.1.0, < 6.1.6 → fixed in 6.1.6 • npm pg: >= 6.2.0, < 6.2.5 → fixed in 6.2.5 • npm pg: >= 6.3.0, < 6.3.3 → fixed in 6.3.3 • npm pg: >= 6.4.0, < 6.4.2 → fixed in 6.4.2 • npm pg: >= 7.0.0, < 7.0.2 → fixed in 7.0.2 • npm pg: >= 7.1.0, < 7.1.2 → fixed in 7.1.2

Description

Affected versions of `pg` contain a remote code execution vulnerability that occurs when the remote database or query specifies a crafted column name. There are two specific scenarios in which it is likely for an application to be vulnerable: 1. The application executes unsafe, user-supplied sql which contains malicious column names. 2. The application connects to an untrusted database and executes a query returning results which contain a malicious column name. Proof of Concept ``` const { Client } = require('pg') const client = new Client() client.connect() const sql = `SELECT 1 AS "\\'/*", 2 AS "\\'*/\n + console.log(process.env)] = null;\n//"` client.query(sql, (err, res) => { client.end() }) ``` Recommendation • Version 2.x.x: Update to version 2.11.2 or later. • Version 3.x.x: Update to version 3.6.4 or later. • Version 4.x.x: Update to version 4.5.7 or later. • Version 5.x.x: Update to version 5.2.1 or later. • Version 6.x.x: Update to version 6.4.2 or later. ( Note that versions 6.1.6, 6.2.5, and 6.3.3 are also patched. ) • Version 7.x.x: Update to version 7.1.2 or later. ( Note that version 7.0.2 is also patched. )

Related

Alias · CVE (1)

  • CVE-2017-16082 A remote code execution vulnerability was found within the pg module when the remote database or query specifies a specially crafted column… vulnerability

Weakness · CWE (1)

  • CWE-94 Improper Control of Generation of Code weakness

References