|
5 | 5 | // This maps internal function names to sink types that we don’t want to end up there
|
6 | 6 |
|
7 | 7 | /**
|
8 |
| - * @var non-empty-array<string, non-empty-list<list<TaintKind::*>>> |
| 8 | + * @var non-empty-array<string, non-empty-list<int-mask-of<TaintKind::*>>> |
9 | 9 | */
|
10 | 10 | return [
|
11 |
| -'exec' => [['shell']], |
12 |
| -'create_function' => [[], ['eval']], |
13 |
| -'file_get_contents' => [['file']], |
14 |
| -'file_put_contents' => [['file']], |
15 |
| -'fopen' => [['file']], |
16 |
| -'unlink' => [['file']], |
17 |
| -'copy' => [['file'], ['file']], |
18 |
| -'file' => [['file']], |
19 |
| -'link' => [['file'], ['file']], |
20 |
| -'mkdir' => [['file']], |
21 |
| -'move_uploaded_file' => [['file'], ['file']], |
22 |
| -'parse_ini_file' => [['file']], |
23 |
| -'chown' => [['file']], |
24 |
| -'lchown' => [['file']], |
25 |
| -'readfile' => [['file']], |
26 |
| -'rename' => [['file'], ['file']], |
27 |
| -'rmdir' => [['file']], |
28 |
| -'header' => [['header']], |
29 |
| -'symlink' => [['file']], |
30 |
| -'tempnam' => [['file']], |
31 |
| -'igbinary_unserialize' => [['unserialize']], |
32 |
| -'ldap_search' => [[], ['ldap'], ['ldap']], |
33 |
| -'mysqli_query' => [[], ['sql']], |
34 |
| -'mysqli::query' => [['sql']], |
35 |
| -'mysqli_real_query' => [[], ['sql']], |
36 |
| -'mysqli::real_query' => [['sql']], |
37 |
| -'mysqli_multi_query' => [[], ['sql']], |
38 |
| -'mysqli::multi_query' => [['sql']], |
39 |
| -'mysqli_prepare' => [[], ['sql']], |
40 |
| -'mysqli::prepare' => [['sql']], |
41 |
| -'mysqli_stmt::__construct' => [[], ['sql']], |
42 |
| -'mysqli_stmt_prepare' => [[], ['sql']], |
43 |
| -'mysqli_stmt::prepare' => [['sql']], |
44 |
| -'passthru' => [['shell']], |
45 |
| -'pcntl_exec' => [['shell']], |
46 |
| -'pg_exec' => [[], ['sql']], |
47 |
| -'pg_prepare' => [[], [], ['sql']], |
48 |
| -'pg_put_line' => [[], ['sql']], |
49 |
| -'pg_query' => [[], ['sql']], |
50 |
| -'pg_query_params' => [[], ['sql']], |
51 |
| -'pg_send_prepare' => [[], [], ['sql']], |
52 |
| -'pg_send_query' => [[], ['sql']], |
53 |
| -'pg_send_query_params' => [[], ['sql'], []], |
54 |
| -'setcookie' => [['cookie'], ['cookie']], |
55 |
| -'shell_exec' => [['shell']], |
56 |
| -'system' => [['shell']], |
57 |
| -'unserialize' => [['unserialize']], |
58 |
| -'popen' => [['shell']], |
59 |
| -'proc_open' => [['shell']], |
60 |
| -'curl_init' => [['ssrf']], |
61 |
| -'curl_setopt' => [[], [], ['ssrf']], |
62 |
| -'getimagesize' => [['ssrf']], |
| 11 | +'exec' => [TaintKind::INPUT_SHELL], |
| 12 | +'create_function' => [0, TaintKind::INPUT_EVAL], |
| 13 | +'file_get_contents' => [TaintKind::INPUT_FILE], |
| 14 | +'file_put_contents' => [TaintKind::INPUT_FILE], |
| 15 | +'fopen' => [TaintKind::INPUT_FILE], |
| 16 | +'unlink' => [TaintKind::INPUT_FILE], |
| 17 | +'copy' => [TaintKind::INPUT_FILE, TaintKind::INPUT_FILE], |
| 18 | +'file' => [TaintKind::INPUT_FILE], |
| 19 | +'link' => [TaintKind::INPUT_FILE, TaintKind::INPUT_FILE], |
| 20 | +'mkdir' => [TaintKind::INPUT_FILE], |
| 21 | +'move_uploaded_file' => [TaintKind::INPUT_FILE, TaintKind::INPUT_FILE], |
| 22 | +'parse_ini_file' => [TaintKind::INPUT_FILE], |
| 23 | +'chown' => [TaintKind::INPUT_FILE], |
| 24 | +'lchown' => [TaintKind::INPUT_FILE], |
| 25 | +'readfile' => [TaintKind::INPUT_FILE], |
| 26 | +'rename' => [TaintKind::INPUT_FILE, TaintKind::INPUT_FILE], |
| 27 | +'rmdir' => [TaintKind::INPUT_FILE], |
| 28 | +'header' => [TaintKind::INPUT_HEADER], |
| 29 | +'symlink' => [TaintKind::INPUT_FILE], |
| 30 | +'tempnam' => [TaintKind::INPUT_FILE], |
| 31 | +'igbinary_unserialize' => [TaintKind::INPUT_UNSERIALIZE], |
| 32 | +'ldap_search' => [0, TaintKind::INPUT_LDAP, TaintKind::INPUT_LDAP], |
| 33 | +'mysqli_query' => [0, TaintKind::INPUT_SQL], |
| 34 | +'mysqli::query' => [TaintKind::INPUT_SQL], |
| 35 | +'mysqli_real_query' => [0, TaintKind::INPUT_SQL], |
| 36 | +'mysqli::real_query' => [TaintKind::INPUT_SQL], |
| 37 | +'mysqli_multi_query' => [0, TaintKind::INPUT_SQL], |
| 38 | +'mysqli::multi_query' => [TaintKind::INPUT_SQL], |
| 39 | +'mysqli_prepare' => [0, TaintKind::INPUT_SQL], |
| 40 | +'mysqli::prepare' => [TaintKind::INPUT_SQL], |
| 41 | +'mysqli_stmt::__construct' => [0, TaintKind::INPUT_SQL], |
| 42 | +'mysqli_stmt_prepare' => [0, TaintKind::INPUT_SQL], |
| 43 | +'mysqli_stmt::prepare' => [TaintKind::INPUT_SQL], |
| 44 | +'passthru' => [TaintKind::INPUT_SHELL], |
| 45 | +'pcntl_exec' => [TaintKind::INPUT_SHELL], |
| 46 | +'pg_exec' => [0, TaintKind::INPUT_SQL], |
| 47 | +'pg_prepare' => [0, 0, TaintKind::INPUT_SQL], |
| 48 | +'pg_put_line' => [0, TaintKind::INPUT_SQL], |
| 49 | +'pg_query' => [0, TaintKind::INPUT_SQL], |
| 50 | +'pg_query_params' => [0, TaintKind::INPUT_SQL], |
| 51 | +'pg_send_prepare' => [0, 0, TaintKind::INPUT_SQL], |
| 52 | +'pg_send_query' => [0, TaintKind::INPUT_SQL], |
| 53 | +'pg_send_query_params' => [0, TaintKind::INPUT_SQL, 0], |
| 54 | +'setcookie' => [TaintKind::INPUT_COOKIE, TaintKind::INPUT_COOKIE], |
| 55 | +'shell_exec' => [TaintKind::INPUT_SHELL], |
| 56 | +'system' => [TaintKind::INPUT_SHELL], |
| 57 | +'unserialize' => [TaintKind::INPUT_UNSERIALIZE], |
| 58 | +'popen' => [TaintKind::INPUT_SHELL], |
| 59 | +'proc_open' => [TaintKind::INPUT_SHELL], |
| 60 | +'curl_init' => [TaintKind::INPUT_SSRF], |
| 61 | +'curl_setopt' => [0, 0, TaintKind::INPUT_SSRF], |
| 62 | +'getimagesize' => [TaintKind::INPUT_SSRF], |
63 | 63 | ];
|
0 commit comments