Skip to content

Commit 48543bf

Browse files
committed
Fix vulnerability
1 parent b518617 commit 48543bf

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

lib/result.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
*/
99

1010
var types = require('pg-types')
11+
var escape = require('js-string-escape')
1112

1213
// result object returned from query
1314
// in the 'end' event and also
@@ -82,7 +83,7 @@ var inlineParser = function (fieldName, i) {
8283
// Addendum: However, we need to make sure to replace all
8384
// occurences of apostrophes, not just the first one.
8485
// See https://github.com/brianc/node-postgres/issues/934
85-
fieldName.replace(/'/g, "\\'") +
86+
escape(fieldName) +
8687
"'] = " +
8788
'rowData[' + i + '] == null ? null : parsers[' + i + '](rowData[' + i + ']);'
8889
}

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"dependencies": {
2121
"buffer-writer": "1.0.1",
2222
"packet-reader": "0.3.1",
23+
"js-string-escape": "1.0.1",
2324
"pg-connection-string": "0.1.3",
2425
"pg-pool": "2.*",
2526
"pg-types": "1.*",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
var pg = require('./test-helper').pg
2+
3+
var sql = 'SELECT 1 AS "\\\'/*", 2 AS "\\\'*/\n + process.exit(-1)] = null;\n//"'
4+
5+
var client = new pg.Client()
6+
client.connect()
7+
client.query(sql, function (err, res) {
8+
if (err) throw err
9+
client.end()
10+
})

0 commit comments

Comments
 (0)