This repository was archived by the owner on Aug 25, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsemgrep_1-1.yaml
47 lines (47 loc) · 1.7 KB
/
semgrep_1-1.yaml
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
rules:
- id: user-controllable-filepath
message: Введите дополнительную обработку имён загружаемых файлов или автоматическую генерацию имён, иначе пользователь сможет внедрить в имя файла синтаксическую конструкцию для доступа к родительским директориям.
languages: [python]
severity: WARNING
metadata:
cwe:
- "CWE-23: Relative Path Traversal"
category: security
patterns:
- pattern-either:
- pattern: |
$VAR = $REQ.files[$NAME]
...
- pattern: |
$VAR = files[$NAME]
...
- pattern-either:
- pattern: open($NEWPATH)
- pattern: open($NEWPATH, ...)
- pattern: $FILE.save($NEWPATH)
- metavariable-pattern:
metavariable: $NEWPATH
patterns:
- pattern-either:
- pattern: $VAR.$FILENAME
- pattern: |
"..." + $VAR.$FILENAME
- pattern: |
$VAR.$FILENAME + "..."
- pattern: |
"..." + $VAR.$FILENAME + "..."
- pattern: |
"...".format($VAR.$FILENAME)
- pattern: |
"...".format($VAR.$FILENAME, ...)
- pattern: |
"...".format(..., $VAR.$FILENAME)
- pattern: |
"...".format(..., $VAR.$FILENAME, ...)
- pattern: |
"..." % $VAR.$FILENAME
- pattern: |
f"...{$VAR.$FILENAME}..."
- metavariable-regex:
metavariable: $FILENAME
regex: (filename|name)