Skip to content

Commit e7f788a

Browse files
committed
Revert "Convert sqlx sql-injection sinks to MaD"
This reverts commit 7ad63fc.
1 parent 4e6d7fc commit e7f788a

File tree

7 files changed

+42
-92
lines changed

7 files changed

+42
-92
lines changed

go/ql/lib/ext/github.com.jmoiron.sqlx.model.yml

Lines changed: 0 additions & 17 deletions
This file was deleted.

go/ql/lib/semmle/go/frameworks/SQL.qll

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,20 @@ module SQL {
161161
)
162162
}
163163
}
164+
165+
/** A model for sinks of github.com/jmoiron/sqlx. */
166+
private class SqlxSink extends SQL::QueryString::Range {
167+
SqlxSink() {
168+
exists(Method meth, string name, int n |
169+
meth.hasQualifiedName(package("github.com/jmoiron/sqlx", ""), ["DB", "Tx"], name) and
170+
this = meth.getACall().getArgument(n)
171+
|
172+
name = ["Select", "Get"] and n = 1
173+
or
174+
name = ["MustExec", "Queryx", "NamedExec", "NamedQuery"] and n = 0
175+
)
176+
}
177+
}
164178
}
165179

166180
/**

go/ql/test/library-tests/semmle/go/frameworks/SQL/Sqlx/QueryString.expected

Lines changed: 0 additions & 3 deletions
This file was deleted.

go/ql/test/library-tests/semmle/go/frameworks/SQL/Sqlx/QueryString.ql

Lines changed: 0 additions & 60 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
| sqlx.go:15:17:15:25 | untrusted |
2+
| sqlx.go:16:14:16:22 | untrusted |
3+
| sqlx.go:17:14:17:22 | untrusted |
4+
| sqlx.go:18:12:18:20 | untrusted |
5+
| sqlx.go:19:15:19:23 | untrusted |
6+
| sqlx.go:20:16:20:24 | untrusted |
7+
| sqlx.go:23:17:23:25 | untrusted |
8+
| sqlx.go:24:14:24:22 | untrusted |
9+
| sqlx.go:25:14:25:22 | untrusted |
10+
| sqlx.go:26:12:26:20 | untrusted |
11+
| sqlx.go:27:15:27:23 | untrusted |
12+
| sqlx.go:28:16:28:24 | untrusted |

go/ql/test/library-tests/semmle/go/frameworks/SQL/Sqlx/sqlx.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,19 @@ func main() {
1212

1313
db := sqlx.DB{}
1414
untrusted := getUntrustedString()
15-
db.Select(nil, untrusted) // $ querystring=untrusted
16-
db.Get(nil, untrusted) // $ querystring=untrusted
17-
db.MustExec(untrusted) // $ querystring=untrusted
18-
db.Queryx(untrusted) // $ querystring=untrusted
19-
db.NamedExec(untrusted, nil) // $ querystring=untrusted
20-
db.NamedQuery(untrusted, nil) // $ querystring=untrusted
15+
db.Select(nil, untrusted)
16+
db.Get(nil, untrusted)
17+
db.MustExec(untrusted)
18+
db.Queryx(untrusted)
19+
db.NamedExec(untrusted, nil)
20+
db.NamedQuery(untrusted, nil)
2121

2222
tx := sqlx.Tx{}
23-
tx.Select(nil, untrusted) // $ querystring=untrusted
24-
tx.Get(nil, untrusted) // $ querystring=untrusted
25-
tx.MustExec(untrusted) // $ querystring=untrusted
26-
tx.Queryx(untrusted) // $ querystring=untrusted
27-
tx.NamedExec(untrusted, nil) // $ querystring=untrusted
28-
tx.NamedQuery(untrusted, nil) // $ querystring=untrusted
23+
tx.Select(nil, untrusted)
24+
tx.Get(nil, untrusted)
25+
tx.MustExec(untrusted)
26+
tx.Queryx(untrusted)
27+
tx.NamedExec(untrusted, nil)
28+
tx.NamedQuery(untrusted, nil)
2929

3030
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import go
2+
3+
from SQL::QueryString qs
4+
select qs

0 commit comments

Comments
 (0)