Skip to content

Commit 42604eb

Browse files
committed
Added MaD for global firebase variable.
1 parent 9842d1d commit 42604eb

File tree

4 files changed

+10
-2
lines changed

4 files changed

+10
-2
lines changed

javascript/ql/lib/ext/firebase.model.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ extensions:
44
extensible: typeModel
55
data:
66
- ["FirebaseDBRef", "firebase/app", "Member[database].ReturnValue"]
7+
- ["firebase/app", "global", "Member[firebase]"]
78
- ["FirebaseDBRef", "FirebaseDBRef", "Member[ref,refFromURL].ReturnValue"]
89
- ["FirebaseDBRef", "FirebaseDBRef", "Member[child,once,on,push,set,then].ReturnValue"]
910
- ["FirebaseDBRef", "FirebaseDBRef", "Member[ref,root,parent,before,after]"]

javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
| express.js:20:34:20:38 | taint | express.js:19:17:19:35 | req.param("wobble") | express.js:20:34:20:38 | taint | This code execution depends on a $@. | express.js:19:17:19:35 | req.param("wobble") | user-provided value |
2828
| express.js:36:15:36:19 | taint | express.js:27:17:27:35 | req.param("wobble") | express.js:36:15:36:19 | taint | This code execution depends on a $@. | express.js:27:17:27:35 | req.param("wobble") | user-provided value |
2929
| express.js:43:10:43:12 | msg | express.js:42:30:42:32 | msg | express.js:43:10:43:12 | msg | This code execution depends on a $@. | express.js:42:30:42:32 | msg | user-provided value |
30+
| firebase-server2.js:4:10:4:23 | snapshot.val() | firebase-server2.js:4:10:4:23 | snapshot.val() | firebase-server2.js:4:10:4:23 | snapshot.val() | This code execution depends on a $@. | firebase-server2.js:4:10:4:23 | snapshot.val() | user-provided value |
31+
| firebase-server2.js:8:14:8:33 | followSnapshot.val() | firebase-server2.js:8:14:8:33 | followSnapshot.val() | firebase-server2.js:8:14:8:33 | followSnapshot.val() | This code execution depends on a $@. | firebase-server2.js:8:14:8:33 | followSnapshot.val() | user-provided value |
3032
| firebase-server.js:7:10:7:16 | x.val() | firebase-server.js:7:10:7:16 | x.val() | firebase-server.js:7:10:7:16 | x.val() | This code execution depends on a $@. | firebase-server.js:7:10:7:16 | x.val() | user-provided value |
3133
| firebase-server.js:8:10:8:22 | x.exportVal() | firebase-server.js:8:10:8:22 | x.exportVal() | firebase-server.js:8:10:8:22 | x.exportVal() | This code execution depends on a $@. | firebase-server.js:8:10:8:22 | x.exportVal() | user-provided value |
3234
| firebase-server.js:10:14:10:33 | parentSnapshot.val() | firebase-server.js:10:14:10:33 | parentSnapshot.val() | firebase-server.js:10:14:10:33 | parentSnapshot.val() | This code execution depends on a $@. | firebase-server.js:10:14:10:33 | parentSnapshot.val() | user-provided value |
@@ -158,6 +160,8 @@ nodes
158160
| express.js:36:15:36:19 | taint | semmle.label | taint |
159161
| express.js:42:30:42:32 | msg | semmle.label | msg |
160162
| express.js:43:10:43:12 | msg | semmle.label | msg |
163+
| firebase-server2.js:4:10:4:23 | snapshot.val() | semmle.label | snapshot.val() |
164+
| firebase-server2.js:8:14:8:33 | followSnapshot.val() | semmle.label | followSnapshot.val() |
161165
| firebase-server.js:7:10:7:16 | x.val() | semmle.label | x.val() |
162166
| firebase-server.js:8:10:8:22 | x.exportVal() | semmle.label | x.exportVal() |
163167
| firebase-server.js:10:14:10:33 | parentSnapshot.val() | semmle.label | parentSnapshot.val() |

javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ nodes
8282
| express.js:36:15:36:19 | taint | semmle.label | taint |
8383
| express.js:42:30:42:32 | msg | semmle.label | msg |
8484
| express.js:43:10:43:12 | msg | semmle.label | msg |
85+
| firebase-server2.js:4:10:4:23 | snapshot.val() | semmle.label | snapshot.val() |
86+
| firebase-server2.js:8:14:8:33 | followSnapshot.val() | semmle.label | followSnapshot.val() |
8587
| firebase-server.js:7:10:7:16 | x.val() | semmle.label | x.val() |
8688
| firebase-server.js:8:10:8:22 | x.exportVal() | semmle.label | x.exportVal() |
8789
| firebase-server.js:10:14:10:33 | parentSnapshot.val() | semmle.label | parentSnapshot.val() |
@@ -95,6 +97,7 @@ nodes
9597
| firebase-server.js:33:25:33:44 | statusSnapshot.val() | semmle.label | statusSnapshot.val() |
9698
| firebase-server.js:44:12:44:30 | childSnapshot.val() | semmle.label | childSnapshot.val() |
9799
| firebase-server.js:55:10:55:19 | snap.val() | semmle.label | snap.val() |
100+
| firebase-server.js:70:12:70:21 | snap.val() | semmle.label | snap.val() |
98101
| module.js:9:16:9:29 | req.query.code | semmle.label | req.query.code |
99102
| module.js:11:17:11:30 | req.query.code | semmle.label | req.query.code |
100103
| react-native.js:7:7:7:33 | tainted | semmle.label | tainted |
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
function globalFirebaseUsage() {
22
var usersRef = firebase.database().ref('users');
33
usersRef.on('child_added', function(snapshot) {
4-
eval(snapshot.val()); // $ MISSING: Alert[js/code-injection]
4+
eval(snapshot.val()); // $ Alert[js/code-injection]
55
var followUserRef = firebase.database().ref('followers/' + uid + '/' + this.currentUid);
66

77
followUserRef.on('value', function(followSnapshot) {
8-
eval(followSnapshot.val()); // $ MISSING: Alert[js/code-injection]
8+
eval(followSnapshot.val()); // $ Alert[js/code-injection]
99
});
1010
});
1111
};

0 commit comments

Comments
 (0)