-
Notifications
You must be signed in to change notification settings - Fork 14
/
defaultSpec.json
81 lines (79 loc) · 1.76 KB
/
defaultSpec.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
// TODO: when to use recursive?
{
"main": "REPLACE ME ONCE LOADED!!!!!",
"tracking": "SourcedBoolean",
"sources": [
// TODO: Recursive tainting on `fs`?
{ // Calls to fs.readFileSync
"type": "functionReturn",
"name": "readFileSync"
},
{ // Calls to fs.readFile
"type": "functionReturn",
"name": "readFile"
},
{ // Process arguments
"type": "variable",
"name": "process",
"config": {
"recursive": true
}
}
// TODO: process.stdin (recursive)
// TODO: readline module (recursive)
// TODO: HTTP requests with recursive tainting
// As seen here: https://nodejs.dev/learn/get-http-request-body-data-using-nodejs
],
"sinks": [
{ // Calls to exec
"type": "functionInvocation",
"name": "exec",
"config": {
"recursive": true
}
},
{ // Calls to `eval` in JavaScript
"type": "functionEnter",
"location": {
"fileName": "eval"
},
"config": {
"recursive": true
}
},
{ // Calls to fs.writeFileSync
"type": "functionInvocation",
"name": "writeFileSync",
"config": {
"recursive": true
}
},
{ // Calls to fs.writeFile
"type": "functionInvocation",
"name": "writeFile",
"config": {
"recursive": true
}
},
{ // Calls to fs.appendFileSync
"type": "functionInvocation",
"name": "appendFileSync",
"config": {
"recursive": true
}
},
{ // Calls to fs.appendFile
"type": "functionInvocation",
"name": "appendFile",
"config": {
"recursive": true
}
}
],
"sanitizers": [
{ // JSON.stringify
"type": "builtin",
"name": "stringify"
}
]
}