@runsec/mcp 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +578 -0
- package/package.json +43 -0
- package/src/rules/data/rule-compliance-map.json +43563 -0
- package/src/rules/data/semgrep-rules/README-taint-overlays.md +21 -0
- package/src/rules/data/semgrep-rules/advanced-agent-cloud.yaml +802 -0
- package/src/rules/data/semgrep-rules/app-logic.yaml +445 -0
- package/src/rules/data/semgrep-rules/auth-keycloak.yaml +831 -0
- package/src/rules/data/semgrep-rules/browser-agent.yaml +260 -0
- package/src/rules/data/semgrep-rules/cloud-secrets.yaml +316 -0
- package/src/rules/data/semgrep-rules/csharp-dotnet.yaml +4864 -0
- package/src/rules/data/semgrep-rules/desktop-electron-pro.yaml +30 -0
- package/src/rules/data/semgrep-rules/desktop-vsto-suite.yaml +2759 -0
- package/src/rules/data/semgrep-rules/devops-security.yaml +393 -0
- package/src/rules/data/semgrep-rules/domain-access-management.yaml +1023 -0
- package/src/rules/data/semgrep-rules/domain-data-privacy.yaml +852 -0
- package/src/rules/data/semgrep-rules/domain-input-validation.yaml +2894 -0
- package/src/rules/data/semgrep-rules/domain-platform-hardening.yaml +1715 -0
- package/src/rules/data/semgrep-rules/ds-ml-security.yaml +2431 -0
- package/src/rules/data/semgrep-rules/fastapi-async.yaml +5953 -0
- package/src/rules/data/semgrep-rules/frontend-react.yaml +4035 -0
- package/src/rules/data/semgrep-rules/frontend-security.yaml +200 -0
- package/src/rules/data/semgrep-rules/go-core.yaml +4959 -0
- package/src/rules/data/semgrep-rules/hft-cpp-security.yaml +631 -0
- package/src/rules/data/semgrep-rules/infra-k8s-helm.yaml +4968 -0
- package/src/rules/data/semgrep-rules/integration-security.yaml +2362 -0
- package/src/rules/data/semgrep-rules/java-enterprise.yaml +14756 -0
- package/src/rules/data/semgrep-rules/java-spring.yaml +397 -0
- package/src/rules/data/semgrep-rules/license-compliance.yaml +186 -0
- package/src/rules/data/semgrep-rules/mobile-flutter.yaml +37 -0
- package/src/rules/data/semgrep-rules/mobile-security.yaml +721 -0
- package/src/rules/data/semgrep-rules/nodejs-nestjs.yaml +5164 -0
- package/src/rules/data/semgrep-rules/nodejs-security.yaml +326 -0
- package/src/rules/data/semgrep-rules/observability.yaml +381 -0
- package/src/rules/data/semgrep-rules/php-security.yaml +3601 -0
- package/src/rules/data/semgrep-rules/python-backend-pro.yaml +30 -0
- package/src/rules/data/semgrep-rules/python-django.yaml +181 -0
- package/src/rules/data/semgrep-rules/python-security.yaml +284 -0
- package/src/rules/data/semgrep-rules/ru-regulatory.yaml +496 -0
- package/src/rules/data/semgrep-rules/ruby-rails.yaml +3078 -0
- package/src/rules/data/semgrep-rules/rust-security.yaml +2701 -0
|
@@ -0,0 +1,1715 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: runsec.domain-platform-hardening.mob-001
|
|
3
|
+
metadata:
|
|
4
|
+
runsec_version: v1.0
|
|
5
|
+
confidence: |-
|
|
6
|
+
0.9
|
|
7
|
+
exploit_scenario: |-
|
|
8
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
9
|
+
fix_template: |-
|
|
10
|
+
Удалить bypass, включить pinning/strict TLS validation.
|
|
11
|
+
pattern-either:
|
|
12
|
+
- pattern: |-
|
|
13
|
+
badCertificateCallback => true
|
|
14
|
+
- pattern-regex: 'Vulnerable:\\s*MOB\\-001\\b'
|
|
15
|
+
message: |-
|
|
16
|
+
RunSec Detection [MOB-001]: Mobile SAR
|
|
17
|
+
languages:
|
|
18
|
+
- generic
|
|
19
|
+
severity: WARNING
|
|
20
|
+
- id: runsec.domain-platform-hardening.mob-010
|
|
21
|
+
metadata:
|
|
22
|
+
runsec_version: v1.0
|
|
23
|
+
confidence: |-
|
|
24
|
+
0.9
|
|
25
|
+
exploit_scenario: |-
|
|
26
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
27
|
+
fix_template: |-
|
|
28
|
+
Никогда не печатать токены, даже в debug.
|
|
29
|
+
pattern-either:
|
|
30
|
+
- pattern: |-
|
|
31
|
+
print('token - $token')
|
|
32
|
+
- pattern-regex: 'Vulnerable:\\s*MOB\\-010\\b'
|
|
33
|
+
message: |-
|
|
34
|
+
RunSec Detection [MOB-010]: Mobile SAR
|
|
35
|
+
languages:
|
|
36
|
+
- generic
|
|
37
|
+
severity: WARNING
|
|
38
|
+
- id: runsec.domain-platform-hardening.mob-021
|
|
39
|
+
metadata:
|
|
40
|
+
runsec_version: v1.0
|
|
41
|
+
confidence: |-
|
|
42
|
+
0.9
|
|
43
|
+
exploit_scenario: |-
|
|
44
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
45
|
+
fix_template: |-
|
|
46
|
+
Включить FLAG_SECURE на чувствительных экранах.
|
|
47
|
+
pattern-either:
|
|
48
|
+
- pattern: |-
|
|
49
|
+
Нет FLAG_SECURE в Android activity
|
|
50
|
+
- pattern-regex: 'Vulnerable:\\s*MOB\\-021\\b'
|
|
51
|
+
message: |-
|
|
52
|
+
RunSec Detection [MOB-021]: Mobile SAR
|
|
53
|
+
languages:
|
|
54
|
+
- generic
|
|
55
|
+
severity: WARNING
|
|
56
|
+
- id: runsec.domain-platform-hardening.dsk-100
|
|
57
|
+
metadata:
|
|
58
|
+
runsec_version: v1.0
|
|
59
|
+
confidence: |-
|
|
60
|
+
0.9
|
|
61
|
+
exploit_scenario: |-
|
|
62
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
63
|
+
fix_template: |-
|
|
64
|
+
Запрет string-exec, передача данных через безопасный IPC.
|
|
65
|
+
pattern-either:
|
|
66
|
+
- pattern: |-
|
|
67
|
+
executeJavaScript(...userInput...)
|
|
68
|
+
- pattern-regex: 'Vulnerable:\\s*DSK\\-100\\b'
|
|
69
|
+
message: |-
|
|
70
|
+
RunSec Detection [DSK-100]: Desktop SAR
|
|
71
|
+
languages:
|
|
72
|
+
- generic
|
|
73
|
+
severity: WARNING
|
|
74
|
+
- id: runsec.domain-platform-hardening.dsk-105
|
|
75
|
+
metadata:
|
|
76
|
+
runsec_version: v1.0
|
|
77
|
+
confidence: |-
|
|
78
|
+
0.9
|
|
79
|
+
exploit_scenario: |-
|
|
80
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
81
|
+
fix_template: |-
|
|
82
|
+
Использовать ipcMain.handle + schema validation + authz.
|
|
83
|
+
pattern-either:
|
|
84
|
+
- pattern: |-
|
|
85
|
+
ipcMain.on(...) на критическом канале
|
|
86
|
+
- pattern-regex: 'Vulnerable:\\s*DSK\\-105\\b'
|
|
87
|
+
message: |-
|
|
88
|
+
RunSec Detection [DSK-105]: Desktop SAR
|
|
89
|
+
languages:
|
|
90
|
+
- generic
|
|
91
|
+
severity: WARNING
|
|
92
|
+
- id: runsec.domain-platform-hardening.dsk-110
|
|
93
|
+
metadata:
|
|
94
|
+
runsec_version: v1.0
|
|
95
|
+
confidence: |-
|
|
96
|
+
0.9
|
|
97
|
+
exploit_scenario: |-
|
|
98
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
99
|
+
fix_template: |-
|
|
100
|
+
Обновление зависимости + hardening bootstrap.
|
|
101
|
+
pattern-either:
|
|
102
|
+
- pattern: |-
|
|
103
|
+
xlsx ниже безопасной версии
|
|
104
|
+
- pattern-regex: 'Vulnerable:\\s*DSK\\-110\\b'
|
|
105
|
+
message: |-
|
|
106
|
+
RunSec Detection [DSK-110]: Desktop SAR
|
|
107
|
+
languages:
|
|
108
|
+
- generic
|
|
109
|
+
severity: WARNING
|
|
110
|
+
- id: runsec.domain-platform-hardening.njs-017
|
|
111
|
+
metadata:
|
|
112
|
+
runsec_version: v1.0
|
|
113
|
+
confidence: |-
|
|
114
|
+
0.9
|
|
115
|
+
exploit_scenario: |-
|
|
116
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
117
|
+
fix_template: |-
|
|
118
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
119
|
+
pattern-either:
|
|
120
|
+
- pattern: |-
|
|
121
|
+
git dep без lock/integrity
|
|
122
|
+
- pattern-regex: 'Vulnerable:\\s*NJS\\-017\\b'
|
|
123
|
+
message: |-
|
|
124
|
+
RunSec Detection [NJS-017]: Supply Chain
|
|
125
|
+
languages:
|
|
126
|
+
- generic
|
|
127
|
+
severity: WARNING
|
|
128
|
+
- id: runsec.domain-platform-hardening.njs-018
|
|
129
|
+
metadata:
|
|
130
|
+
runsec_version: v1.0
|
|
131
|
+
confidence: |-
|
|
132
|
+
0.9
|
|
133
|
+
exploit_scenario: |-
|
|
134
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
135
|
+
fix_template: |-
|
|
136
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
137
|
+
pattern-either:
|
|
138
|
+
- pattern: |-
|
|
139
|
+
X-Powered-By открыт
|
|
140
|
+
- pattern-regex: 'Vulnerable:\\s*NJS\\-018\\b'
|
|
141
|
+
message: |-
|
|
142
|
+
RunSec Detection [NJS-018]: HTTP Hardening
|
|
143
|
+
languages:
|
|
144
|
+
- generic
|
|
145
|
+
severity: WARNING
|
|
146
|
+
- id: runsec.domain-platform-hardening.njs-033
|
|
147
|
+
metadata:
|
|
148
|
+
runsec_version: v1.0
|
|
149
|
+
confidence: |-
|
|
150
|
+
0.9
|
|
151
|
+
exploit_scenario: |-
|
|
152
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
153
|
+
fix_template: |-
|
|
154
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
155
|
+
pattern-either:
|
|
156
|
+
- pattern: |-
|
|
157
|
+
rejectUnauthorized: false
|
|
158
|
+
- pattern-regex: 'Vulnerable:\\s*NJS\\-033\\b'
|
|
159
|
+
message: |-
|
|
160
|
+
RunSec Detection [NJS-033]: TLS Hardening
|
|
161
|
+
languages:
|
|
162
|
+
- generic
|
|
163
|
+
severity: WARNING
|
|
164
|
+
- id: runsec.domain-platform-hardening.inf-200
|
|
165
|
+
metadata:
|
|
166
|
+
runsec_version: v1.0
|
|
167
|
+
confidence: |-
|
|
168
|
+
0.9
|
|
169
|
+
exploit_scenario: |-
|
|
170
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
171
|
+
fix_template: |-
|
|
172
|
+
Вынести персоналии в защищенный справочник и role mapping.
|
|
173
|
+
pattern-either:
|
|
174
|
+
- pattern: |-
|
|
175
|
+
В коде зашиты ФИО/логины сотрудников
|
|
176
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-200\\b'
|
|
177
|
+
message: |-
|
|
178
|
+
RunSec Detection [INF-200]: Infra Risk Report
|
|
179
|
+
languages:
|
|
180
|
+
- generic
|
|
181
|
+
severity: WARNING
|
|
182
|
+
- id: runsec.domain-platform-hardening.inf-201
|
|
183
|
+
metadata:
|
|
184
|
+
runsec_version: v1.0
|
|
185
|
+
confidence: |-
|
|
186
|
+
0.9
|
|
187
|
+
exploit_scenario: |-
|
|
188
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
189
|
+
fix_template: |-
|
|
190
|
+
Обязательные CPU requests/limits по профилю сервиса.
|
|
191
|
+
pattern-either:
|
|
192
|
+
- pattern: |-
|
|
193
|
+
Pod/container без resources.limits.cpu
|
|
194
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-201\\b'
|
|
195
|
+
message: |-
|
|
196
|
+
RunSec Detection [INF-201]: Infra Risk Report
|
|
197
|
+
languages:
|
|
198
|
+
- generic
|
|
199
|
+
severity: WARNING
|
|
200
|
+
- id: runsec.domain-platform-hardening.inf-202
|
|
201
|
+
metadata:
|
|
202
|
+
runsec_version: v1.0
|
|
203
|
+
confidence: |-
|
|
204
|
+
0.9
|
|
205
|
+
exploit_scenario: |-
|
|
206
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
207
|
+
fix_template: |-
|
|
208
|
+
Обязательные memory requests/limits и OOM policy.
|
|
209
|
+
pattern-either:
|
|
210
|
+
- pattern: |-
|
|
211
|
+
Pod/container без resources.limits.memory
|
|
212
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-202\\b'
|
|
213
|
+
message: |-
|
|
214
|
+
RunSec Detection [INF-202]: Infra Risk Report
|
|
215
|
+
languages:
|
|
216
|
+
- generic
|
|
217
|
+
severity: WARNING
|
|
218
|
+
- id: runsec.domain-platform-hardening.inf-203
|
|
219
|
+
metadata:
|
|
220
|
+
runsec_version: v1.0
|
|
221
|
+
confidence: |-
|
|
222
|
+
0.9
|
|
223
|
+
exploit_scenario: |-
|
|
224
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
225
|
+
fix_template: |-
|
|
226
|
+
Вводить maxReplicas + circuit breaker на upstream.
|
|
227
|
+
pattern-either:
|
|
228
|
+
- pattern: |-
|
|
229
|
+
HPA без upper bound
|
|
230
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-203\\b'
|
|
231
|
+
message: |-
|
|
232
|
+
RunSec Detection [INF-203]: Infra Risk Report
|
|
233
|
+
languages:
|
|
234
|
+
- generic
|
|
235
|
+
severity: WARNING
|
|
236
|
+
- id: runsec.domain-platform-hardening.inf-204
|
|
237
|
+
metadata:
|
|
238
|
+
runsec_version: v1.0
|
|
239
|
+
confidence: |-
|
|
240
|
+
0.9
|
|
241
|
+
exploit_scenario: |-
|
|
242
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
243
|
+
fix_template: |-
|
|
244
|
+
Добавить PDB для сохранения SLO при обновлениях/сбоях.
|
|
245
|
+
pattern-either:
|
|
246
|
+
- pattern: |-
|
|
247
|
+
Отсутствует PDB для критических сервисов
|
|
248
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-204\\b'
|
|
249
|
+
message: |-
|
|
250
|
+
RunSec Detection [INF-204]: Infra Risk Report
|
|
251
|
+
languages:
|
|
252
|
+
- generic
|
|
253
|
+
severity: WARNING
|
|
254
|
+
- id: runsec.domain-platform-hardening.inf-205
|
|
255
|
+
metadata:
|
|
256
|
+
runsec_version: v1.0
|
|
257
|
+
confidence: |-
|
|
258
|
+
0.9
|
|
259
|
+
exploit_scenario: |-
|
|
260
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
261
|
+
fix_template: |-
|
|
262
|
+
Настроить readiness/liveness/startup probes.
|
|
263
|
+
pattern-either:
|
|
264
|
+
- pattern: |-
|
|
265
|
+
Нет readiness probe
|
|
266
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-205\\b'
|
|
267
|
+
message: |-
|
|
268
|
+
RunSec Detection [INF-205]: Infra Risk Report
|
|
269
|
+
languages:
|
|
270
|
+
- generic
|
|
271
|
+
severity: WARNING
|
|
272
|
+
- id: runsec.domain-platform-hardening.inf-206
|
|
273
|
+
metadata:
|
|
274
|
+
runsec_version: v1.0
|
|
275
|
+
confidence: |-
|
|
276
|
+
0.9
|
|
277
|
+
exploit_scenario: |-
|
|
278
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
279
|
+
fix_template: |-
|
|
280
|
+
Добавить startup probe с корректным timeout window.
|
|
281
|
+
pattern-either:
|
|
282
|
+
- pattern: |-
|
|
283
|
+
Сервис стартует долго без startup probe
|
|
284
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-206\\b'
|
|
285
|
+
message: |-
|
|
286
|
+
RunSec Detection [INF-206]: Infra Risk Report
|
|
287
|
+
languages:
|
|
288
|
+
- generic
|
|
289
|
+
severity: WARNING
|
|
290
|
+
- id: runsec.domain-platform-hardening.inf-207
|
|
291
|
+
metadata:
|
|
292
|
+
runsec_version: v1.0
|
|
293
|
+
confidence: |-
|
|
294
|
+
0.9
|
|
295
|
+
exploit_scenario: |-
|
|
296
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
297
|
+
fix_template: |-
|
|
298
|
+
Egress allowlist через NetworkPolicy/egress proxy.
|
|
299
|
+
pattern-either:
|
|
300
|
+
- pattern: |-
|
|
301
|
+
workload может ходить куда угодно
|
|
302
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-207\\b'
|
|
303
|
+
message: |-
|
|
304
|
+
RunSec Detection [INF-207]: Infra Risk Report
|
|
305
|
+
languages:
|
|
306
|
+
- generic
|
|
307
|
+
severity: WARNING
|
|
308
|
+
- id: runsec.domain-platform-hardening.inf-208
|
|
309
|
+
metadata:
|
|
310
|
+
runsec_version: v1.0
|
|
311
|
+
confidence: |-
|
|
312
|
+
0.9
|
|
313
|
+
exploit_scenario: |-
|
|
314
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
315
|
+
fix_template: |-
|
|
316
|
+
Использовать digest pinning + controlled updates.
|
|
317
|
+
pattern-either:
|
|
318
|
+
- pattern: |-
|
|
319
|
+
image: app:latest
|
|
320
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-208\\b'
|
|
321
|
+
message: |-
|
|
322
|
+
RunSec Detection [INF-208]: Infra Risk Report
|
|
323
|
+
languages:
|
|
324
|
+
- generic
|
|
325
|
+
severity: WARNING
|
|
326
|
+
- id: runsec.domain-platform-hardening.inf-209
|
|
327
|
+
metadata:
|
|
328
|
+
runsec_version: v1.0
|
|
329
|
+
confidence: |-
|
|
330
|
+
0.9
|
|
331
|
+
exploit_scenario: |-
|
|
332
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
333
|
+
fix_template: |-
|
|
334
|
+
Генерировать и хранить SBOM + provenance attestation.
|
|
335
|
+
pattern-either:
|
|
336
|
+
- pattern: |-
|
|
337
|
+
Нет SBOM к артефактам
|
|
338
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-209\\b'
|
|
339
|
+
message: |-
|
|
340
|
+
RunSec Detection [INF-209]: Infra Risk Report
|
|
341
|
+
languages:
|
|
342
|
+
- generic
|
|
343
|
+
severity: WARNING
|
|
344
|
+
- id: runsec.domain-platform-hardening.inf-210
|
|
345
|
+
metadata:
|
|
346
|
+
runsec_version: v1.0
|
|
347
|
+
confidence: |-
|
|
348
|
+
0.9
|
|
349
|
+
exploit_scenario: |-
|
|
350
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
351
|
+
fix_template: |-
|
|
352
|
+
Включить service mesh mTLS/PKI policy.
|
|
353
|
+
pattern-either:
|
|
354
|
+
- pattern: |-
|
|
355
|
+
mTLS не включен между сервисами
|
|
356
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-210\\b'
|
|
357
|
+
message: |-
|
|
358
|
+
RunSec Detection [INF-210]: Infra Risk Report
|
|
359
|
+
languages:
|
|
360
|
+
- generic
|
|
361
|
+
severity: WARNING
|
|
362
|
+
- id: runsec.domain-platform-hardening.inf-211
|
|
363
|
+
metadata:
|
|
364
|
+
runsec_version: v1.0
|
|
365
|
+
confidence: |-
|
|
366
|
+
0.9
|
|
367
|
+
exploit_scenario: |-
|
|
368
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
369
|
+
fix_template: |-
|
|
370
|
+
Политика ротации и автоматический rollover.
|
|
371
|
+
pattern-either:
|
|
372
|
+
- pattern: |-
|
|
373
|
+
Секреты живут бессрочно
|
|
374
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-211\\b'
|
|
375
|
+
message: |-
|
|
376
|
+
RunSec Detection [INF-211]: Infra Risk Report
|
|
377
|
+
languages:
|
|
378
|
+
- generic
|
|
379
|
+
severity: WARNING
|
|
380
|
+
- id: runsec.domain-platform-hardening.inf-212
|
|
381
|
+
metadata:
|
|
382
|
+
runsec_version: v1.0
|
|
383
|
+
confidence: |-
|
|
384
|
+
0.9
|
|
385
|
+
exploit_scenario: |-
|
|
386
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
387
|
+
fix_template: |-
|
|
388
|
+
Запрет privileged debug в prod namespace.
|
|
389
|
+
pattern-either:
|
|
390
|
+
- pattern: |-
|
|
391
|
+
Debug pod с расширенными правами
|
|
392
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-212\\b'
|
|
393
|
+
message: |-
|
|
394
|
+
RunSec Detection [INF-212]: Infra Risk Report
|
|
395
|
+
languages:
|
|
396
|
+
- generic
|
|
397
|
+
severity: WARNING
|
|
398
|
+
- id: runsec.domain-platform-hardening.inf-213
|
|
399
|
+
metadata:
|
|
400
|
+
runsec_version: v1.0
|
|
401
|
+
confidence: |-
|
|
402
|
+
0.9
|
|
403
|
+
exploit_scenario: |-
|
|
404
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
405
|
+
fix_template: |-
|
|
406
|
+
Immutable config + signed deployment pipeline.
|
|
407
|
+
pattern-either:
|
|
408
|
+
- pattern: |-
|
|
409
|
+
Runtime правит config map в обход CI
|
|
410
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-213\\b'
|
|
411
|
+
message: |-
|
|
412
|
+
RunSec Detection [INF-213]: Infra Risk Report
|
|
413
|
+
languages:
|
|
414
|
+
- generic
|
|
415
|
+
severity: WARNING
|
|
416
|
+
- id: runsec.domain-platform-hardening.inf-214
|
|
417
|
+
metadata:
|
|
418
|
+
runsec_version: v1.0
|
|
419
|
+
confidence: |-
|
|
420
|
+
0.9
|
|
421
|
+
exploit_scenario: |-
|
|
422
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
423
|
+
fix_template: |-
|
|
424
|
+
Ввести ResourceQuota и LimitRange.
|
|
425
|
+
pattern-either:
|
|
426
|
+
- pattern: |-
|
|
427
|
+
Namespace без quota
|
|
428
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-214\\b'
|
|
429
|
+
message: |-
|
|
430
|
+
RunSec Detection [INF-214]: Infra Risk Report
|
|
431
|
+
languages:
|
|
432
|
+
- generic
|
|
433
|
+
severity: WARNING
|
|
434
|
+
- id: runsec.domain-platform-hardening.inf-215
|
|
435
|
+
metadata:
|
|
436
|
+
runsec_version: v1.0
|
|
437
|
+
confidence: |-
|
|
438
|
+
0.9
|
|
439
|
+
exploit_scenario: |-
|
|
440
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
441
|
+
fix_template: |-
|
|
442
|
+
Политика хранения/архивации security logs.
|
|
443
|
+
pattern-either:
|
|
444
|
+
- pattern: |-
|
|
445
|
+
Audit logs без retention SLA
|
|
446
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-215\\b'
|
|
447
|
+
message: |-
|
|
448
|
+
RunSec Detection [INF-215]: Infra Risk Report
|
|
449
|
+
languages:
|
|
450
|
+
- generic
|
|
451
|
+
severity: WARNING
|
|
452
|
+
- id: runsec.domain-platform-hardening.inf-216
|
|
453
|
+
metadata:
|
|
454
|
+
runsec_version: v1.0
|
|
455
|
+
confidence: |-
|
|
456
|
+
0.9
|
|
457
|
+
exploit_scenario: |-
|
|
458
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
459
|
+
fix_template: |-
|
|
460
|
+
Canary + auto rollback on SLO breach.
|
|
461
|
+
pattern-either:
|
|
462
|
+
- pattern: |-
|
|
463
|
+
Deploy без canary/rollback trigger
|
|
464
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-216\\b'
|
|
465
|
+
message: |-
|
|
466
|
+
RunSec Detection [INF-216]: Infra Risk Report
|
|
467
|
+
languages:
|
|
468
|
+
- generic
|
|
469
|
+
severity: WARNING
|
|
470
|
+
- id: runsec.domain-platform-hardening.inf-217
|
|
471
|
+
metadata:
|
|
472
|
+
runsec_version: v1.0
|
|
473
|
+
confidence: |-
|
|
474
|
+
0.9
|
|
475
|
+
exploit_scenario: |-
|
|
476
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
477
|
+
fix_template: |-
|
|
478
|
+
mTLS + authn/authz даже во внутреннем контуре.
|
|
479
|
+
pattern-either:
|
|
480
|
+
- pattern: |-
|
|
481
|
+
/admin endpoint внутри сети без auth
|
|
482
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-217\\b'
|
|
483
|
+
message: |-
|
|
484
|
+
RunSec Detection [INF-217]: Infra Risk Report
|
|
485
|
+
languages:
|
|
486
|
+
- generic
|
|
487
|
+
severity: WARNING
|
|
488
|
+
- id: runsec.domain-platform-hardening.inf-218
|
|
489
|
+
metadata:
|
|
490
|
+
runsec_version: v1.0
|
|
491
|
+
confidence: |-
|
|
492
|
+
0.9
|
|
493
|
+
exploit_scenario: |-
|
|
494
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
495
|
+
fix_template: |-
|
|
496
|
+
Применить baseline профили на namespace/service.
|
|
497
|
+
pattern-either:
|
|
498
|
+
- pattern: |-
|
|
499
|
+
Workload без seccomp/AppArmor profile
|
|
500
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-218\\b'
|
|
501
|
+
message: |-
|
|
502
|
+
RunSec Detection [INF-218]: Infra Risk Report
|
|
503
|
+
languages:
|
|
504
|
+
- generic
|
|
505
|
+
severity: WARNING
|
|
506
|
+
- id: runsec.domain-platform-hardening.inf-219
|
|
507
|
+
metadata:
|
|
508
|
+
runsec_version: v1.0
|
|
509
|
+
confidence: |-
|
|
510
|
+
0.9
|
|
511
|
+
exploit_scenario: |-
|
|
512
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
513
|
+
fix_template: |-
|
|
514
|
+
Изоляция узлов через taints/tolerations/nodeSelector.
|
|
515
|
+
pattern-either:
|
|
516
|
+
- pattern: |-
|
|
517
|
+
Sensitive workload на общих нодах
|
|
518
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-219\\b'
|
|
519
|
+
message: |-
|
|
520
|
+
RunSec Detection [INF-219]: Infra Risk Report
|
|
521
|
+
languages:
|
|
522
|
+
- generic
|
|
523
|
+
severity: WARNING
|
|
524
|
+
- id: runsec.domain-platform-hardening.inf-220
|
|
525
|
+
metadata:
|
|
526
|
+
runsec_version: v1.0
|
|
527
|
+
confidence: |-
|
|
528
|
+
0.9
|
|
529
|
+
exploit_scenario: |-
|
|
530
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
531
|
+
fix_template: |-
|
|
532
|
+
Ввести dedup/throttle и escalation policy.
|
|
533
|
+
pattern-either:
|
|
534
|
+
- pattern: |-
|
|
535
|
+
Alert storm без throttling
|
|
536
|
+
- pattern-regex: 'Vulnerable:\\s*INF\\-220\\b'
|
|
537
|
+
message: |-
|
|
538
|
+
RunSec Detection [INF-220]: Infra Risk Report
|
|
539
|
+
languages:
|
|
540
|
+
- generic
|
|
541
|
+
severity: WARNING
|
|
542
|
+
- id: runsec.domain-platform-hardening.py-024
|
|
543
|
+
metadata:
|
|
544
|
+
runsec_version: v1.0
|
|
545
|
+
confidence: |-
|
|
546
|
+
0.9
|
|
547
|
+
exploit_scenario: |-
|
|
548
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
549
|
+
fix_template: |-
|
|
550
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
551
|
+
pattern-either:
|
|
552
|
+
- pattern: |-
|
|
553
|
+
httpx.Client(verify=False)
|
|
554
|
+
- pattern-regex: 'Vulnerable:\\s*PY\\-024\\b'
|
|
555
|
+
message: |-
|
|
556
|
+
RunSec Detection [PY-024]: TLS hardening
|
|
557
|
+
languages:
|
|
558
|
+
- generic
|
|
559
|
+
severity: WARNING
|
|
560
|
+
- id: runsec.domain-platform-hardening.py-027
|
|
561
|
+
metadata:
|
|
562
|
+
runsec_version: v1.0
|
|
563
|
+
confidence: |-
|
|
564
|
+
0.9
|
|
565
|
+
exploit_scenario: |-
|
|
566
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
567
|
+
fix_template: |-
|
|
568
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
569
|
+
pattern-either:
|
|
570
|
+
- pattern: |-
|
|
571
|
+
limit = int(request.args["limit"]) no cap
|
|
572
|
+
- pattern-regex: 'Vulnerable:\\s*PY\\-027\\b'
|
|
573
|
+
message: |-
|
|
574
|
+
RunSec Detection [PY-027]: Resource abuse prevention
|
|
575
|
+
languages:
|
|
576
|
+
- generic
|
|
577
|
+
severity: WARNING
|
|
578
|
+
- id: runsec.domain-platform-hardening.njs-021
|
|
579
|
+
metadata:
|
|
580
|
+
runsec_version: v1.0
|
|
581
|
+
confidence: |-
|
|
582
|
+
0.9
|
|
583
|
+
exploit_scenario: |-
|
|
584
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
585
|
+
fix_template: |-
|
|
586
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
587
|
+
pattern-either:
|
|
588
|
+
- pattern: |-
|
|
589
|
+
app.use(express.json()) (без limit)
|
|
590
|
+
- pattern-regex: 'Vulnerable:\\s*NJS\\-021\\b'
|
|
591
|
+
message: |-
|
|
592
|
+
RunSec Detection [NJS-021]: OWASP API4 Resource Consumption
|
|
593
|
+
languages:
|
|
594
|
+
- generic
|
|
595
|
+
severity: WARNING
|
|
596
|
+
- id: runsec.domain-platform-hardening.njs-030
|
|
597
|
+
metadata:
|
|
598
|
+
runsec_version: v1.0
|
|
599
|
+
confidence: |-
|
|
600
|
+
0.9
|
|
601
|
+
exploit_scenario: |-
|
|
602
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
603
|
+
fix_template: |-
|
|
604
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
605
|
+
pattern-either:
|
|
606
|
+
- pattern: |-
|
|
607
|
+
app.use(bodyParser.json()) без limit и depth checks
|
|
608
|
+
- pattern-regex: 'Vulnerable:\\s*NJS\\-030\\b'
|
|
609
|
+
message: |-
|
|
610
|
+
RunSec Detection [NJS-030]: API Resource Consumption Defense
|
|
611
|
+
languages:
|
|
612
|
+
- generic
|
|
613
|
+
severity: WARNING
|
|
614
|
+
- id: runsec.domain-platform-hardening.fts-009
|
|
615
|
+
metadata:
|
|
616
|
+
runsec_version: v1.0
|
|
617
|
+
confidence: |-
|
|
618
|
+
0.9
|
|
619
|
+
exploit_scenario: |-
|
|
620
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
621
|
+
fix_template: |-
|
|
622
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
623
|
+
pattern-either:
|
|
624
|
+
- pattern: |-
|
|
625
|
+
<script src="https://cdn.example.com/lib.js"></script>
|
|
626
|
+
- pattern-regex: 'Vulnerable:\\s*FTS\\-009\\b'
|
|
627
|
+
message: |-
|
|
628
|
+
RunSec Detection [FTS-009]: Subresource Integrity (SRI)
|
|
629
|
+
languages:
|
|
630
|
+
- generic
|
|
631
|
+
severity: WARNING
|
|
632
|
+
- id: runsec.domain-platform-hardening.cwe-400-py
|
|
633
|
+
metadata:
|
|
634
|
+
runsec_version: v1.0
|
|
635
|
+
confidence: |-
|
|
636
|
+
0.9
|
|
637
|
+
exploit_scenario: |-
|
|
638
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
639
|
+
fix_template: |-
|
|
640
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
641
|
+
pattern-either:
|
|
642
|
+
- pattern: |-
|
|
643
|
+
re.search(r"(a+)+$", user_input)
|
|
644
|
+
re.match(pattern, user_input)
|
|
645
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-400\\-PY\\b'
|
|
646
|
+
message: |-
|
|
647
|
+
RunSec Detection [CWE-400-PY]: CWE Compliance
|
|
648
|
+
languages:
|
|
649
|
+
- generic
|
|
650
|
+
severity: WARNING
|
|
651
|
+
- id: runsec.domain-platform-hardening.cwe-670-py
|
|
652
|
+
metadata:
|
|
653
|
+
runsec_version: v1.0
|
|
654
|
+
confidence: |-
|
|
655
|
+
0.9
|
|
656
|
+
exploit_scenario: |-
|
|
657
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
658
|
+
fix_template: |-
|
|
659
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
660
|
+
pattern-either:
|
|
661
|
+
- pattern: |-
|
|
662
|
+
temp_path = "/tmp/report.txt"
|
|
663
|
+
open(temp_path, "w")
|
|
664
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-670\\-PY\\b'
|
|
665
|
+
message: |-
|
|
666
|
+
RunSec Detection [CWE-670-PY]: CWE Compliance
|
|
667
|
+
languages:
|
|
668
|
+
- generic
|
|
669
|
+
severity: WARNING
|
|
670
|
+
- id: runsec.domain-platform-hardening.cwe-400-js
|
|
671
|
+
metadata:
|
|
672
|
+
runsec_version: v1.0
|
|
673
|
+
confidence: |-
|
|
674
|
+
0.9
|
|
675
|
+
exploit_scenario: |-
|
|
676
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
677
|
+
fix_template: |-
|
|
678
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
679
|
+
pattern-either:
|
|
680
|
+
- pattern: |-
|
|
681
|
+
const re = /(a+)+$/;
|
|
682
|
+
re.test(userInput)
|
|
683
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-400\\-JS\\b'
|
|
684
|
+
message: |-
|
|
685
|
+
RunSec Detection [CWE-400-JS]: CWE Compliance
|
|
686
|
+
languages:
|
|
687
|
+
- generic
|
|
688
|
+
severity: WARNING
|
|
689
|
+
- id: runsec.domain-platform-hardening.cwe-670-js
|
|
690
|
+
metadata:
|
|
691
|
+
runsec_version: v1.0
|
|
692
|
+
confidence: |-
|
|
693
|
+
0.9
|
|
694
|
+
exploit_scenario: |-
|
|
695
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
696
|
+
fix_template: |-
|
|
697
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
698
|
+
pattern-either:
|
|
699
|
+
- pattern: |-
|
|
700
|
+
const p = "/tmp/" + Date.now() + ".txt";
|
|
701
|
+
fs.writeFileSync(p, data)
|
|
702
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-670\\-JS\\b'
|
|
703
|
+
message: |-
|
|
704
|
+
RunSec Detection [CWE-670-JS]: CWE Compliance
|
|
705
|
+
languages:
|
|
706
|
+
- generic
|
|
707
|
+
severity: WARNING
|
|
708
|
+
- id: runsec.domain-platform-hardening.cwe-755-js
|
|
709
|
+
metadata:
|
|
710
|
+
runsec_version: v1.0
|
|
711
|
+
confidence: |-
|
|
712
|
+
0.9
|
|
713
|
+
exploit_scenario: |-
|
|
714
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
715
|
+
fix_template: |-
|
|
716
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
717
|
+
pattern-either:
|
|
718
|
+
- pattern: |-
|
|
719
|
+
ipcMain.handle("x", async () => { await doCritical(); return ok; })
|
|
720
|
+
doWork().then(saveResult)
|
|
721
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-755\\-JS\\b'
|
|
722
|
+
message: |-
|
|
723
|
+
RunSec Detection [CWE-755-JS]: CWE Compliance
|
|
724
|
+
languages:
|
|
725
|
+
- generic
|
|
726
|
+
severity: WARNING
|
|
727
|
+
- id: runsec.domain-platform-hardening.cwe-295-py
|
|
728
|
+
metadata:
|
|
729
|
+
runsec_version: v1.0
|
|
730
|
+
confidence: |-
|
|
731
|
+
0.9
|
|
732
|
+
exploit_scenario: |-
|
|
733
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
734
|
+
fix_template: |-
|
|
735
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
736
|
+
pattern-either:
|
|
737
|
+
- pattern: |-
|
|
738
|
+
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
|
|
739
|
+
ctx.check_hostname = False
|
|
740
|
+
ctx.verify_mode = ssl.CERT_NONE
|
|
741
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-295\\-PY\\b'
|
|
742
|
+
message: |-
|
|
743
|
+
RunSec Detection [CWE-295-PY]: CWE Compliance - Transport Layer
|
|
744
|
+
languages:
|
|
745
|
+
- generic
|
|
746
|
+
severity: WARNING
|
|
747
|
+
- id: runsec.domain-platform-hardening.cwe-297-py
|
|
748
|
+
metadata:
|
|
749
|
+
runsec_version: v1.0
|
|
750
|
+
confidence: |-
|
|
751
|
+
0.9
|
|
752
|
+
exploit_scenario: |-
|
|
753
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
754
|
+
fix_template: |-
|
|
755
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
756
|
+
pattern-either:
|
|
757
|
+
- pattern: |-
|
|
758
|
+
ssl.SSLContext(ssl.PROTOCOL_TLSv1)
|
|
759
|
+
ssl.SSLContext(ssl.PROTOCOL_SSLv3)
|
|
760
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-297\\-PY\\b'
|
|
761
|
+
message: |-
|
|
762
|
+
RunSec Detection [CWE-297-PY]: CWE Compliance - Transport Layer
|
|
763
|
+
languages:
|
|
764
|
+
- generic
|
|
765
|
+
severity: WARNING
|
|
766
|
+
- id: runsec.domain-platform-hardening.cwe-295-js-env
|
|
767
|
+
metadata:
|
|
768
|
+
runsec_version: v1.0
|
|
769
|
+
confidence: |-
|
|
770
|
+
0.9
|
|
771
|
+
exploit_scenario: |-
|
|
772
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
773
|
+
fix_template: |-
|
|
774
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
775
|
+
pattern-either:
|
|
776
|
+
- pattern: |-
|
|
777
|
+
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
|
|
778
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-295\\-JS\\-ENV\\b'
|
|
779
|
+
message: |-
|
|
780
|
+
RunSec Detection [CWE-295-JS-ENV]: CWE Compliance - Transport Layer
|
|
781
|
+
languages:
|
|
782
|
+
- generic
|
|
783
|
+
severity: WARNING
|
|
784
|
+
- id: runsec.domain-platform-hardening.cwe-295-js-req
|
|
785
|
+
metadata:
|
|
786
|
+
runsec_version: v1.0
|
|
787
|
+
confidence: |-
|
|
788
|
+
0.9
|
|
789
|
+
exploit_scenario: |-
|
|
790
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
791
|
+
fix_template: |-
|
|
792
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
793
|
+
pattern-either:
|
|
794
|
+
- pattern: |-
|
|
795
|
+
https.request({ host, rejectUnauthorized: false })
|
|
796
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-295\\-JS\\-REQ\\b'
|
|
797
|
+
message: |-
|
|
798
|
+
RunSec Detection [CWE-295-JS-REQ]: CWE Compliance - Transport Layer
|
|
799
|
+
languages:
|
|
800
|
+
- generic
|
|
801
|
+
severity: WARNING
|
|
802
|
+
- id: runsec.domain-platform-hardening.cwe-451-py
|
|
803
|
+
metadata:
|
|
804
|
+
runsec_version: v1.0
|
|
805
|
+
confidence: |-
|
|
806
|
+
0.9
|
|
807
|
+
exploit_scenario: |-
|
|
808
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
809
|
+
fix_template: |-
|
|
810
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
811
|
+
pattern-either:
|
|
812
|
+
- pattern: |-
|
|
813
|
+
Отсутствует django.middleware.clickjacking.XFrameOptionsMiddleware в MIDDLEWARE
|
|
814
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-451\\-PY\\b'
|
|
815
|
+
message: |-
|
|
816
|
+
RunSec Detection [CWE-451-PY]: CWE Compliance Final
|
|
817
|
+
languages:
|
|
818
|
+
- generic
|
|
819
|
+
severity: WARNING
|
|
820
|
+
- id: runsec.domain-platform-hardening.cwe-1321-js-json
|
|
821
|
+
metadata:
|
|
822
|
+
runsec_version: v1.0
|
|
823
|
+
confidence: |-
|
|
824
|
+
0.9
|
|
825
|
+
exploit_scenario: |-
|
|
826
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
827
|
+
fix_template: |-
|
|
828
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
829
|
+
pattern-either:
|
|
830
|
+
- pattern: |-
|
|
831
|
+
const obj = JSON.parse(untrusted) без schema validation
|
|
832
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-1321\\-JS\\-JSON\\b'
|
|
833
|
+
message: |-
|
|
834
|
+
RunSec Detection [CWE-1321-JS-JSON]: CWE Compliance Final
|
|
835
|
+
languages:
|
|
836
|
+
- generic
|
|
837
|
+
severity: WARNING
|
|
838
|
+
- id: runsec.domain-platform-hardening.cwe-362-py
|
|
839
|
+
metadata:
|
|
840
|
+
runsec_version: v1.0
|
|
841
|
+
confidence: |-
|
|
842
|
+
0.9
|
|
843
|
+
exploit_scenario: |-
|
|
844
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
845
|
+
fix_template: |-
|
|
846
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
847
|
+
pattern-either:
|
|
848
|
+
- pattern: |-
|
|
849
|
+
balance = get_balance(); await external(); set_balance(balance-amount)
|
|
850
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-362\\-PY\\b'
|
|
851
|
+
message: |-
|
|
852
|
+
RunSec Detection [CWE-362-PY]: CWE Final Certification
|
|
853
|
+
languages:
|
|
854
|
+
- generic
|
|
855
|
+
severity: WARNING
|
|
856
|
+
- id: runsec.domain-platform-hardening.cwe-362-js
|
|
857
|
+
metadata:
|
|
858
|
+
runsec_version: v1.0
|
|
859
|
+
confidence: |-
|
|
860
|
+
0.9
|
|
861
|
+
exploit_scenario: |-
|
|
862
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
863
|
+
fix_template: |-
|
|
864
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
865
|
+
pattern-either:
|
|
866
|
+
- pattern: |-
|
|
867
|
+
const x = cache.get(k); await op(); cache.set(k, x-1)
|
|
868
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-362\\-JS\\b'
|
|
869
|
+
message: |-
|
|
870
|
+
RunSec Detection [CWE-362-JS]: CWE Final Certification
|
|
871
|
+
languages:
|
|
872
|
+
- generic
|
|
873
|
+
severity: WARNING
|
|
874
|
+
- id: runsec.domain-platform-hardening.cwe-451-js
|
|
875
|
+
metadata:
|
|
876
|
+
runsec_version: v1.0
|
|
877
|
+
confidence: |-
|
|
878
|
+
0.9
|
|
879
|
+
exploit_scenario: |-
|
|
880
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
881
|
+
fix_template: |-
|
|
882
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
883
|
+
pattern-either:
|
|
884
|
+
- pattern: |-
|
|
885
|
+
Нет Content-Security-Policy и X-Frame-Options в ответах
|
|
886
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-451\\-JS\\b'
|
|
887
|
+
message: |-
|
|
888
|
+
RunSec Detection [CWE-451-JS]: CWE Final Certification
|
|
889
|
+
languages:
|
|
890
|
+
- generic
|
|
891
|
+
severity: WARNING
|
|
892
|
+
- id: runsec.domain-platform-hardening.cwe-400-py-resource
|
|
893
|
+
metadata:
|
|
894
|
+
runsec_version: v1.0
|
|
895
|
+
confidence: |-
|
|
896
|
+
0.9
|
|
897
|
+
exploit_scenario: |-
|
|
898
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
899
|
+
fix_template: |-
|
|
900
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
901
|
+
pattern-either:
|
|
902
|
+
- pattern: |-
|
|
903
|
+
for item in items: f = open(path)
|
|
904
|
+
for row in stream(): sock = socket.socket()
|
|
905
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-400\\-PY\\-RESOURCE\\b'
|
|
906
|
+
message: |-
|
|
907
|
+
RunSec Detection [CWE-400-PY-RESOURCE]: CWE Compliance Final
|
|
908
|
+
languages:
|
|
909
|
+
- generic
|
|
910
|
+
severity: WARNING
|
|
911
|
+
- id: runsec.domain-platform-hardening.cwe-772-js-buffer
|
|
912
|
+
metadata:
|
|
913
|
+
runsec_version: v1.0
|
|
914
|
+
confidence: |-
|
|
915
|
+
0.9
|
|
916
|
+
exploit_scenario: |-
|
|
917
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
918
|
+
fix_template: |-
|
|
919
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
920
|
+
pattern-either:
|
|
921
|
+
- pattern: |-
|
|
922
|
+
const buf = Buffer.allocUnsafe(1024)
|
|
923
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-772\\-JS\\-BUFFER\\b'
|
|
924
|
+
message: |-
|
|
925
|
+
RunSec Detection [CWE-772-JS-BUFFER]: CWE Compliance Final
|
|
926
|
+
languages:
|
|
927
|
+
- generic
|
|
928
|
+
severity: WARNING
|
|
929
|
+
- id: runsec.domain-platform-hardening.cwe-174-py-canonical
|
|
930
|
+
metadata:
|
|
931
|
+
runsec_version: v1.0
|
|
932
|
+
confidence: |-
|
|
933
|
+
0.9
|
|
934
|
+
exploit_scenario: |-
|
|
935
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
936
|
+
fix_template: |-
|
|
937
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
938
|
+
pattern-either:
|
|
939
|
+
- pattern: |-
|
|
940
|
+
p = p.replace("../","")
|
|
941
|
+
p = normalize(p)
|
|
942
|
+
open(base + "/" + p)
|
|
943
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-174\\-PY\\-CANONICAL\\b'
|
|
944
|
+
message: |-
|
|
945
|
+
RunSec Detection [CWE-174-PY-CANONICAL]: CWE Final Certification
|
|
946
|
+
languages:
|
|
947
|
+
- generic
|
|
948
|
+
severity: WARNING
|
|
949
|
+
- id: runsec.domain-platform-hardening.cwe-174-js-canonical
|
|
950
|
+
metadata:
|
|
951
|
+
runsec_version: v1.0
|
|
952
|
+
confidence: |-
|
|
953
|
+
0.9
|
|
954
|
+
exploit_scenario: |-
|
|
955
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
956
|
+
fix_template: |-
|
|
957
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
958
|
+
pattern-either:
|
|
959
|
+
- pattern: |-
|
|
960
|
+
value = value.replace("../","")
|
|
961
|
+
value = value.replace("//","/")
|
|
962
|
+
fs.readFile(base + "/" + value)
|
|
963
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-174\\-JS\\-CANONICAL\\b'
|
|
964
|
+
message: |-
|
|
965
|
+
RunSec Detection [CWE-174-JS-CANONICAL]: CWE Final Certification
|
|
966
|
+
languages:
|
|
967
|
+
- generic
|
|
968
|
+
severity: WARNING
|
|
969
|
+
- id: runsec.domain-platform-hardening.cwe-116-py-partial-escape
|
|
970
|
+
metadata:
|
|
971
|
+
runsec_version: v1.0
|
|
972
|
+
confidence: |-
|
|
973
|
+
0.9
|
|
974
|
+
exploit_scenario: |-
|
|
975
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
976
|
+
fix_template: |-
|
|
977
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
978
|
+
pattern-either:
|
|
979
|
+
- pattern: |-
|
|
980
|
+
safe = html.replace("<","<").replace(">",">")
|
|
981
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-116\\-PY\\-PARTIAL\\-ESCAPE\\b'
|
|
982
|
+
message: |-
|
|
983
|
+
RunSec Detection [CWE-116-PY-PARTIAL-ESCAPE]: CWE Final Certification
|
|
984
|
+
languages:
|
|
985
|
+
- generic
|
|
986
|
+
severity: WARNING
|
|
987
|
+
- id: runsec.domain-platform-hardening.cwe-116-js-partial-escape
|
|
988
|
+
metadata:
|
|
989
|
+
runsec_version: v1.0
|
|
990
|
+
confidence: |-
|
|
991
|
+
0.9
|
|
992
|
+
exploit_scenario: |-
|
|
993
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
994
|
+
fix_template: |-
|
|
995
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
996
|
+
pattern-either:
|
|
997
|
+
- pattern: |-
|
|
998
|
+
safe = input.replace(/</g,"<").replace(/>/g,">")
|
|
999
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-116\\-JS\\-PARTIAL\\-ESCAPE\\b'
|
|
1000
|
+
message: |-
|
|
1001
|
+
RunSec Detection [CWE-116-JS-PARTIAL-ESCAPE]: CWE Final Certification
|
|
1002
|
+
languages:
|
|
1003
|
+
- generic
|
|
1004
|
+
severity: WARNING
|
|
1005
|
+
- id: runsec.domain-platform-hardening.cwe-94-universal-no-sandbox-template
|
|
1006
|
+
metadata:
|
|
1007
|
+
runsec_version: v1.0
|
|
1008
|
+
confidence: |-
|
|
1009
|
+
0.9
|
|
1010
|
+
exploit_scenario: |-
|
|
1011
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1012
|
+
fix_template: |-
|
|
1013
|
+
Для динамического рендеринга избегать исполнения шаблонного кода: использовать статические шаблоны из доверенного каталога и передавать только данные через контекст.
|
|
1014
|
+
pattern-either:
|
|
1015
|
+
- pattern: |-
|
|
1016
|
+
templateEngine.render(userTemplate, data) без sandbox policy
|
|
1017
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-94\\-UNIVERSAL\\-NO\\-SANDBOX\\-TEMPLATE\\b'
|
|
1018
|
+
message: |-
|
|
1019
|
+
RunSec Detection [CWE-94-UNIVERSAL-NO-SANDBOX-TEMPLATE]: CWE Final Certification
|
|
1020
|
+
languages:
|
|
1021
|
+
- generic
|
|
1022
|
+
severity: WARNING
|
|
1023
|
+
- id: runsec.domain-platform-hardening.cwe-20-universal-type-confusion
|
|
1024
|
+
metadata:
|
|
1025
|
+
runsec_version: v1.0
|
|
1026
|
+
confidence: |-
|
|
1027
|
+
0.9
|
|
1028
|
+
exploit_scenario: |-
|
|
1029
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1030
|
+
fix_template: |-
|
|
1031
|
+
Для query-параметров всегда выполнять явное приведение к ожидаемому примитиву (string/number/boolean) и отклонять объекты/операторы.
|
|
1032
|
+
pattern-either:
|
|
1033
|
+
- pattern: |-
|
|
1034
|
+
find(req.body)
|
|
1035
|
+
where: req.query (объекты принимаются как есть)
|
|
1036
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-20\\-UNIVERSAL\\-TYPE\\-CONFUSION\\b'
|
|
1037
|
+
message: |-
|
|
1038
|
+
RunSec Detection [CWE-20-UNIVERSAL-TYPE-CONFUSION]: CWE Final Certification
|
|
1039
|
+
languages:
|
|
1040
|
+
- generic
|
|
1041
|
+
severity: WARNING
|
|
1042
|
+
- id: runsec.domain-platform-hardening.cwe-98-universal-file-infra-control
|
|
1043
|
+
metadata:
|
|
1044
|
+
runsec_version: v1.0
|
|
1045
|
+
confidence: |-
|
|
1046
|
+
0.9
|
|
1047
|
+
exploit_scenario: |-
|
|
1048
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1049
|
+
fix_template: |-
|
|
1050
|
+
Не давать внешнему параметру напрямую выбирать файл/модуль; применять фиксированный маппинг ID -> Filename и deny-by-default для неизвестных значений.
|
|
1051
|
+
pattern-either:
|
|
1052
|
+
- pattern: |-
|
|
1053
|
+
module = req.query.name; load(module)
|
|
1054
|
+
template = request.GET["tpl"]; render(template)
|
|
1055
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-98\\-UNIVERSAL\\-FILE\\-INFRA\\-CONTROL\\b'
|
|
1056
|
+
message: |-
|
|
1057
|
+
RunSec Detection [CWE-98-UNIVERSAL-FILE-INFRA-CONTROL]: CWE Final Certification
|
|
1058
|
+
languages:
|
|
1059
|
+
- generic
|
|
1060
|
+
severity: WARNING
|
|
1061
|
+
- id: runsec.domain-platform-hardening.cwe-942-playwright-websec
|
|
1062
|
+
metadata:
|
|
1063
|
+
runsec_version: v1.0
|
|
1064
|
+
confidence: |-
|
|
1065
|
+
0.9
|
|
1066
|
+
exploit_scenario: |-
|
|
1067
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1068
|
+
fix_template: |-
|
|
1069
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1070
|
+
pattern-either:
|
|
1071
|
+
- pattern: |-
|
|
1072
|
+
chromium.launch(args=["--disable-web-security"])
|
|
1073
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-942\\-PLAYWRIGHT\\-WEBSEC\\b'
|
|
1074
|
+
message: |-
|
|
1075
|
+
RunSec Detection [CWE-942-PLAYWRIGHT-WEBSEC]: CWE Final Certification
|
|
1076
|
+
languages:
|
|
1077
|
+
- generic
|
|
1078
|
+
severity: WARNING
|
|
1079
|
+
- id: runsec.domain-platform-hardening.cwe-295-playwright-https
|
|
1080
|
+
metadata:
|
|
1081
|
+
runsec_version: v1.0
|
|
1082
|
+
confidence: |-
|
|
1083
|
+
0.9
|
|
1084
|
+
exploit_scenario: |-
|
|
1085
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1086
|
+
fix_template: |-
|
|
1087
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1088
|
+
pattern-either:
|
|
1089
|
+
- pattern: |-
|
|
1090
|
+
browser.new_context(ignoreHTTPSErrors=True)
|
|
1091
|
+
newContext({ ignoreHTTPSErrors: true })
|
|
1092
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-295\\-PLAYWRIGHT\\-HTTPS\\b'
|
|
1093
|
+
message: |-
|
|
1094
|
+
RunSec Detection [CWE-295-PLAYWRIGHT-HTTPS]: CWE Final Certification
|
|
1095
|
+
languages:
|
|
1096
|
+
- generic
|
|
1097
|
+
severity: WARNING
|
|
1098
|
+
- id: runsec.domain-platform-hardening.cwe-295-s3-minio-verify
|
|
1099
|
+
metadata:
|
|
1100
|
+
runsec_version: v1.0
|
|
1101
|
+
confidence: |-
|
|
1102
|
+
0.9
|
|
1103
|
+
exploit_scenario: |-
|
|
1104
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1105
|
+
fix_template: |-
|
|
1106
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1107
|
+
pattern-either:
|
|
1108
|
+
- pattern: |-
|
|
1109
|
+
boto3.client("s3", verify=False)
|
|
1110
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-295\\-S3\\-MINIO\\-VERIFY\\b'
|
|
1111
|
+
message: |-
|
|
1112
|
+
RunSec Detection [CWE-295-S3-MINIO-VERIFY]: CWE Final Certification
|
|
1113
|
+
languages:
|
|
1114
|
+
- generic
|
|
1115
|
+
severity: WARNING
|
|
1116
|
+
- id: runsec.domain-platform-hardening.cwe-942-s3-public-acl
|
|
1117
|
+
metadata:
|
|
1118
|
+
runsec_version: v1.0
|
|
1119
|
+
confidence: |-
|
|
1120
|
+
0.9
|
|
1121
|
+
exploit_scenario: |-
|
|
1122
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1123
|
+
fix_template: |-
|
|
1124
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1125
|
+
pattern-either:
|
|
1126
|
+
- pattern: |-
|
|
1127
|
+
put_object(..., ACL="public-read")
|
|
1128
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-942\\-S3\\-PUBLIC\\-ACL\\b'
|
|
1129
|
+
message: |-
|
|
1130
|
+
RunSec Detection [CWE-942-S3-PUBLIC-ACL]: CWE Final Certification
|
|
1131
|
+
languages:
|
|
1132
|
+
- generic
|
|
1133
|
+
severity: WARNING
|
|
1134
|
+
- id: runsec.domain-platform-hardening.cwe-400-gigaam-upload-limits
|
|
1135
|
+
metadata:
|
|
1136
|
+
runsec_version: v1.0
|
|
1137
|
+
confidence: |-
|
|
1138
|
+
0.9
|
|
1139
|
+
exploit_scenario: |-
|
|
1140
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1141
|
+
fix_template: |-
|
|
1142
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1143
|
+
pattern-either:
|
|
1144
|
+
- pattern: |-
|
|
1145
|
+
audio = request.files["audio"] без проверки размера
|
|
1146
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-400\\-GIGAAM\\-UPLOAD\\-LIMITS\\b'
|
|
1147
|
+
message: |-
|
|
1148
|
+
RunSec Detection [CWE-400-GIGAAM-UPLOAD-LIMITS]: CWE Final Certification
|
|
1149
|
+
languages:
|
|
1150
|
+
- generic
|
|
1151
|
+
severity: WARNING
|
|
1152
|
+
- id: runsec.domain-platform-hardening.cwe-400-gigaam-httpx-timeout
|
|
1153
|
+
metadata:
|
|
1154
|
+
runsec_version: v1.0
|
|
1155
|
+
confidence: |-
|
|
1156
|
+
0.9
|
|
1157
|
+
exploit_scenario: |-
|
|
1158
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1159
|
+
fix_template: |-
|
|
1160
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1161
|
+
pattern-either:
|
|
1162
|
+
- pattern: |-
|
|
1163
|
+
httpx.post(transcribe_url, files=...) без timeout
|
|
1164
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-400\\-GIGAAM\\-HTTPX\\-TIMEOUT\\b'
|
|
1165
|
+
message: |-
|
|
1166
|
+
RunSec Detection [CWE-400-GIGAAM-HTTPX-TIMEOUT]: CWE Final Certification
|
|
1167
|
+
languages:
|
|
1168
|
+
- generic
|
|
1169
|
+
severity: WARNING
|
|
1170
|
+
- id: runsec.domain-platform-hardening.cwe-94-electron-webprefs
|
|
1171
|
+
metadata:
|
|
1172
|
+
runsec_version: v1.0
|
|
1173
|
+
confidence: |-
|
|
1174
|
+
0.9
|
|
1175
|
+
exploit_scenario: |-
|
|
1176
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1177
|
+
fix_template: |-
|
|
1178
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
1179
|
+
pattern-either:
|
|
1180
|
+
- pattern: |-
|
|
1181
|
+
new BrowserWindow({ webPreferences: { nodeIntegration: true, contextIsolation: false }})
|
|
1182
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-94\\-ELECTRON\\-WEBPREFS\\b'
|
|
1183
|
+
message: |-
|
|
1184
|
+
RunSec Detection [CWE-94-ELECTRON-WEBPREFS]: CWE Final Certification
|
|
1185
|
+
languages:
|
|
1186
|
+
- generic
|
|
1187
|
+
severity: WARNING
|
|
1188
|
+
- id: runsec.domain-platform-hardening.cwe-250-electron-remote
|
|
1189
|
+
metadata:
|
|
1190
|
+
runsec_version: v1.0
|
|
1191
|
+
confidence: |-
|
|
1192
|
+
0.9
|
|
1193
|
+
exploit_scenario: |-
|
|
1194
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1195
|
+
fix_template: |-
|
|
1196
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
1197
|
+
pattern-either:
|
|
1198
|
+
- pattern: |-
|
|
1199
|
+
const { remote } = require("electron")
|
|
1200
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-250\\-ELECTRON\\-REMOTE\\b'
|
|
1201
|
+
message: |-
|
|
1202
|
+
RunSec Detection [CWE-250-ELECTRON-REMOTE]: CWE Final Certification
|
|
1203
|
+
languages:
|
|
1204
|
+
- generic
|
|
1205
|
+
severity: WARNING
|
|
1206
|
+
- id: runsec.domain-platform-hardening.cwe-94-node-exec-concat
|
|
1207
|
+
metadata:
|
|
1208
|
+
runsec_version: v1.0
|
|
1209
|
+
confidence: |-
|
|
1210
|
+
0.9
|
|
1211
|
+
exploit_scenario: |-
|
|
1212
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1213
|
+
fix_template: |-
|
|
1214
|
+
Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
|
|
1215
|
+
pattern-either:
|
|
1216
|
+
- pattern: |-
|
|
1217
|
+
exec("cmd " + userInput)
|
|
1218
|
+
spawn("sh", ["-c", base + user])
|
|
1219
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-94\\-NODE\\-EXEC\\-CONCAT\\b'
|
|
1220
|
+
message: |-
|
|
1221
|
+
RunSec Detection [CWE-94-NODE-EXEC-CONCAT]: CWE Final Certification
|
|
1222
|
+
languages:
|
|
1223
|
+
- generic
|
|
1224
|
+
severity: WARNING
|
|
1225
|
+
- id: runsec.domain-platform-hardening.cwe-295-boto3-verify-false
|
|
1226
|
+
metadata:
|
|
1227
|
+
runsec_version: v1.0
|
|
1228
|
+
confidence: |-
|
|
1229
|
+
0.9
|
|
1230
|
+
exploit_scenario: |-
|
|
1231
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1232
|
+
fix_template: |-
|
|
1233
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1234
|
+
pattern-either:
|
|
1235
|
+
- pattern: |-
|
|
1236
|
+
boto3.client("s3", verify=False)
|
|
1237
|
+
session.client("s3", verify=False)
|
|
1238
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-295\\-BOTO3\\-VERIFY\\-FALSE\\b'
|
|
1239
|
+
message: |-
|
|
1240
|
+
RunSec Detection [CWE-295-BOTO3-VERIFY-FALSE]: CWE Final Certification
|
|
1241
|
+
languages:
|
|
1242
|
+
- generic
|
|
1243
|
+
severity: WARNING
|
|
1244
|
+
- id: runsec.domain-platform-hardening.cwe-284-boto3-public-acl
|
|
1245
|
+
metadata:
|
|
1246
|
+
runsec_version: v1.0
|
|
1247
|
+
confidence: |-
|
|
1248
|
+
0.9
|
|
1249
|
+
exploit_scenario: |-
|
|
1250
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1251
|
+
fix_template: |-
|
|
1252
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1253
|
+
pattern-either:
|
|
1254
|
+
- pattern: |-
|
|
1255
|
+
create_bucket(..., ACL="public-read")
|
|
1256
|
+
put_bucket_acl(ACL="public-read-write")
|
|
1257
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-284\\-BOTO3\\-PUBLIC\\-ACL\\b'
|
|
1258
|
+
message: |-
|
|
1259
|
+
RunSec Detection [CWE-284-BOTO3-PUBLIC-ACL]: CWE Final Certification
|
|
1260
|
+
languages:
|
|
1261
|
+
- generic
|
|
1262
|
+
severity: WARNING
|
|
1263
|
+
- id: runsec.domain-platform-hardening.cwe-295-boto3-presigned-ttl
|
|
1264
|
+
metadata:
|
|
1265
|
+
runsec_version: v1.0
|
|
1266
|
+
confidence: |-
|
|
1267
|
+
0.9
|
|
1268
|
+
exploit_scenario: |-
|
|
1269
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1270
|
+
fix_template: |-
|
|
1271
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1272
|
+
pattern-either:
|
|
1273
|
+
- pattern: |-
|
|
1274
|
+
generate_presigned_url(..., ExpiresIn=86400)
|
|
1275
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-295\\-BOTO3\\-PRESIGNED\\-TTL\\b'
|
|
1276
|
+
message: |-
|
|
1277
|
+
RunSec Detection [CWE-295-BOTO3-PRESIGNED-TTL]: CWE Final Certification
|
|
1278
|
+
languages:
|
|
1279
|
+
- generic
|
|
1280
|
+
severity: WARNING
|
|
1281
|
+
- id: runsec.domain-platform-hardening.cwe-114-csh-process-start-relative
|
|
1282
|
+
metadata:
|
|
1283
|
+
runsec_version: v1.0
|
|
1284
|
+
confidence: |-
|
|
1285
|
+
0.9
|
|
1286
|
+
exploit_scenario: |-
|
|
1287
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1288
|
+
fix_template: |-
|
|
1289
|
+
Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
|
|
1290
|
+
pattern-either:
|
|
1291
|
+
- pattern: |-
|
|
1292
|
+
Process.Start("app.exe")
|
|
1293
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-114\\-CSH\\-PROCESS\\-START\\-RELATIVE\\b'
|
|
1294
|
+
message: |-
|
|
1295
|
+
RunSec Detection [CWE-114-CSH-PROCESS-START-RELATIVE]: CWE Final Certification
|
|
1296
|
+
languages:
|
|
1297
|
+
- generic
|
|
1298
|
+
severity: WARNING
|
|
1299
|
+
- id: runsec.domain-platform-hardening.cwe-497-csh-sensitive-log
|
|
1300
|
+
metadata:
|
|
1301
|
+
runsec_version: v1.0
|
|
1302
|
+
confidence: |-
|
|
1303
|
+
0.9
|
|
1304
|
+
exploit_scenario: |-
|
|
1305
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1306
|
+
fix_template: |-
|
|
1307
|
+
Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
|
|
1308
|
+
pattern-either:
|
|
1309
|
+
- pattern: |-
|
|
1310
|
+
logger.Info(Environment.GetEnvironmentVariables())
|
|
1311
|
+
logger.Error(ex.ToString()) в публичные логи
|
|
1312
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-497\\-CSH\\-SENSITIVE\\-LOG\\b'
|
|
1313
|
+
message: |-
|
|
1314
|
+
RunSec Detection [CWE-497-CSH-SENSITIVE-LOG]: CWE Final Certification
|
|
1315
|
+
languages:
|
|
1316
|
+
- generic
|
|
1317
|
+
severity: WARNING
|
|
1318
|
+
- id: runsec.domain-platform-hardening.cwe-606-csh-untrusted-loop-bound
|
|
1319
|
+
metadata:
|
|
1320
|
+
runsec_version: v1.0
|
|
1321
|
+
confidence: |-
|
|
1322
|
+
0.9
|
|
1323
|
+
exploit_scenario: |-
|
|
1324
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1325
|
+
fix_template: |-
|
|
1326
|
+
Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
|
|
1327
|
+
pattern-either:
|
|
1328
|
+
- pattern: |-
|
|
1329
|
+
for (int i=0; i<userCount; i++) в unsafe блоке
|
|
1330
|
+
while (n-- > 0) Marshal.Copy(...)
|
|
1331
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-606\\-CSH\\-UNTRUSTED\\-LOOP\\-BOUND\\b'
|
|
1332
|
+
message: |-
|
|
1333
|
+
RunSec Detection [CWE-606-CSH-UNTRUSTED-LOOP-BOUND]: CWE Final Certification
|
|
1334
|
+
languages:
|
|
1335
|
+
- generic
|
|
1336
|
+
severity: WARNING
|
|
1337
|
+
- id: runsec.domain-platform-hardening.cwe-114-csh-dll-search-order
|
|
1338
|
+
metadata:
|
|
1339
|
+
runsec_version: v1.0
|
|
1340
|
+
confidence: |-
|
|
1341
|
+
0.9
|
|
1342
|
+
exploit_scenario: |-
|
|
1343
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1344
|
+
fix_template: |-
|
|
1345
|
+
Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
|
|
1346
|
+
pattern-either:
|
|
1347
|
+
- pattern: |-
|
|
1348
|
+
ThisAddIn_Startup без вызова hardening API
|
|
1349
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-114\\-CSH\\-DLL\\-SEARCH\\-ORDER\\b'
|
|
1350
|
+
message: |-
|
|
1351
|
+
RunSec Detection [CWE-114-CSH-DLL-SEARCH-ORDER]: CWE Final Certification
|
|
1352
|
+
languages:
|
|
1353
|
+
- generic
|
|
1354
|
+
severity: WARNING
|
|
1355
|
+
- id: runsec.domain-platform-hardening.cwe-362-csh-static-async-race
|
|
1356
|
+
metadata:
|
|
1357
|
+
runsec_version: v1.0
|
|
1358
|
+
confidence: |-
|
|
1359
|
+
0.9
|
|
1360
|
+
exploit_scenario: |-
|
|
1361
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1362
|
+
fix_template: |-
|
|
1363
|
+
Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
|
|
1364
|
+
pattern-either:
|
|
1365
|
+
- pattern: |-
|
|
1366
|
+
static int counter;
|
|
1367
|
+
counter++ в async методе/обработчике
|
|
1368
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-362\\-CSH\\-STATIC\\-ASYNC\\-RACE\\b'
|
|
1369
|
+
message: |-
|
|
1370
|
+
RunSec Detection [CWE-362-CSH-STATIC-ASYNC-RACE]: CWE Final Certification
|
|
1371
|
+
languages:
|
|
1372
|
+
- generic
|
|
1373
|
+
severity: WARNING
|
|
1374
|
+
- id: runsec.domain-platform-hardening.cwe-583-csh-metadata-acl-trust
|
|
1375
|
+
metadata:
|
|
1376
|
+
runsec_version: v1.0
|
|
1377
|
+
confidence: |-
|
|
1378
|
+
0.9
|
|
1379
|
+
exploit_scenario: |-
|
|
1380
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1381
|
+
fix_template: |-
|
|
1382
|
+
Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
|
|
1383
|
+
pattern-either:
|
|
1384
|
+
- pattern: |-
|
|
1385
|
+
if (doc.BuiltInDocumentProperties["Category"] == "Admin") ...
|
|
1386
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-583\\-CSH\\-METADATA\\-ACL\\-TRUST\\b'
|
|
1387
|
+
message: |-
|
|
1388
|
+
RunSec Detection [CWE-583-CSH-METADATA-ACL-TRUST]: CWE Final Certification
|
|
1389
|
+
languages:
|
|
1390
|
+
- generic
|
|
1391
|
+
severity: WARNING
|
|
1392
|
+
- id: runsec.domain-platform-hardening.cwe-912-csh-anti-debug-auth
|
|
1393
|
+
metadata:
|
|
1394
|
+
runsec_version: v1.0
|
|
1395
|
+
confidence: |-
|
|
1396
|
+
0.9
|
|
1397
|
+
exploit_scenario: |-
|
|
1398
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1399
|
+
fix_template: |-
|
|
1400
|
+
Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
|
|
1401
|
+
pattern-either:
|
|
1402
|
+
- pattern: |-
|
|
1403
|
+
if (Debugger.IsAttached) bypassAuth = true
|
|
1404
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-912\\-CSH\\-ANTI\\-DEBUG\\-AUTH\\b'
|
|
1405
|
+
message: |-
|
|
1406
|
+
RunSec Detection [CWE-912-CSH-ANTI-DEBUG-AUTH]: CWE Final Certification
|
|
1407
|
+
languages:
|
|
1408
|
+
- generic
|
|
1409
|
+
severity: WARNING
|
|
1410
|
+
- id: runsec.domain-platform-hardening.cwe-749-csh-singleton-public-hooks
|
|
1411
|
+
metadata:
|
|
1412
|
+
runsec_version: v1.0
|
|
1413
|
+
confidence: |-
|
|
1414
|
+
0.9
|
|
1415
|
+
exploit_scenario: |-
|
|
1416
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1417
|
+
fix_template: |-
|
|
1418
|
+
Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
|
|
1419
|
+
pattern-either:
|
|
1420
|
+
- pattern: |-
|
|
1421
|
+
public event Action OnBypass; в singleton
|
|
1422
|
+
- pattern-regex: 'Vulnerable:\\s*CWE\\-749\\-CSH\\-SINGLETON\\-PUBLIC\\-HOOKS\\b'
|
|
1423
|
+
message: |-
|
|
1424
|
+
RunSec Detection [CWE-749-CSH-SINGLETON-PUBLIC-HOOKS]: CWE Final Certification
|
|
1425
|
+
languages:
|
|
1426
|
+
- generic
|
|
1427
|
+
severity: WARNING
|
|
1428
|
+
- id: runsec.domain-platform-hardening.plt-001
|
|
1429
|
+
metadata:
|
|
1430
|
+
runsec_version: v1.0
|
|
1431
|
+
confidence: |-
|
|
1432
|
+
0.9
|
|
1433
|
+
exploit_scenario: |-
|
|
1434
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1435
|
+
fix_template: |-
|
|
1436
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1437
|
+
pattern-either:
|
|
1438
|
+
- pattern: |-
|
|
1439
|
+
open("/tmp/report-" + user_id + ".txt", "w")
|
|
1440
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-001\\b'
|
|
1441
|
+
message: |-
|
|
1442
|
+
RunSec Detection [PLT-001]: CWE-379
|
|
1443
|
+
languages:
|
|
1444
|
+
- generic
|
|
1445
|
+
severity: WARNING
|
|
1446
|
+
- id: runsec.domain-platform-hardening.plt-002
|
|
1447
|
+
metadata:
|
|
1448
|
+
runsec_version: v1.0
|
|
1449
|
+
confidence: |-
|
|
1450
|
+
0.9
|
|
1451
|
+
exploit_scenario: |-
|
|
1452
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1453
|
+
fix_template: |-
|
|
1454
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1455
|
+
pattern-either:
|
|
1456
|
+
- pattern: |-
|
|
1457
|
+
ptr = libc.malloc(n); ptr = libc.malloc(n);
|
|
1458
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-002\\b'
|
|
1459
|
+
message: |-
|
|
1460
|
+
RunSec Detection [PLT-002]: CWE-401
|
|
1461
|
+
languages:
|
|
1462
|
+
- generic
|
|
1463
|
+
severity: WARNING
|
|
1464
|
+
- id: runsec.domain-platform-hardening.plt-003
|
|
1465
|
+
metadata:
|
|
1466
|
+
runsec_version: v1.0
|
|
1467
|
+
confidence: |-
|
|
1468
|
+
0.9
|
|
1469
|
+
exploit_scenario: |-
|
|
1470
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1471
|
+
fix_template: |-
|
|
1472
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1473
|
+
pattern-either:
|
|
1474
|
+
- pattern: |-
|
|
1475
|
+
free(p); free(p);
|
|
1476
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-003\\b'
|
|
1477
|
+
message: |-
|
|
1478
|
+
RunSec Detection [PLT-003]: CWE-415
|
|
1479
|
+
languages:
|
|
1480
|
+
- generic
|
|
1481
|
+
severity: WARNING
|
|
1482
|
+
- id: runsec.domain-platform-hardening.plt-004
|
|
1483
|
+
metadata:
|
|
1484
|
+
runsec_version: v1.0
|
|
1485
|
+
confidence: |-
|
|
1486
|
+
0.9
|
|
1487
|
+
exploit_scenario: |-
|
|
1488
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1489
|
+
fix_template: |-
|
|
1490
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1491
|
+
pattern-either:
|
|
1492
|
+
- pattern: |-
|
|
1493
|
+
cb = lambda: use(ptr); schedule(cb); free(ptr)
|
|
1494
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-004\\b'
|
|
1495
|
+
message: |-
|
|
1496
|
+
RunSec Detection [PLT-004]: CWE-416
|
|
1497
|
+
languages:
|
|
1498
|
+
- generic
|
|
1499
|
+
severity: WARNING
|
|
1500
|
+
- id: runsec.domain-platform-hardening.plt-005
|
|
1501
|
+
metadata:
|
|
1502
|
+
runsec_version: v1.0
|
|
1503
|
+
confidence: |-
|
|
1504
|
+
0.9
|
|
1505
|
+
exploit_scenario: |-
|
|
1506
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1507
|
+
fix_template: |-
|
|
1508
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1509
|
+
pattern-either:
|
|
1510
|
+
- pattern: |-
|
|
1511
|
+
SecurityContext.Admin = plugin.GetSingleton()
|
|
1512
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-005\\b'
|
|
1513
|
+
message: |-
|
|
1514
|
+
RunSec Detection [PLT-005]: CWE-668
|
|
1515
|
+
languages:
|
|
1516
|
+
- generic
|
|
1517
|
+
severity: WARNING
|
|
1518
|
+
- id: runsec.domain-platform-hardening.plt-006
|
|
1519
|
+
metadata:
|
|
1520
|
+
runsec_version: v1.0
|
|
1521
|
+
confidence: |-
|
|
1522
|
+
0.9
|
|
1523
|
+
exploit_scenario: |-
|
|
1524
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1525
|
+
fix_template: |-
|
|
1526
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1527
|
+
pattern-either:
|
|
1528
|
+
- pattern: |-
|
|
1529
|
+
fd = os.open(path, os.O_RDWR); assert os.access(path, os.W_OK)
|
|
1530
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-006\\b'
|
|
1531
|
+
message: |-
|
|
1532
|
+
RunSec Detection [PLT-006]: CWE-403
|
|
1533
|
+
languages:
|
|
1534
|
+
- generic
|
|
1535
|
+
severity: WARNING
|
|
1536
|
+
- id: runsec.domain-platform-hardening.plt-007
|
|
1537
|
+
metadata:
|
|
1538
|
+
runsec_version: v1.0
|
|
1539
|
+
confidence: |-
|
|
1540
|
+
0.9
|
|
1541
|
+
exploit_scenario: |-
|
|
1542
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1543
|
+
fix_template: |-
|
|
1544
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1545
|
+
pattern-either:
|
|
1546
|
+
- pattern: |-
|
|
1547
|
+
while True: chunk += sock.recv(1024*1024) без лимита размера
|
|
1548
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-007\\b'
|
|
1549
|
+
message: |-
|
|
1550
|
+
RunSec Detection [PLT-007]: CWE-405
|
|
1551
|
+
languages:
|
|
1552
|
+
- generic
|
|
1553
|
+
severity: WARNING
|
|
1554
|
+
- id: runsec.domain-platform-hardening.plt-008
|
|
1555
|
+
metadata:
|
|
1556
|
+
runsec_version: v1.0
|
|
1557
|
+
confidence: |-
|
|
1558
|
+
0.9
|
|
1559
|
+
exploit_scenario: |-
|
|
1560
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1561
|
+
fix_template: |-
|
|
1562
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1563
|
+
pattern-either:
|
|
1564
|
+
- pattern: |-
|
|
1565
|
+
if int(user_role) == 1: где user_role="1abc"
|
|
1566
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-008\\b'
|
|
1567
|
+
message: |-
|
|
1568
|
+
RunSec Detection [PLT-008]: CWE-704
|
|
1569
|
+
languages:
|
|
1570
|
+
- generic
|
|
1571
|
+
severity: WARNING
|
|
1572
|
+
- id: runsec.domain-platform-hardening.plt-009
|
|
1573
|
+
metadata:
|
|
1574
|
+
runsec_version: v1.0
|
|
1575
|
+
confidence: |-
|
|
1576
|
+
0.9
|
|
1577
|
+
exploit_scenario: |-
|
|
1578
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1579
|
+
fix_template: |-
|
|
1580
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1581
|
+
pattern-either:
|
|
1582
|
+
- pattern: |-
|
|
1583
|
+
struct.unpack_from(fmt, blob, user_offset) без проверки границ
|
|
1584
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-009\\b'
|
|
1585
|
+
message: |-
|
|
1586
|
+
RunSec Detection [PLT-009]: CWE-125
|
|
1587
|
+
languages:
|
|
1588
|
+
- generic
|
|
1589
|
+
severity: WARNING
|
|
1590
|
+
- id: runsec.domain-platform-hardening.plt-010
|
|
1591
|
+
metadata:
|
|
1592
|
+
runsec_version: v1.0
|
|
1593
|
+
confidence: |-
|
|
1594
|
+
0.9
|
|
1595
|
+
exploit_scenario: |-
|
|
1596
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1597
|
+
fix_template: |-
|
|
1598
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1599
|
+
pattern-either:
|
|
1600
|
+
- pattern: |-
|
|
1601
|
+
if verify_sig(blob) == False: pass
|
|
1602
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-010\\b'
|
|
1603
|
+
message: |-
|
|
1604
|
+
RunSec Detection [PLT-010]: CWE-390
|
|
1605
|
+
languages:
|
|
1606
|
+
- generic
|
|
1607
|
+
severity: WARNING
|
|
1608
|
+
- id: runsec.domain-platform-hardening.plt-011
|
|
1609
|
+
metadata:
|
|
1610
|
+
runsec_version: v1.0
|
|
1611
|
+
confidence: |-
|
|
1612
|
+
0.9
|
|
1613
|
+
exploit_scenario: |-
|
|
1614
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1615
|
+
fix_template: |-
|
|
1616
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1617
|
+
pattern-either:
|
|
1618
|
+
- pattern: |-
|
|
1619
|
+
if user: ... else: raise "unknown user" timing
|
|
1620
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-011\\b'
|
|
1621
|
+
message: |-
|
|
1622
|
+
RunSec Detection [PLT-011]: CWE-203
|
|
1623
|
+
languages:
|
|
1624
|
+
- generic
|
|
1625
|
+
severity: WARNING
|
|
1626
|
+
- id: runsec.domain-platform-hardening.plt-012
|
|
1627
|
+
metadata:
|
|
1628
|
+
runsec_version: v1.0
|
|
1629
|
+
confidence: |-
|
|
1630
|
+
0.9
|
|
1631
|
+
exploit_scenario: |-
|
|
1632
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1633
|
+
fix_template: |-
|
|
1634
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1635
|
+
pattern-either:
|
|
1636
|
+
- pattern: |-
|
|
1637
|
+
items = [None] * (count * row_size) без проверки произведения
|
|
1638
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-012\\b'
|
|
1639
|
+
message: |-
|
|
1640
|
+
RunSec Detection [PLT-012]: CWE-189
|
|
1641
|
+
languages:
|
|
1642
|
+
- generic
|
|
1643
|
+
severity: WARNING
|
|
1644
|
+
- id: runsec.domain-platform-hardening.plt-013
|
|
1645
|
+
metadata:
|
|
1646
|
+
runsec_version: v1.0
|
|
1647
|
+
confidence: |-
|
|
1648
|
+
0.9
|
|
1649
|
+
exploit_scenario: |-
|
|
1650
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1651
|
+
fix_template: |-
|
|
1652
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1653
|
+
pattern-either:
|
|
1654
|
+
- pattern: |-
|
|
1655
|
+
subprocess.call("tools\\migrate " + arg, shell=True)
|
|
1656
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-013\\b'
|
|
1657
|
+
message: |-
|
|
1658
|
+
RunSec Detection [PLT-013]: CWE-428
|
|
1659
|
+
languages:
|
|
1660
|
+
- generic
|
|
1661
|
+
severity: WARNING
|
|
1662
|
+
- id: runsec.domain-platform-hardening.plt-014
|
|
1663
|
+
metadata:
|
|
1664
|
+
runsec_version: v1.0
|
|
1665
|
+
confidence: |-
|
|
1666
|
+
0.9
|
|
1667
|
+
exploit_scenario: |-
|
|
1668
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1669
|
+
fix_template: |-
|
|
1670
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1671
|
+
pattern-either:
|
|
1672
|
+
- pattern: |-
|
|
1673
|
+
if p: use(p); use(p) где p обнулён между вызовами
|
|
1674
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-014\\b'
|
|
1675
|
+
message: |-
|
|
1676
|
+
RunSec Detection [PLT-014]: CWE-476
|
|
1677
|
+
languages:
|
|
1678
|
+
- generic
|
|
1679
|
+
severity: WARNING
|
|
1680
|
+
- id: runsec.domain-platform-hardening.plt-015
|
|
1681
|
+
metadata:
|
|
1682
|
+
runsec_version: v1.0
|
|
1683
|
+
confidence: |-
|
|
1684
|
+
0.9
|
|
1685
|
+
exploit_scenario: |-
|
|
1686
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1687
|
+
fix_template: |-
|
|
1688
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1689
|
+
pattern-either:
|
|
1690
|
+
- pattern: |-
|
|
1691
|
+
if secret == token: для byte buffers
|
|
1692
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-015\\b'
|
|
1693
|
+
message: |-
|
|
1694
|
+
RunSec Detection [PLT-015]: CWE-581
|
|
1695
|
+
languages:
|
|
1696
|
+
- generic
|
|
1697
|
+
severity: WARNING
|
|
1698
|
+
- id: runsec.domain-platform-hardening.plt-016
|
|
1699
|
+
metadata:
|
|
1700
|
+
runsec_version: v1.0
|
|
1701
|
+
confidence: |-
|
|
1702
|
+
0.9
|
|
1703
|
+
exploit_scenario: |-
|
|
1704
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
1705
|
+
fix_template: |-
|
|
1706
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
1707
|
+
pattern-either:
|
|
1708
|
+
- pattern: |-
|
|
1709
|
+
open("app.conf","w").write(secrets) без chmod
|
|
1710
|
+
- pattern-regex: 'Vulnerable:\\s*PLT\\-016\\b'
|
|
1711
|
+
message: |-
|
|
1712
|
+
RunSec Detection [PLT-016]: CWE-276
|
|
1713
|
+
languages:
|
|
1714
|
+
- generic
|
|
1715
|
+
severity: WARNING
|