@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,2362 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: runsec.integration-security.its-001
|
|
3
|
+
metadata:
|
|
4
|
+
runsec_version: v1.0
|
|
5
|
+
confidence: |-
|
|
6
|
+
0.9
|
|
7
|
+
exploit_scenario: |-
|
|
8
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
9
|
+
fix_template: |-
|
|
10
|
+
Использовать authlib.jose.JsonWebKey/jwt.decode с key из JWKS, явные claims_options для iss/aud; запретить verify_signature=False.
|
|
11
|
+
pattern-either:
|
|
12
|
+
- pattern: |-
|
|
13
|
+
jwt.decode(token, options={"verify_signature": False})
|
|
14
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-001\\b'
|
|
15
|
+
message: |-
|
|
16
|
+
RunSec Detection [ITS-001]: CWE-347 OIDC/JWT BCP
|
|
17
|
+
languages:
|
|
18
|
+
- generic
|
|
19
|
+
severity: WARNING
|
|
20
|
+
- id: runsec.integration-security.its-002
|
|
21
|
+
metadata:
|
|
22
|
+
runsec_version: v1.0
|
|
23
|
+
confidence: |-
|
|
24
|
+
0.9
|
|
25
|
+
exploit_scenario: |-
|
|
26
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
27
|
+
fix_template: |-
|
|
28
|
+
Убрать plaintext: AppRole/K8s auth в Vault; для OAuth-клиентов к внешним IdP использовать authlib.integrations (token storage в защищённом хранилище, не в коде).
|
|
29
|
+
pattern-either:
|
|
30
|
+
- pattern: |-
|
|
31
|
+
vault_token = "s.xxxx"
|
|
32
|
+
DB_PASS = "prod-pass"
|
|
33
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-002\\b'
|
|
34
|
+
message: |-
|
|
35
|
+
RunSec Detection [ITS-002]: CWE-798 Vault security model
|
|
36
|
+
languages:
|
|
37
|
+
- generic
|
|
38
|
+
severity: WARNING
|
|
39
|
+
- id: runsec.integration-security.its-003
|
|
40
|
+
metadata:
|
|
41
|
+
runsec_version: v1.0
|
|
42
|
+
confidence: |-
|
|
43
|
+
0.9
|
|
44
|
+
exploit_scenario: |-
|
|
45
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
46
|
+
fix_template: |-
|
|
47
|
+
ESO + backend; секреты для webhook/OAuth подписей хранить в ESO/Vault, не в stringData; ключи HMAC для inbound webhooks — через secret reference.
|
|
48
|
+
pattern-either:
|
|
49
|
+
- pattern: |-
|
|
50
|
+
kind: Secret
|
|
51
|
+
stringData:
|
|
52
|
+
password: plain-text
|
|
53
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-003\\b'
|
|
54
|
+
message: |-
|
|
55
|
+
RunSec Detection [ITS-003]: CWE-522 ESO best practices
|
|
56
|
+
languages:
|
|
57
|
+
- generic
|
|
58
|
+
severity: WARNING
|
|
59
|
+
- id: runsec.integration-security.its-004
|
|
60
|
+
metadata:
|
|
61
|
+
runsec_version: v1.0
|
|
62
|
+
confidence: |-
|
|
63
|
+
0.9
|
|
64
|
+
exploit_scenario: |-
|
|
65
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
66
|
+
fix_template: |-
|
|
67
|
+
Оборачивать исходящие вызовы в circuit breaker + таймауты; для OAuth2 client credentials к внешним API использовать authlib.integrations.httpx_client с лимитами и явной конфигурацией TLS.
|
|
68
|
+
pattern-either:
|
|
69
|
+
- pattern: |-
|
|
70
|
+
resp = requests.post(CLINKER_URL, json=payload)
|
|
71
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-004\\b'
|
|
72
|
+
message: |-
|
|
73
|
+
RunSec Detection [ITS-004]: CWE-400 Resiliency engineering
|
|
74
|
+
languages:
|
|
75
|
+
- generic
|
|
76
|
+
severity: WARNING
|
|
77
|
+
- id: runsec.integration-security.its-005
|
|
78
|
+
metadata:
|
|
79
|
+
runsec_version: v1.0
|
|
80
|
+
confidence: |-
|
|
81
|
+
0.9
|
|
82
|
+
exploit_scenario: |-
|
|
83
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
84
|
+
fix_template: |-
|
|
85
|
+
httpx.Client(timeout=..., limits=Limits(...)); для подписанных исходящих запросов использовать middleware/обёртки с фиксированными лимитами и проверкой сертификата (verify=True).
|
|
86
|
+
pattern-either:
|
|
87
|
+
- pattern: |-
|
|
88
|
+
requests.get(url)
|
|
89
|
+
httpx.AsyncClient()
|
|
90
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-005\\b'
|
|
91
|
+
message: |-
|
|
92
|
+
RunSec Detection [ITS-005]: CWE-400 Reliability patterns (bulkhead/timeout)
|
|
93
|
+
languages:
|
|
94
|
+
- generic
|
|
95
|
+
severity: WARNING
|
|
96
|
+
- id: runsec.integration-security.its-006
|
|
97
|
+
metadata:
|
|
98
|
+
runsec_version: v1.0
|
|
99
|
+
confidence: |-
|
|
100
|
+
0.9
|
|
101
|
+
exploit_scenario: |-
|
|
102
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
103
|
+
fix_template: |-
|
|
104
|
+
Retry с backoff+jitter и circuit state; не повторять запросы с тем же телом без idempotency-key для небезопасных методов.
|
|
105
|
+
pattern-either:
|
|
106
|
+
- pattern: |-
|
|
107
|
+
for _ in range(10): call_api()
|
|
108
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-006\\b'
|
|
109
|
+
message: |-
|
|
110
|
+
RunSec Detection [ITS-006]: CWE-400 Resilience best practices
|
|
111
|
+
languages:
|
|
112
|
+
- generic
|
|
113
|
+
severity: WARNING
|
|
114
|
+
- id: runsec.integration-security.its-007
|
|
115
|
+
metadata:
|
|
116
|
+
runsec_version: v1.0
|
|
117
|
+
confidence: |-
|
|
118
|
+
0.9
|
|
119
|
+
exploit_scenario: |-
|
|
120
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
121
|
+
fix_template: |-
|
|
122
|
+
Заголовок Idempotency-Key + серверная дедупликация; для webhook-ответов после обработки — идемпотентная запись по event_id.
|
|
123
|
+
pattern-either:
|
|
124
|
+
- pattern: |-
|
|
125
|
+
POST /payments/transfer
|
|
126
|
+
# no idempotency key
|
|
127
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-007\\b'
|
|
128
|
+
message: |-
|
|
129
|
+
RunSec Detection [ITS-007]: Payment resiliency controls
|
|
130
|
+
languages:
|
|
131
|
+
- generic
|
|
132
|
+
severity: WARNING
|
|
133
|
+
- id: runsec.integration-security.its-008
|
|
134
|
+
metadata:
|
|
135
|
+
runsec_version: v1.0
|
|
136
|
+
confidence: |-
|
|
137
|
+
0.9
|
|
138
|
+
exploit_scenario: |-
|
|
139
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
140
|
+
fix_template: |-
|
|
141
|
+
Middleware/FastAPI dependency: проверка подписи до парсинга JSON; Python: hmac.compare_digest + секрет из env/ESO; при OAuth/JWS inbound — authlib.jose для проверки JWS; Node: crypto.timingSafeEqual + express middleware.
|
|
142
|
+
pattern-either:
|
|
143
|
+
- pattern: |-
|
|
144
|
+
@app.post("/webhooks/github")
|
|
145
|
+
async def gh_hook(request: Request):
|
|
146
|
+
payload = await request.json()
|
|
147
|
+
return {"ok": True}
|
|
148
|
+
app.post('/webhooks/stripe')(req, res) => { const body = req.body; ... }
|
|
149
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-008\\b'
|
|
150
|
+
message: |-
|
|
151
|
+
RunSec Detection [ITS-008]: CWE-345, CWE-924
|
|
152
|
+
languages:
|
|
153
|
+
- generic
|
|
154
|
+
severity: WARNING
|
|
155
|
+
- id: runsec.integration-security.its-009
|
|
156
|
+
metadata:
|
|
157
|
+
runsec_version: v1.0
|
|
158
|
+
confidence: |-
|
|
159
|
+
0.9
|
|
160
|
+
exploit_scenario: |-
|
|
161
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
162
|
+
fix_template: |-
|
|
163
|
+
Убрать verify=False; задать доверенный bundle/CA; для mTLS — cert=(client_cert, key); OAuth между сервисами — authlib + валидный TLS.
|
|
164
|
+
pattern-either:
|
|
165
|
+
- pattern: |-
|
|
166
|
+
client = httpx.Client(verify=False)
|
|
167
|
+
httpx.get(url, verify=False)
|
|
168
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-009\\b'
|
|
169
|
+
message: |-
|
|
170
|
+
RunSec Detection [ITS-009]: CWE-295
|
|
171
|
+
languages:
|
|
172
|
+
- generic
|
|
173
|
+
severity: WARNING
|
|
174
|
+
- id: runsec.integration-security.its-010
|
|
175
|
+
metadata:
|
|
176
|
+
runsec_version: v1.0
|
|
177
|
+
confidence: |-
|
|
178
|
+
0.9
|
|
179
|
+
exploit_scenario: |-
|
|
180
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
181
|
+
fix_template: |-
|
|
182
|
+
Все вызовы к IdP/partner API — HTTPS; токены через authlib OAuth2 session с TLS-only metadata URL; не передавать секреты по http://.
|
|
183
|
+
pattern-either:
|
|
184
|
+
- pattern: |-
|
|
185
|
+
requests.post("http://partner.internal/oauth/token", data={"secret": client_secret})
|
|
186
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-010\\b'
|
|
187
|
+
message: |-
|
|
188
|
+
RunSec Detection [ITS-010]: CWE-319
|
|
189
|
+
languages:
|
|
190
|
+
- generic
|
|
191
|
+
severity: WARNING
|
|
192
|
+
- id: runsec.integration-security.its-011
|
|
193
|
+
metadata:
|
|
194
|
+
runsec_version: v1.0
|
|
195
|
+
confidence: |-
|
|
196
|
+
0.9
|
|
197
|
+
exploit_scenario: |-
|
|
198
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
199
|
+
fix_template: |-
|
|
200
|
+
Валидация URL до запроса; для OAuth callbacks использовать зарегистрированные redirect_uri в authlib OAuth client.
|
|
201
|
+
pattern-either:
|
|
202
|
+
- pattern: |-
|
|
203
|
+
requests.get(req.query_params["callback"])
|
|
204
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-011\\b'
|
|
205
|
+
message: |-
|
|
206
|
+
RunSec Detection [ITS-011]: CWE-918
|
|
207
|
+
languages:
|
|
208
|
+
- generic
|
|
209
|
+
severity: WARNING
|
|
210
|
+
- id: runsec.integration-security.its-012
|
|
211
|
+
metadata:
|
|
212
|
+
runsec_version: v1.0
|
|
213
|
+
confidence: |-
|
|
214
|
+
0.9
|
|
215
|
+
exploit_scenario: |-
|
|
216
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
217
|
+
fix_template: |-
|
|
218
|
+
authlib OAuth2 client: фиксированный redirect_uri; на сервере — проверка redirect_uri против клиентской регистрации.
|
|
219
|
+
pattern-either:
|
|
220
|
+
- pattern: |-
|
|
221
|
+
return redirect(request.args.get("next"))
|
|
222
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-012\\b'
|
|
223
|
+
message: |-
|
|
224
|
+
RunSec Detection [ITS-012]: CWE-601
|
|
225
|
+
languages:
|
|
226
|
+
- generic
|
|
227
|
+
severity: WARNING
|
|
228
|
+
- id: runsec.integration-security.its-013
|
|
229
|
+
metadata:
|
|
230
|
+
runsec_version: v1.0
|
|
231
|
+
confidence: |-
|
|
232
|
+
0.9
|
|
233
|
+
exploit_scenario: |-
|
|
234
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
235
|
+
fix_template: |-
|
|
236
|
+
Structured logging без тел ответов; для отладки OAuth использовать authlib tracing hooks без raw tokens.
|
|
237
|
+
pattern-either:
|
|
238
|
+
- pattern: |-
|
|
239
|
+
logger.info("partner_response=%s", resp.text)
|
|
240
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-013\\b'
|
|
241
|
+
message: |-
|
|
242
|
+
RunSec Detection [ITS-013]: CWE-532
|
|
243
|
+
languages:
|
|
244
|
+
- generic
|
|
245
|
+
severity: WARNING
|
|
246
|
+
- id: runsec.integration-security.its-014
|
|
247
|
+
metadata:
|
|
248
|
+
runsec_version: v1.0
|
|
249
|
+
confidence: |-
|
|
250
|
+
0.9
|
|
251
|
+
exploit_scenario: |-
|
|
252
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
253
|
+
fix_template: |-
|
|
254
|
+
Только JSON/MessagePack с валидацией; для JWE/JWT — authlib.jose.
|
|
255
|
+
pattern-either:
|
|
256
|
+
- pattern: |-
|
|
257
|
+
pickle.loads(partner_blob)
|
|
258
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-014\\b'
|
|
259
|
+
message: |-
|
|
260
|
+
RunSec Detection [ITS-014]: CWE-502
|
|
261
|
+
languages:
|
|
262
|
+
- generic
|
|
263
|
+
severity: WARNING
|
|
264
|
+
- id: runsec.integration-security.its-015
|
|
265
|
+
metadata:
|
|
266
|
+
runsec_version: v1.0
|
|
267
|
+
confidence: |-
|
|
268
|
+
0.9
|
|
269
|
+
exploit_scenario: |-
|
|
270
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
271
|
+
fix_template: |-
|
|
272
|
+
Парсить JSON в типизированные модели; подпись вебхука (middleware + authlib/HMAC) до бизнес-логики.
|
|
273
|
+
pattern-either:
|
|
274
|
+
- pattern: |-
|
|
275
|
+
eval(body["expr"])
|
|
276
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-015\\b'
|
|
277
|
+
message: |-
|
|
278
|
+
RunSec Detection [ITS-015]: CWE-94
|
|
279
|
+
languages:
|
|
280
|
+
- generic
|
|
281
|
+
severity: WARNING
|
|
282
|
+
- id: runsec.integration-security.its-016
|
|
283
|
+
metadata:
|
|
284
|
+
runsec_version: v1.0
|
|
285
|
+
confidence: |-
|
|
286
|
+
0.9
|
|
287
|
+
exploit_scenario: |-
|
|
288
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
289
|
+
fix_template: |-
|
|
290
|
+
После проверки подписи вебхука маппить action на фиксированные команды; не передавать raw input в subprocess.
|
|
291
|
+
pattern-either:
|
|
292
|
+
- pattern: |-
|
|
293
|
+
subprocess.run(payload["cmd"], shell=True)
|
|
294
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-016\\b'
|
|
295
|
+
message: |-
|
|
296
|
+
RunSec Detection [ITS-016]: CWE-78
|
|
297
|
+
languages:
|
|
298
|
+
- generic
|
|
299
|
+
severity: WARNING
|
|
300
|
+
- id: runsec.integration-security.its-017
|
|
301
|
+
metadata:
|
|
302
|
+
runsec_version: v1.0
|
|
303
|
+
confidence: |-
|
|
304
|
+
0.9
|
|
305
|
+
exploit_scenario: |-
|
|
306
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
307
|
+
fix_template: |-
|
|
308
|
+
Безопасный XML-парсер; для SAML/OIDC metadata — authlib loaders с проверкой подписи.
|
|
309
|
+
pattern-either:
|
|
310
|
+
- pattern: |-
|
|
311
|
+
xml.etree.ElementTree.fromstring(partner_xml)
|
|
312
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-017\\b'
|
|
313
|
+
message: |-
|
|
314
|
+
RunSec Detection [ITS-017]: CWE-611
|
|
315
|
+
languages:
|
|
316
|
+
- generic
|
|
317
|
+
severity: WARNING
|
|
318
|
+
- id: runsec.integration-security.its-018
|
|
319
|
+
metadata:
|
|
320
|
+
runsec_version: v1.0
|
|
321
|
+
confidence: |-
|
|
322
|
+
0.9
|
|
323
|
+
exploit_scenario: |-
|
|
324
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
325
|
+
fix_template: |-
|
|
326
|
+
Явно задавать scopes=[...] в Security(...) / OAuth2AuthorizationCodeBearer(..., scopes=...); проверять scope в dependency до бизнес-логики; для machine-to-machine — authlib.integrations + зарегистрированные scopes.
|
|
327
|
+
pattern-either:
|
|
328
|
+
- pattern: |-
|
|
329
|
+
@app.get("/integration/partner")
|
|
330
|
+
async def partner_data(creds = Security(oauth2_scheme)):
|
|
331
|
+
return await fetch_partner()
|
|
332
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-018\\b'
|
|
333
|
+
message: |-
|
|
334
|
+
RunSec Detection [ITS-018]: CWE-285
|
|
335
|
+
languages:
|
|
336
|
+
- generic
|
|
337
|
+
severity: WARNING
|
|
338
|
+
- id: runsec.integration-security.its-019
|
|
339
|
+
metadata:
|
|
340
|
+
runsec_version: v1.0
|
|
341
|
+
confidence: |-
|
|
342
|
+
0.9
|
|
343
|
+
exploit_scenario: |-
|
|
344
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
345
|
+
fix_template: |-
|
|
346
|
+
Перенести секреты в headers; для OAuth2 — authlib OAuth2 client с token в Authorization; отключить логирование полных URL.
|
|
347
|
+
pattern-either:
|
|
348
|
+
- pattern: |-
|
|
349
|
+
requests.get(api_url, params={"api_key": api_key})
|
|
350
|
+
axios.get(url, { params: { access_token: tok } })
|
|
351
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-019\\b'
|
|
352
|
+
message: |-
|
|
353
|
+
RunSec Detection [ITS-019]: CWE-598
|
|
354
|
+
languages:
|
|
355
|
+
- generic
|
|
356
|
+
severity: WARNING
|
|
357
|
+
- id: runsec.integration-security.its-020
|
|
358
|
+
metadata:
|
|
359
|
+
runsec_version: v1.0
|
|
360
|
+
confidence: |-
|
|
361
|
+
0.9
|
|
362
|
+
exploit_scenario: |-
|
|
363
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
364
|
+
fix_template: |-
|
|
365
|
+
Задать лимит тела для webhook path; комбинировать с таймаутами; для подписанных тел — всё равно ограничивать размер до парсинга.
|
|
366
|
+
pattern-either:
|
|
367
|
+
- pattern: |-
|
|
368
|
+
location /webhooks/ {
|
|
369
|
+
proxy_pass http://backend;
|
|
370
|
+
}
|
|
371
|
+
http_port 3128 accel
|
|
372
|
+
# request_body_max_size not set for /webhooks
|
|
373
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-020\\b'
|
|
374
|
+
message: |-
|
|
375
|
+
RunSec Detection [ITS-020]: CWE-770
|
|
376
|
+
languages:
|
|
377
|
+
- generic
|
|
378
|
+
severity: WARNING
|
|
379
|
+
- id: runsec.integration-security.its-021
|
|
380
|
+
metadata:
|
|
381
|
+
runsec_version: v1.0
|
|
382
|
+
confidence: |-
|
|
383
|
+
0.9
|
|
384
|
+
exploit_scenario: |-
|
|
385
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
386
|
+
fix_template: |-
|
|
387
|
+
Короткий access TTL, обязательный iss/aud; authlib.jose.JWTClaims с claims_options для issuer.
|
|
388
|
+
pattern-either:
|
|
389
|
+
- pattern: |-
|
|
390
|
+
ACCESS_TOKEN_EXPIRE_MINUTES = 60 * 48
|
|
391
|
+
JwtModule.register({ signOptions: { expiresIn: "7d" } })
|
|
392
|
+
jwt.decode(token, SECRET, algorithms=["HS256"])
|
|
393
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-021\\b'
|
|
394
|
+
message: |-
|
|
395
|
+
RunSec Detection [ITS-021]: CWE-613
|
|
396
|
+
languages:
|
|
397
|
+
- generic
|
|
398
|
+
severity: WARNING
|
|
399
|
+
- id: runsec.integration-security.its-022
|
|
400
|
+
metadata:
|
|
401
|
+
runsec_version: v1.0
|
|
402
|
+
confidence: |-
|
|
403
|
+
0.9
|
|
404
|
+
exploit_scenario: |-
|
|
405
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
406
|
+
fix_template: |-
|
|
407
|
+
Единый egress wrapper с denylist IP (169.254.0.0/16, …); authlib только для зарегистрированных partner URL.
|
|
408
|
+
pattern-either:
|
|
409
|
+
- pattern: |-
|
|
410
|
+
requests.get("http://169.254.169.254/latest/meta-data/")
|
|
411
|
+
fetch("http://169.254.169.254/")
|
|
412
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-022\\b'
|
|
413
|
+
message: |-
|
|
414
|
+
RunSec Detection [ITS-022]: CWE-918
|
|
415
|
+
languages:
|
|
416
|
+
- generic
|
|
417
|
+
severity: WARNING
|
|
418
|
+
- id: runsec.integration-security.its-023
|
|
419
|
+
metadata:
|
|
420
|
+
runsec_version: v1.0
|
|
421
|
+
confidence: |-
|
|
422
|
+
0.9
|
|
423
|
+
exploit_scenario: |-
|
|
424
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
425
|
+
fix_template: |-
|
|
426
|
+
Общий egress-клиент с denylist metadata CIDR; authlib redirect только на зарегистрированные URI.
|
|
427
|
+
pattern-either:
|
|
428
|
+
- pattern: |-
|
|
429
|
+
httpx.get("http://169.254.169.254/latest/meta-data/iam/security-credentials/")
|
|
430
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-023\\b'
|
|
431
|
+
message: |-
|
|
432
|
+
RunSec Detection [ITS-023]: CWE-918
|
|
433
|
+
languages:
|
|
434
|
+
- generic
|
|
435
|
+
severity: WARNING
|
|
436
|
+
- id: runsec.integration-security.its-024
|
|
437
|
+
metadata:
|
|
438
|
+
runsec_version: v1.0
|
|
439
|
+
confidence: |-
|
|
440
|
+
0.9
|
|
441
|
+
exploit_scenario: |-
|
|
442
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
443
|
+
fix_template: |-
|
|
444
|
+
DNS/IP validation + denylist cloud metadata hostnames.
|
|
445
|
+
pattern-either:
|
|
446
|
+
- pattern: |-
|
|
447
|
+
urllib.request.urlopen("http://metadata.google.internal/computeMetadata/v1/")
|
|
448
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-024\\b'
|
|
449
|
+
message: |-
|
|
450
|
+
RunSec Detection [ITS-024]: CWE-918
|
|
451
|
+
languages:
|
|
452
|
+
- generic
|
|
453
|
+
severity: WARNING
|
|
454
|
+
- id: runsec.integration-security.its-025
|
|
455
|
+
metadata:
|
|
456
|
+
runsec_version: v1.0
|
|
457
|
+
confidence: |-
|
|
458
|
+
0.9
|
|
459
|
+
exploit_scenario: |-
|
|
460
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
461
|
+
fix_template: |-
|
|
462
|
+
Центральный HTTP-клиент с blocklist облачных metadata адресов.
|
|
463
|
+
pattern-either:
|
|
464
|
+
- pattern: |-
|
|
465
|
+
axios.get("http://100.100.100.200/latest/meta-data/")
|
|
466
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-025\\b'
|
|
467
|
+
message: |-
|
|
468
|
+
RunSec Detection [ITS-025]: CWE-918
|
|
469
|
+
languages:
|
|
470
|
+
- generic
|
|
471
|
+
severity: WARNING
|
|
472
|
+
- id: runsec.integration-security.its-026
|
|
473
|
+
metadata:
|
|
474
|
+
runsec_version: v1.0
|
|
475
|
+
confidence: |-
|
|
476
|
+
0.9
|
|
477
|
+
exploit_scenario: |-
|
|
478
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
479
|
+
fix_template: |-
|
|
480
|
+
Denylist + SDK вместо raw fetch к IMDS.
|
|
481
|
+
pattern-either:
|
|
482
|
+
- pattern: |-
|
|
483
|
+
fetch("http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01")
|
|
484
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-026\\b'
|
|
485
|
+
message: |-
|
|
486
|
+
RunSec Detection [ITS-026]: CWE-918
|
|
487
|
+
languages:
|
|
488
|
+
- generic
|
|
489
|
+
severity: WARNING
|
|
490
|
+
- id: runsec.integration-security.its-027
|
|
491
|
+
metadata:
|
|
492
|
+
runsec_version: v1.0
|
|
493
|
+
confidence: |-
|
|
494
|
+
0.9
|
|
495
|
+
exploit_scenario: |-
|
|
496
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
497
|
+
fix_template: |-
|
|
498
|
+
Строгий URL parser + denylist перед requests.
|
|
499
|
+
pattern-either:
|
|
500
|
+
- pattern: |-
|
|
501
|
+
requests.get("http://169.254.169.254" + user_path)
|
|
502
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-027\\b'
|
|
503
|
+
message: |-
|
|
504
|
+
RunSec Detection [ITS-027]: CWE-918
|
|
505
|
+
languages:
|
|
506
|
+
- generic
|
|
507
|
+
severity: WARNING
|
|
508
|
+
- id: runsec.integration-security.its-028
|
|
509
|
+
metadata:
|
|
510
|
+
runsec_version: v1.0
|
|
511
|
+
confidence: |-
|
|
512
|
+
0.9
|
|
513
|
+
exploit_scenario: |-
|
|
514
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
515
|
+
fix_template: |-
|
|
516
|
+
Egress allowlist + блок fd00::/8 для metadata-паттернов.
|
|
517
|
+
pattern-either:
|
|
518
|
+
- pattern: |-
|
|
519
|
+
fetch("http://[fd00:ec2::254]/latest/meta-data/")
|
|
520
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-028\\b'
|
|
521
|
+
message: |-
|
|
522
|
+
RunSec Detection [ITS-028]: CWE-918
|
|
523
|
+
languages:
|
|
524
|
+
- generic
|
|
525
|
+
severity: WARNING
|
|
526
|
+
- id: runsec.integration-security.its-029
|
|
527
|
+
metadata:
|
|
528
|
+
runsec_version: v1.0
|
|
529
|
+
confidence: |-
|
|
530
|
+
0.9
|
|
531
|
+
exploit_scenario: |-
|
|
532
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
533
|
+
fix_template: |-
|
|
534
|
+
Общий egress wrapper; запретить literal metadata URL в коде приложения.
|
|
535
|
+
pattern-either:
|
|
536
|
+
- pattern: |-
|
|
537
|
+
async with httpx.AsyncClient() as c:
|
|
538
|
+
await c.get("http://169.254.169.254/latest/meta-data/")
|
|
539
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-029\\b'
|
|
540
|
+
message: |-
|
|
541
|
+
RunSec Detection [ITS-029]: CWE-918
|
|
542
|
+
languages:
|
|
543
|
+
- generic
|
|
544
|
+
severity: WARNING
|
|
545
|
+
- id: runsec.integration-security.its-030
|
|
546
|
+
metadata:
|
|
547
|
+
runsec_version: v1.0
|
|
548
|
+
confidence: |-
|
|
549
|
+
0.9
|
|
550
|
+
exploit_scenario: |-
|
|
551
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
552
|
+
fix_template: |-
|
|
553
|
+
Фабрика HTTP-клиентов с валидацией baseURL против blocklist.
|
|
554
|
+
pattern-either:
|
|
555
|
+
- pattern: |-
|
|
556
|
+
axios.create({ baseURL: "http://169.254.169.254" }).get("/latest/meta-data/")
|
|
557
|
+
- pattern-regex: 'Vulnerable:\\s*ITS\\-030\\b'
|
|
558
|
+
message: |-
|
|
559
|
+
RunSec Detection [ITS-030]: CWE-918
|
|
560
|
+
languages:
|
|
561
|
+
- generic
|
|
562
|
+
severity: WARNING
|
|
563
|
+
- id: runsec.integration-security.sdk-001
|
|
564
|
+
metadata:
|
|
565
|
+
runsec_version: v1.0
|
|
566
|
+
confidence: |-
|
|
567
|
+
0.9
|
|
568
|
+
exploit_scenario: |-
|
|
569
|
+
Unverified webhook payloads allow forged billing events.
|
|
570
|
+
fix_template: |-
|
|
571
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
572
|
+
pattern-either:
|
|
573
|
+
- pattern: |-
|
|
574
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
575
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-001\\b'
|
|
576
|
+
message: |-
|
|
577
|
+
RunSec Detection [SDK-001]: CWE-345
|
|
578
|
+
languages:
|
|
579
|
+
- generic
|
|
580
|
+
severity: WARNING
|
|
581
|
+
- id: runsec.integration-security.sdk-002
|
|
582
|
+
metadata:
|
|
583
|
+
runsec_version: v1.0
|
|
584
|
+
confidence: |-
|
|
585
|
+
0.9
|
|
586
|
+
exploit_scenario: |-
|
|
587
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
588
|
+
fix_template: |-
|
|
589
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
590
|
+
pattern-either:
|
|
591
|
+
- pattern: |-
|
|
592
|
+
if (req.body.From) { process(req.body) }
|
|
593
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-002\\b'
|
|
594
|
+
message: |-
|
|
595
|
+
RunSec Detection [SDK-002]: CWE-347
|
|
596
|
+
languages:
|
|
597
|
+
- generic
|
|
598
|
+
severity: WARNING
|
|
599
|
+
- id: runsec.integration-security.sdk-003
|
|
600
|
+
metadata:
|
|
601
|
+
runsec_version: v1.0
|
|
602
|
+
confidence: |-
|
|
603
|
+
0.9
|
|
604
|
+
exploit_scenario: |-
|
|
605
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
606
|
+
fix_template: |-
|
|
607
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
608
|
+
pattern-either:
|
|
609
|
+
- pattern: |-
|
|
610
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
611
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-003\\b'
|
|
612
|
+
message: |-
|
|
613
|
+
RunSec Detection [SDK-003]: CWE-798
|
|
614
|
+
languages:
|
|
615
|
+
- generic
|
|
616
|
+
severity: WARNING
|
|
617
|
+
- id: runsec.integration-security.sdk-004
|
|
618
|
+
metadata:
|
|
619
|
+
runsec_version: v1.0
|
|
620
|
+
confidence: |-
|
|
621
|
+
0.9
|
|
622
|
+
exploit_scenario: |-
|
|
623
|
+
Forged provider events can alter delivery and trust workflows.
|
|
624
|
+
fix_template: |-
|
|
625
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
626
|
+
pattern-either:
|
|
627
|
+
- pattern: |-
|
|
628
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
629
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-004\\b'
|
|
630
|
+
message: |-
|
|
631
|
+
RunSec Detection [SDK-004]: CWE-346
|
|
632
|
+
languages:
|
|
633
|
+
- generic
|
|
634
|
+
severity: WARNING
|
|
635
|
+
- id: runsec.integration-security.sdk-005
|
|
636
|
+
metadata:
|
|
637
|
+
runsec_version: v1.0
|
|
638
|
+
confidence: |-
|
|
639
|
+
0.9
|
|
640
|
+
exploit_scenario: |-
|
|
641
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
642
|
+
fix_template: |-
|
|
643
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
644
|
+
pattern-either:
|
|
645
|
+
- pattern: |-
|
|
646
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
647
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-005\\b'
|
|
648
|
+
message: |-
|
|
649
|
+
RunSec Detection [SDK-005]: CWE-20
|
|
650
|
+
languages:
|
|
651
|
+
- generic
|
|
652
|
+
severity: WARNING
|
|
653
|
+
- id: runsec.integration-security.sdk-006
|
|
654
|
+
metadata:
|
|
655
|
+
runsec_version: v1.0
|
|
656
|
+
confidence: |-
|
|
657
|
+
0.9
|
|
658
|
+
exploit_scenario: |-
|
|
659
|
+
Unverified webhook payloads allow forged billing events.
|
|
660
|
+
fix_template: |-
|
|
661
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
662
|
+
pattern-either:
|
|
663
|
+
- pattern: |-
|
|
664
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
665
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-006\\b'
|
|
666
|
+
message: |-
|
|
667
|
+
RunSec Detection [SDK-006]: CWE-345
|
|
668
|
+
languages:
|
|
669
|
+
- generic
|
|
670
|
+
severity: WARNING
|
|
671
|
+
- id: runsec.integration-security.sdk-007
|
|
672
|
+
metadata:
|
|
673
|
+
runsec_version: v1.0
|
|
674
|
+
confidence: |-
|
|
675
|
+
0.9
|
|
676
|
+
exploit_scenario: |-
|
|
677
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
678
|
+
fix_template: |-
|
|
679
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
680
|
+
pattern-either:
|
|
681
|
+
- pattern: |-
|
|
682
|
+
if (req.body.From) { process(req.body) }
|
|
683
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-007\\b'
|
|
684
|
+
message: |-
|
|
685
|
+
RunSec Detection [SDK-007]: CWE-347
|
|
686
|
+
languages:
|
|
687
|
+
- generic
|
|
688
|
+
severity: WARNING
|
|
689
|
+
- id: runsec.integration-security.sdk-008
|
|
690
|
+
metadata:
|
|
691
|
+
runsec_version: v1.0
|
|
692
|
+
confidence: |-
|
|
693
|
+
0.9
|
|
694
|
+
exploit_scenario: |-
|
|
695
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
696
|
+
fix_template: |-
|
|
697
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
698
|
+
pattern-either:
|
|
699
|
+
- pattern: |-
|
|
700
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
701
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-008\\b'
|
|
702
|
+
message: |-
|
|
703
|
+
RunSec Detection [SDK-008]: CWE-798
|
|
704
|
+
languages:
|
|
705
|
+
- generic
|
|
706
|
+
severity: WARNING
|
|
707
|
+
- id: runsec.integration-security.sdk-009
|
|
708
|
+
metadata:
|
|
709
|
+
runsec_version: v1.0
|
|
710
|
+
confidence: |-
|
|
711
|
+
0.9
|
|
712
|
+
exploit_scenario: |-
|
|
713
|
+
Forged provider events can alter delivery and trust workflows.
|
|
714
|
+
fix_template: |-
|
|
715
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
716
|
+
pattern-either:
|
|
717
|
+
- pattern: |-
|
|
718
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
719
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-009\\b'
|
|
720
|
+
message: |-
|
|
721
|
+
RunSec Detection [SDK-009]: CWE-346
|
|
722
|
+
languages:
|
|
723
|
+
- generic
|
|
724
|
+
severity: WARNING
|
|
725
|
+
- id: runsec.integration-security.sdk-010
|
|
726
|
+
metadata:
|
|
727
|
+
runsec_version: v1.0
|
|
728
|
+
confidence: |-
|
|
729
|
+
0.9
|
|
730
|
+
exploit_scenario: |-
|
|
731
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
732
|
+
fix_template: |-
|
|
733
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
734
|
+
pattern-either:
|
|
735
|
+
- pattern: |-
|
|
736
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
737
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-010\\b'
|
|
738
|
+
message: |-
|
|
739
|
+
RunSec Detection [SDK-010]: CWE-20
|
|
740
|
+
languages:
|
|
741
|
+
- generic
|
|
742
|
+
severity: WARNING
|
|
743
|
+
- id: runsec.integration-security.sdk-011
|
|
744
|
+
metadata:
|
|
745
|
+
runsec_version: v1.0
|
|
746
|
+
confidence: |-
|
|
747
|
+
0.9
|
|
748
|
+
exploit_scenario: |-
|
|
749
|
+
Unverified webhook payloads allow forged billing events.
|
|
750
|
+
fix_template: |-
|
|
751
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
752
|
+
pattern-either:
|
|
753
|
+
- pattern: |-
|
|
754
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
755
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-011\\b'
|
|
756
|
+
message: |-
|
|
757
|
+
RunSec Detection [SDK-011]: CWE-345
|
|
758
|
+
languages:
|
|
759
|
+
- generic
|
|
760
|
+
severity: WARNING
|
|
761
|
+
- id: runsec.integration-security.sdk-012
|
|
762
|
+
metadata:
|
|
763
|
+
runsec_version: v1.0
|
|
764
|
+
confidence: |-
|
|
765
|
+
0.9
|
|
766
|
+
exploit_scenario: |-
|
|
767
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
768
|
+
fix_template: |-
|
|
769
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
770
|
+
pattern-either:
|
|
771
|
+
- pattern: |-
|
|
772
|
+
if (req.body.From) { process(req.body) }
|
|
773
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-012\\b'
|
|
774
|
+
message: |-
|
|
775
|
+
RunSec Detection [SDK-012]: CWE-347
|
|
776
|
+
languages:
|
|
777
|
+
- generic
|
|
778
|
+
severity: WARNING
|
|
779
|
+
- id: runsec.integration-security.sdk-013
|
|
780
|
+
metadata:
|
|
781
|
+
runsec_version: v1.0
|
|
782
|
+
confidence: |-
|
|
783
|
+
0.9
|
|
784
|
+
exploit_scenario: |-
|
|
785
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
786
|
+
fix_template: |-
|
|
787
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
788
|
+
pattern-either:
|
|
789
|
+
- pattern: |-
|
|
790
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
791
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-013\\b'
|
|
792
|
+
message: |-
|
|
793
|
+
RunSec Detection [SDK-013]: CWE-798
|
|
794
|
+
languages:
|
|
795
|
+
- generic
|
|
796
|
+
severity: WARNING
|
|
797
|
+
- id: runsec.integration-security.sdk-014
|
|
798
|
+
metadata:
|
|
799
|
+
runsec_version: v1.0
|
|
800
|
+
confidence: |-
|
|
801
|
+
0.9
|
|
802
|
+
exploit_scenario: |-
|
|
803
|
+
Forged provider events can alter delivery and trust workflows.
|
|
804
|
+
fix_template: |-
|
|
805
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
806
|
+
pattern-either:
|
|
807
|
+
- pattern: |-
|
|
808
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
809
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-014\\b'
|
|
810
|
+
message: |-
|
|
811
|
+
RunSec Detection [SDK-014]: CWE-346
|
|
812
|
+
languages:
|
|
813
|
+
- generic
|
|
814
|
+
severity: WARNING
|
|
815
|
+
- id: runsec.integration-security.sdk-015
|
|
816
|
+
metadata:
|
|
817
|
+
runsec_version: v1.0
|
|
818
|
+
confidence: |-
|
|
819
|
+
0.9
|
|
820
|
+
exploit_scenario: |-
|
|
821
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
822
|
+
fix_template: |-
|
|
823
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
824
|
+
pattern-either:
|
|
825
|
+
- pattern: |-
|
|
826
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
827
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-015\\b'
|
|
828
|
+
message: |-
|
|
829
|
+
RunSec Detection [SDK-015]: CWE-20
|
|
830
|
+
languages:
|
|
831
|
+
- generic
|
|
832
|
+
severity: WARNING
|
|
833
|
+
- id: runsec.integration-security.sdk-016
|
|
834
|
+
metadata:
|
|
835
|
+
runsec_version: v1.0
|
|
836
|
+
confidence: |-
|
|
837
|
+
0.9
|
|
838
|
+
exploit_scenario: |-
|
|
839
|
+
Unverified webhook payloads allow forged billing events.
|
|
840
|
+
fix_template: |-
|
|
841
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
842
|
+
pattern-either:
|
|
843
|
+
- pattern: |-
|
|
844
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
845
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-016\\b'
|
|
846
|
+
message: |-
|
|
847
|
+
RunSec Detection [SDK-016]: CWE-345
|
|
848
|
+
languages:
|
|
849
|
+
- generic
|
|
850
|
+
severity: WARNING
|
|
851
|
+
- id: runsec.integration-security.sdk-017
|
|
852
|
+
metadata:
|
|
853
|
+
runsec_version: v1.0
|
|
854
|
+
confidence: |-
|
|
855
|
+
0.9
|
|
856
|
+
exploit_scenario: |-
|
|
857
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
858
|
+
fix_template: |-
|
|
859
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
860
|
+
pattern-either:
|
|
861
|
+
- pattern: |-
|
|
862
|
+
if (req.body.From) { process(req.body) }
|
|
863
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-017\\b'
|
|
864
|
+
message: |-
|
|
865
|
+
RunSec Detection [SDK-017]: CWE-347
|
|
866
|
+
languages:
|
|
867
|
+
- generic
|
|
868
|
+
severity: WARNING
|
|
869
|
+
- id: runsec.integration-security.sdk-018
|
|
870
|
+
metadata:
|
|
871
|
+
runsec_version: v1.0
|
|
872
|
+
confidence: |-
|
|
873
|
+
0.9
|
|
874
|
+
exploit_scenario: |-
|
|
875
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
876
|
+
fix_template: |-
|
|
877
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
878
|
+
pattern-either:
|
|
879
|
+
- pattern: |-
|
|
880
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
881
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-018\\b'
|
|
882
|
+
message: |-
|
|
883
|
+
RunSec Detection [SDK-018]: CWE-798
|
|
884
|
+
languages:
|
|
885
|
+
- generic
|
|
886
|
+
severity: WARNING
|
|
887
|
+
- id: runsec.integration-security.sdk-019
|
|
888
|
+
metadata:
|
|
889
|
+
runsec_version: v1.0
|
|
890
|
+
confidence: |-
|
|
891
|
+
0.9
|
|
892
|
+
exploit_scenario: |-
|
|
893
|
+
Forged provider events can alter delivery and trust workflows.
|
|
894
|
+
fix_template: |-
|
|
895
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
896
|
+
pattern-either:
|
|
897
|
+
- pattern: |-
|
|
898
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
899
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-019\\b'
|
|
900
|
+
message: |-
|
|
901
|
+
RunSec Detection [SDK-019]: CWE-346
|
|
902
|
+
languages:
|
|
903
|
+
- generic
|
|
904
|
+
severity: WARNING
|
|
905
|
+
- id: runsec.integration-security.sdk-020
|
|
906
|
+
metadata:
|
|
907
|
+
runsec_version: v1.0
|
|
908
|
+
confidence: |-
|
|
909
|
+
0.9
|
|
910
|
+
exploit_scenario: |-
|
|
911
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
912
|
+
fix_template: |-
|
|
913
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
914
|
+
pattern-either:
|
|
915
|
+
- pattern: |-
|
|
916
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
917
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-020\\b'
|
|
918
|
+
message: |-
|
|
919
|
+
RunSec Detection [SDK-020]: CWE-20
|
|
920
|
+
languages:
|
|
921
|
+
- generic
|
|
922
|
+
severity: WARNING
|
|
923
|
+
- id: runsec.integration-security.sdk-021
|
|
924
|
+
metadata:
|
|
925
|
+
runsec_version: v1.0
|
|
926
|
+
confidence: |-
|
|
927
|
+
0.9
|
|
928
|
+
exploit_scenario: |-
|
|
929
|
+
Unverified webhook payloads allow forged billing events.
|
|
930
|
+
fix_template: |-
|
|
931
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
932
|
+
pattern-either:
|
|
933
|
+
- pattern: |-
|
|
934
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
935
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-021\\b'
|
|
936
|
+
message: |-
|
|
937
|
+
RunSec Detection [SDK-021]: CWE-345
|
|
938
|
+
languages:
|
|
939
|
+
- generic
|
|
940
|
+
severity: WARNING
|
|
941
|
+
- id: runsec.integration-security.sdk-022
|
|
942
|
+
metadata:
|
|
943
|
+
runsec_version: v1.0
|
|
944
|
+
confidence: |-
|
|
945
|
+
0.9
|
|
946
|
+
exploit_scenario: |-
|
|
947
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
948
|
+
fix_template: |-
|
|
949
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
950
|
+
pattern-either:
|
|
951
|
+
- pattern: |-
|
|
952
|
+
if (req.body.From) { process(req.body) }
|
|
953
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-022\\b'
|
|
954
|
+
message: |-
|
|
955
|
+
RunSec Detection [SDK-022]: CWE-347
|
|
956
|
+
languages:
|
|
957
|
+
- generic
|
|
958
|
+
severity: WARNING
|
|
959
|
+
- id: runsec.integration-security.sdk-023
|
|
960
|
+
metadata:
|
|
961
|
+
runsec_version: v1.0
|
|
962
|
+
confidence: |-
|
|
963
|
+
0.9
|
|
964
|
+
exploit_scenario: |-
|
|
965
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
966
|
+
fix_template: |-
|
|
967
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
968
|
+
pattern-either:
|
|
969
|
+
- pattern: |-
|
|
970
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
971
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-023\\b'
|
|
972
|
+
message: |-
|
|
973
|
+
RunSec Detection [SDK-023]: CWE-798
|
|
974
|
+
languages:
|
|
975
|
+
- generic
|
|
976
|
+
severity: WARNING
|
|
977
|
+
- id: runsec.integration-security.sdk-024
|
|
978
|
+
metadata:
|
|
979
|
+
runsec_version: v1.0
|
|
980
|
+
confidence: |-
|
|
981
|
+
0.9
|
|
982
|
+
exploit_scenario: |-
|
|
983
|
+
Forged provider events can alter delivery and trust workflows.
|
|
984
|
+
fix_template: |-
|
|
985
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
986
|
+
pattern-either:
|
|
987
|
+
- pattern: |-
|
|
988
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
989
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-024\\b'
|
|
990
|
+
message: |-
|
|
991
|
+
RunSec Detection [SDK-024]: CWE-346
|
|
992
|
+
languages:
|
|
993
|
+
- generic
|
|
994
|
+
severity: WARNING
|
|
995
|
+
- id: runsec.integration-security.sdk-025
|
|
996
|
+
metadata:
|
|
997
|
+
runsec_version: v1.0
|
|
998
|
+
confidence: |-
|
|
999
|
+
0.9
|
|
1000
|
+
exploit_scenario: |-
|
|
1001
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
1002
|
+
fix_template: |-
|
|
1003
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1004
|
+
pattern-either:
|
|
1005
|
+
- pattern: |-
|
|
1006
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
1007
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-025\\b'
|
|
1008
|
+
message: |-
|
|
1009
|
+
RunSec Detection [SDK-025]: CWE-20
|
|
1010
|
+
languages:
|
|
1011
|
+
- generic
|
|
1012
|
+
severity: WARNING
|
|
1013
|
+
- id: runsec.integration-security.sdk-026
|
|
1014
|
+
metadata:
|
|
1015
|
+
runsec_version: v1.0
|
|
1016
|
+
confidence: |-
|
|
1017
|
+
0.9
|
|
1018
|
+
exploit_scenario: |-
|
|
1019
|
+
Unverified webhook payloads allow forged billing events.
|
|
1020
|
+
fix_template: |-
|
|
1021
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1022
|
+
pattern-either:
|
|
1023
|
+
- pattern: |-
|
|
1024
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
1025
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-026\\b'
|
|
1026
|
+
message: |-
|
|
1027
|
+
RunSec Detection [SDK-026]: CWE-345
|
|
1028
|
+
languages:
|
|
1029
|
+
- generic
|
|
1030
|
+
severity: WARNING
|
|
1031
|
+
- id: runsec.integration-security.sdk-027
|
|
1032
|
+
metadata:
|
|
1033
|
+
runsec_version: v1.0
|
|
1034
|
+
confidence: |-
|
|
1035
|
+
0.9
|
|
1036
|
+
exploit_scenario: |-
|
|
1037
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
1038
|
+
fix_template: |-
|
|
1039
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1040
|
+
pattern-either:
|
|
1041
|
+
- pattern: |-
|
|
1042
|
+
if (req.body.From) { process(req.body) }
|
|
1043
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-027\\b'
|
|
1044
|
+
message: |-
|
|
1045
|
+
RunSec Detection [SDK-027]: CWE-347
|
|
1046
|
+
languages:
|
|
1047
|
+
- generic
|
|
1048
|
+
severity: WARNING
|
|
1049
|
+
- id: runsec.integration-security.sdk-028
|
|
1050
|
+
metadata:
|
|
1051
|
+
runsec_version: v1.0
|
|
1052
|
+
confidence: |-
|
|
1053
|
+
0.9
|
|
1054
|
+
exploit_scenario: |-
|
|
1055
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
1056
|
+
fix_template: |-
|
|
1057
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1058
|
+
pattern-either:
|
|
1059
|
+
- pattern: |-
|
|
1060
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
1061
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-028\\b'
|
|
1062
|
+
message: |-
|
|
1063
|
+
RunSec Detection [SDK-028]: CWE-798
|
|
1064
|
+
languages:
|
|
1065
|
+
- generic
|
|
1066
|
+
severity: WARNING
|
|
1067
|
+
- id: runsec.integration-security.sdk-029
|
|
1068
|
+
metadata:
|
|
1069
|
+
runsec_version: v1.0
|
|
1070
|
+
confidence: |-
|
|
1071
|
+
0.9
|
|
1072
|
+
exploit_scenario: |-
|
|
1073
|
+
Forged provider events can alter delivery and trust workflows.
|
|
1074
|
+
fix_template: |-
|
|
1075
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1076
|
+
pattern-either:
|
|
1077
|
+
- pattern: |-
|
|
1078
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
1079
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-029\\b'
|
|
1080
|
+
message: |-
|
|
1081
|
+
RunSec Detection [SDK-029]: CWE-346
|
|
1082
|
+
languages:
|
|
1083
|
+
- generic
|
|
1084
|
+
severity: WARNING
|
|
1085
|
+
- id: runsec.integration-security.sdk-030
|
|
1086
|
+
metadata:
|
|
1087
|
+
runsec_version: v1.0
|
|
1088
|
+
confidence: |-
|
|
1089
|
+
0.9
|
|
1090
|
+
exploit_scenario: |-
|
|
1091
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
1092
|
+
fix_template: |-
|
|
1093
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1094
|
+
pattern-either:
|
|
1095
|
+
- pattern: |-
|
|
1096
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
1097
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-030\\b'
|
|
1098
|
+
message: |-
|
|
1099
|
+
RunSec Detection [SDK-030]: CWE-20
|
|
1100
|
+
languages:
|
|
1101
|
+
- generic
|
|
1102
|
+
severity: WARNING
|
|
1103
|
+
- id: runsec.integration-security.sdk-031
|
|
1104
|
+
metadata:
|
|
1105
|
+
runsec_version: v1.0
|
|
1106
|
+
confidence: |-
|
|
1107
|
+
0.9
|
|
1108
|
+
exploit_scenario: |-
|
|
1109
|
+
Unverified webhook payloads allow forged billing events.
|
|
1110
|
+
fix_template: |-
|
|
1111
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1112
|
+
pattern-either:
|
|
1113
|
+
- pattern: |-
|
|
1114
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
1115
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-031\\b'
|
|
1116
|
+
message: |-
|
|
1117
|
+
RunSec Detection [SDK-031]: CWE-345
|
|
1118
|
+
languages:
|
|
1119
|
+
- generic
|
|
1120
|
+
severity: WARNING
|
|
1121
|
+
- id: runsec.integration-security.sdk-032
|
|
1122
|
+
metadata:
|
|
1123
|
+
runsec_version: v1.0
|
|
1124
|
+
confidence: |-
|
|
1125
|
+
0.9
|
|
1126
|
+
exploit_scenario: |-
|
|
1127
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
1128
|
+
fix_template: |-
|
|
1129
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1130
|
+
pattern-either:
|
|
1131
|
+
- pattern: |-
|
|
1132
|
+
if (req.body.From) { process(req.body) }
|
|
1133
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-032\\b'
|
|
1134
|
+
message: |-
|
|
1135
|
+
RunSec Detection [SDK-032]: CWE-347
|
|
1136
|
+
languages:
|
|
1137
|
+
- generic
|
|
1138
|
+
severity: WARNING
|
|
1139
|
+
- id: runsec.integration-security.sdk-033
|
|
1140
|
+
metadata:
|
|
1141
|
+
runsec_version: v1.0
|
|
1142
|
+
confidence: |-
|
|
1143
|
+
0.9
|
|
1144
|
+
exploit_scenario: |-
|
|
1145
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
1146
|
+
fix_template: |-
|
|
1147
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1148
|
+
pattern-either:
|
|
1149
|
+
- pattern: |-
|
|
1150
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
1151
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-033\\b'
|
|
1152
|
+
message: |-
|
|
1153
|
+
RunSec Detection [SDK-033]: CWE-798
|
|
1154
|
+
languages:
|
|
1155
|
+
- generic
|
|
1156
|
+
severity: WARNING
|
|
1157
|
+
- id: runsec.integration-security.sdk-034
|
|
1158
|
+
metadata:
|
|
1159
|
+
runsec_version: v1.0
|
|
1160
|
+
confidence: |-
|
|
1161
|
+
0.9
|
|
1162
|
+
exploit_scenario: |-
|
|
1163
|
+
Forged provider events can alter delivery and trust workflows.
|
|
1164
|
+
fix_template: |-
|
|
1165
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1166
|
+
pattern-either:
|
|
1167
|
+
- pattern: |-
|
|
1168
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
1169
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-034\\b'
|
|
1170
|
+
message: |-
|
|
1171
|
+
RunSec Detection [SDK-034]: CWE-346
|
|
1172
|
+
languages:
|
|
1173
|
+
- generic
|
|
1174
|
+
severity: WARNING
|
|
1175
|
+
- id: runsec.integration-security.sdk-035
|
|
1176
|
+
metadata:
|
|
1177
|
+
runsec_version: v1.0
|
|
1178
|
+
confidence: |-
|
|
1179
|
+
0.9
|
|
1180
|
+
exploit_scenario: |-
|
|
1181
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
1182
|
+
fix_template: |-
|
|
1183
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1184
|
+
pattern-either:
|
|
1185
|
+
- pattern: |-
|
|
1186
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
1187
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-035\\b'
|
|
1188
|
+
message: |-
|
|
1189
|
+
RunSec Detection [SDK-035]: CWE-20
|
|
1190
|
+
languages:
|
|
1191
|
+
- generic
|
|
1192
|
+
severity: WARNING
|
|
1193
|
+
- id: runsec.integration-security.sdk-036
|
|
1194
|
+
metadata:
|
|
1195
|
+
runsec_version: v1.0
|
|
1196
|
+
confidence: |-
|
|
1197
|
+
0.9
|
|
1198
|
+
exploit_scenario: |-
|
|
1199
|
+
Unverified webhook payloads allow forged billing events.
|
|
1200
|
+
fix_template: |-
|
|
1201
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1202
|
+
pattern-either:
|
|
1203
|
+
- pattern: |-
|
|
1204
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
1205
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-036\\b'
|
|
1206
|
+
message: |-
|
|
1207
|
+
RunSec Detection [SDK-036]: CWE-345
|
|
1208
|
+
languages:
|
|
1209
|
+
- generic
|
|
1210
|
+
severity: WARNING
|
|
1211
|
+
- id: runsec.integration-security.sdk-037
|
|
1212
|
+
metadata:
|
|
1213
|
+
runsec_version: v1.0
|
|
1214
|
+
confidence: |-
|
|
1215
|
+
0.9
|
|
1216
|
+
exploit_scenario: |-
|
|
1217
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
1218
|
+
fix_template: |-
|
|
1219
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1220
|
+
pattern-either:
|
|
1221
|
+
- pattern: |-
|
|
1222
|
+
if (req.body.From) { process(req.body) }
|
|
1223
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-037\\b'
|
|
1224
|
+
message: |-
|
|
1225
|
+
RunSec Detection [SDK-037]: CWE-347
|
|
1226
|
+
languages:
|
|
1227
|
+
- generic
|
|
1228
|
+
severity: WARNING
|
|
1229
|
+
- id: runsec.integration-security.sdk-038
|
|
1230
|
+
metadata:
|
|
1231
|
+
runsec_version: v1.0
|
|
1232
|
+
confidence: |-
|
|
1233
|
+
0.9
|
|
1234
|
+
exploit_scenario: |-
|
|
1235
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
1236
|
+
fix_template: |-
|
|
1237
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1238
|
+
pattern-either:
|
|
1239
|
+
- pattern: |-
|
|
1240
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
1241
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-038\\b'
|
|
1242
|
+
message: |-
|
|
1243
|
+
RunSec Detection [SDK-038]: CWE-798
|
|
1244
|
+
languages:
|
|
1245
|
+
- generic
|
|
1246
|
+
severity: WARNING
|
|
1247
|
+
- id: runsec.integration-security.sdk-039
|
|
1248
|
+
metadata:
|
|
1249
|
+
runsec_version: v1.0
|
|
1250
|
+
confidence: |-
|
|
1251
|
+
0.9
|
|
1252
|
+
exploit_scenario: |-
|
|
1253
|
+
Forged provider events can alter delivery and trust workflows.
|
|
1254
|
+
fix_template: |-
|
|
1255
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1256
|
+
pattern-either:
|
|
1257
|
+
- pattern: |-
|
|
1258
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
1259
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-039\\b'
|
|
1260
|
+
message: |-
|
|
1261
|
+
RunSec Detection [SDK-039]: CWE-346
|
|
1262
|
+
languages:
|
|
1263
|
+
- generic
|
|
1264
|
+
severity: WARNING
|
|
1265
|
+
- id: runsec.integration-security.sdk-040
|
|
1266
|
+
metadata:
|
|
1267
|
+
runsec_version: v1.0
|
|
1268
|
+
confidence: |-
|
|
1269
|
+
0.9
|
|
1270
|
+
exploit_scenario: |-
|
|
1271
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
1272
|
+
fix_template: |-
|
|
1273
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1274
|
+
pattern-either:
|
|
1275
|
+
- pattern: |-
|
|
1276
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
1277
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-040\\b'
|
|
1278
|
+
message: |-
|
|
1279
|
+
RunSec Detection [SDK-040]: CWE-20
|
|
1280
|
+
languages:
|
|
1281
|
+
- generic
|
|
1282
|
+
severity: WARNING
|
|
1283
|
+
- id: runsec.integration-security.sdk-041
|
|
1284
|
+
metadata:
|
|
1285
|
+
runsec_version: v1.0
|
|
1286
|
+
confidence: |-
|
|
1287
|
+
0.9
|
|
1288
|
+
exploit_scenario: |-
|
|
1289
|
+
Unverified webhook payloads allow forged billing events.
|
|
1290
|
+
fix_template: |-
|
|
1291
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1292
|
+
pattern-either:
|
|
1293
|
+
- pattern: |-
|
|
1294
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
1295
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-041\\b'
|
|
1296
|
+
message: |-
|
|
1297
|
+
RunSec Detection [SDK-041]: CWE-345
|
|
1298
|
+
languages:
|
|
1299
|
+
- generic
|
|
1300
|
+
severity: WARNING
|
|
1301
|
+
- id: runsec.integration-security.sdk-042
|
|
1302
|
+
metadata:
|
|
1303
|
+
runsec_version: v1.0
|
|
1304
|
+
confidence: |-
|
|
1305
|
+
0.9
|
|
1306
|
+
exploit_scenario: |-
|
|
1307
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
1308
|
+
fix_template: |-
|
|
1309
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1310
|
+
pattern-either:
|
|
1311
|
+
- pattern: |-
|
|
1312
|
+
if (req.body.From) { process(req.body) }
|
|
1313
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-042\\b'
|
|
1314
|
+
message: |-
|
|
1315
|
+
RunSec Detection [SDK-042]: CWE-347
|
|
1316
|
+
languages:
|
|
1317
|
+
- generic
|
|
1318
|
+
severity: WARNING
|
|
1319
|
+
- id: runsec.integration-security.sdk-043
|
|
1320
|
+
metadata:
|
|
1321
|
+
runsec_version: v1.0
|
|
1322
|
+
confidence: |-
|
|
1323
|
+
0.9
|
|
1324
|
+
exploit_scenario: |-
|
|
1325
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
1326
|
+
fix_template: |-
|
|
1327
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1328
|
+
pattern-either:
|
|
1329
|
+
- pattern: |-
|
|
1330
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
1331
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-043\\b'
|
|
1332
|
+
message: |-
|
|
1333
|
+
RunSec Detection [SDK-043]: CWE-798
|
|
1334
|
+
languages:
|
|
1335
|
+
- generic
|
|
1336
|
+
severity: WARNING
|
|
1337
|
+
- id: runsec.integration-security.sdk-044
|
|
1338
|
+
metadata:
|
|
1339
|
+
runsec_version: v1.0
|
|
1340
|
+
confidence: |-
|
|
1341
|
+
0.9
|
|
1342
|
+
exploit_scenario: |-
|
|
1343
|
+
Forged provider events can alter delivery and trust workflows.
|
|
1344
|
+
fix_template: |-
|
|
1345
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1346
|
+
pattern-either:
|
|
1347
|
+
- pattern: |-
|
|
1348
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
1349
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-044\\b'
|
|
1350
|
+
message: |-
|
|
1351
|
+
RunSec Detection [SDK-044]: CWE-346
|
|
1352
|
+
languages:
|
|
1353
|
+
- generic
|
|
1354
|
+
severity: WARNING
|
|
1355
|
+
- id: runsec.integration-security.sdk-045
|
|
1356
|
+
metadata:
|
|
1357
|
+
runsec_version: v1.0
|
|
1358
|
+
confidence: |-
|
|
1359
|
+
0.9
|
|
1360
|
+
exploit_scenario: |-
|
|
1361
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
1362
|
+
fix_template: |-
|
|
1363
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1364
|
+
pattern-either:
|
|
1365
|
+
- pattern: |-
|
|
1366
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
1367
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-045\\b'
|
|
1368
|
+
message: |-
|
|
1369
|
+
RunSec Detection [SDK-045]: CWE-20
|
|
1370
|
+
languages:
|
|
1371
|
+
- generic
|
|
1372
|
+
severity: WARNING
|
|
1373
|
+
- id: runsec.integration-security.sdk-046
|
|
1374
|
+
metadata:
|
|
1375
|
+
runsec_version: v1.0
|
|
1376
|
+
confidence: |-
|
|
1377
|
+
0.9
|
|
1378
|
+
exploit_scenario: |-
|
|
1379
|
+
Unverified webhook payloads allow forged billing events.
|
|
1380
|
+
fix_template: |-
|
|
1381
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1382
|
+
pattern-either:
|
|
1383
|
+
- pattern: |-
|
|
1384
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
1385
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-046\\b'
|
|
1386
|
+
message: |-
|
|
1387
|
+
RunSec Detection [SDK-046]: CWE-345
|
|
1388
|
+
languages:
|
|
1389
|
+
- generic
|
|
1390
|
+
severity: WARNING
|
|
1391
|
+
- id: runsec.integration-security.sdk-047
|
|
1392
|
+
metadata:
|
|
1393
|
+
runsec_version: v1.0
|
|
1394
|
+
confidence: |-
|
|
1395
|
+
0.9
|
|
1396
|
+
exploit_scenario: |-
|
|
1397
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
1398
|
+
fix_template: |-
|
|
1399
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1400
|
+
pattern-either:
|
|
1401
|
+
- pattern: |-
|
|
1402
|
+
if (req.body.From) { process(req.body) }
|
|
1403
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-047\\b'
|
|
1404
|
+
message: |-
|
|
1405
|
+
RunSec Detection [SDK-047]: CWE-347
|
|
1406
|
+
languages:
|
|
1407
|
+
- generic
|
|
1408
|
+
severity: WARNING
|
|
1409
|
+
- id: runsec.integration-security.sdk-048
|
|
1410
|
+
metadata:
|
|
1411
|
+
runsec_version: v1.0
|
|
1412
|
+
confidence: |-
|
|
1413
|
+
0.9
|
|
1414
|
+
exploit_scenario: |-
|
|
1415
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
1416
|
+
fix_template: |-
|
|
1417
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1418
|
+
pattern-either:
|
|
1419
|
+
- pattern: |-
|
|
1420
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
1421
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-048\\b'
|
|
1422
|
+
message: |-
|
|
1423
|
+
RunSec Detection [SDK-048]: CWE-798
|
|
1424
|
+
languages:
|
|
1425
|
+
- generic
|
|
1426
|
+
severity: WARNING
|
|
1427
|
+
- id: runsec.integration-security.sdk-049
|
|
1428
|
+
metadata:
|
|
1429
|
+
runsec_version: v1.0
|
|
1430
|
+
confidence: |-
|
|
1431
|
+
0.9
|
|
1432
|
+
exploit_scenario: |-
|
|
1433
|
+
Forged provider events can alter delivery and trust workflows.
|
|
1434
|
+
fix_template: |-
|
|
1435
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1436
|
+
pattern-either:
|
|
1437
|
+
- pattern: |-
|
|
1438
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
1439
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-049\\b'
|
|
1440
|
+
message: |-
|
|
1441
|
+
RunSec Detection [SDK-049]: CWE-346
|
|
1442
|
+
languages:
|
|
1443
|
+
- generic
|
|
1444
|
+
severity: WARNING
|
|
1445
|
+
- id: runsec.integration-security.sdk-050
|
|
1446
|
+
metadata:
|
|
1447
|
+
runsec_version: v1.0
|
|
1448
|
+
confidence: |-
|
|
1449
|
+
0.9
|
|
1450
|
+
exploit_scenario: |-
|
|
1451
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
1452
|
+
fix_template: |-
|
|
1453
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1454
|
+
pattern-either:
|
|
1455
|
+
- pattern: |-
|
|
1456
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
1457
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-050\\b'
|
|
1458
|
+
message: |-
|
|
1459
|
+
RunSec Detection [SDK-050]: CWE-20
|
|
1460
|
+
languages:
|
|
1461
|
+
- generic
|
|
1462
|
+
severity: WARNING
|
|
1463
|
+
- id: runsec.integration-security.sdk-051
|
|
1464
|
+
metadata:
|
|
1465
|
+
runsec_version: v1.0
|
|
1466
|
+
confidence: |-
|
|
1467
|
+
0.9
|
|
1468
|
+
exploit_scenario: |-
|
|
1469
|
+
Unverified webhook payloads allow forged billing events.
|
|
1470
|
+
fix_template: |-
|
|
1471
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1472
|
+
pattern-either:
|
|
1473
|
+
- pattern: |-
|
|
1474
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
1475
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-051\\b'
|
|
1476
|
+
message: |-
|
|
1477
|
+
RunSec Detection [SDK-051]: CWE-345
|
|
1478
|
+
languages:
|
|
1479
|
+
- generic
|
|
1480
|
+
severity: WARNING
|
|
1481
|
+
- id: runsec.integration-security.sdk-052
|
|
1482
|
+
metadata:
|
|
1483
|
+
runsec_version: v1.0
|
|
1484
|
+
confidence: |-
|
|
1485
|
+
0.9
|
|
1486
|
+
exploit_scenario: |-
|
|
1487
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
1488
|
+
fix_template: |-
|
|
1489
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1490
|
+
pattern-either:
|
|
1491
|
+
- pattern: |-
|
|
1492
|
+
if (req.body.From) { process(req.body) }
|
|
1493
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-052\\b'
|
|
1494
|
+
message: |-
|
|
1495
|
+
RunSec Detection [SDK-052]: CWE-347
|
|
1496
|
+
languages:
|
|
1497
|
+
- generic
|
|
1498
|
+
severity: WARNING
|
|
1499
|
+
- id: runsec.integration-security.sdk-053
|
|
1500
|
+
metadata:
|
|
1501
|
+
runsec_version: v1.0
|
|
1502
|
+
confidence: |-
|
|
1503
|
+
0.9
|
|
1504
|
+
exploit_scenario: |-
|
|
1505
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
1506
|
+
fix_template: |-
|
|
1507
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1508
|
+
pattern-either:
|
|
1509
|
+
- pattern: |-
|
|
1510
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
1511
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-053\\b'
|
|
1512
|
+
message: |-
|
|
1513
|
+
RunSec Detection [SDK-053]: CWE-798
|
|
1514
|
+
languages:
|
|
1515
|
+
- generic
|
|
1516
|
+
severity: WARNING
|
|
1517
|
+
- id: runsec.integration-security.sdk-054
|
|
1518
|
+
metadata:
|
|
1519
|
+
runsec_version: v1.0
|
|
1520
|
+
confidence: |-
|
|
1521
|
+
0.9
|
|
1522
|
+
exploit_scenario: |-
|
|
1523
|
+
Forged provider events can alter delivery and trust workflows.
|
|
1524
|
+
fix_template: |-
|
|
1525
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1526
|
+
pattern-either:
|
|
1527
|
+
- pattern: |-
|
|
1528
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
1529
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-054\\b'
|
|
1530
|
+
message: |-
|
|
1531
|
+
RunSec Detection [SDK-054]: CWE-346
|
|
1532
|
+
languages:
|
|
1533
|
+
- generic
|
|
1534
|
+
severity: WARNING
|
|
1535
|
+
- id: runsec.integration-security.sdk-055
|
|
1536
|
+
metadata:
|
|
1537
|
+
runsec_version: v1.0
|
|
1538
|
+
confidence: |-
|
|
1539
|
+
0.9
|
|
1540
|
+
exploit_scenario: |-
|
|
1541
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
1542
|
+
fix_template: |-
|
|
1543
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1544
|
+
pattern-either:
|
|
1545
|
+
- pattern: |-
|
|
1546
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
1547
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-055\\b'
|
|
1548
|
+
message: |-
|
|
1549
|
+
RunSec Detection [SDK-055]: CWE-20
|
|
1550
|
+
languages:
|
|
1551
|
+
- generic
|
|
1552
|
+
severity: WARNING
|
|
1553
|
+
- id: runsec.integration-security.sdk-056
|
|
1554
|
+
metadata:
|
|
1555
|
+
runsec_version: v1.0
|
|
1556
|
+
confidence: |-
|
|
1557
|
+
0.9
|
|
1558
|
+
exploit_scenario: |-
|
|
1559
|
+
Unverified webhook payloads allow forged billing events.
|
|
1560
|
+
fix_template: |-
|
|
1561
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1562
|
+
pattern-either:
|
|
1563
|
+
- pattern: |-
|
|
1564
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
1565
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-056\\b'
|
|
1566
|
+
message: |-
|
|
1567
|
+
RunSec Detection [SDK-056]: CWE-345
|
|
1568
|
+
languages:
|
|
1569
|
+
- generic
|
|
1570
|
+
severity: WARNING
|
|
1571
|
+
- id: runsec.integration-security.sdk-057
|
|
1572
|
+
metadata:
|
|
1573
|
+
runsec_version: v1.0
|
|
1574
|
+
confidence: |-
|
|
1575
|
+
0.9
|
|
1576
|
+
exploit_scenario: |-
|
|
1577
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
1578
|
+
fix_template: |-
|
|
1579
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1580
|
+
pattern-either:
|
|
1581
|
+
- pattern: |-
|
|
1582
|
+
if (req.body.From) { process(req.body) }
|
|
1583
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-057\\b'
|
|
1584
|
+
message: |-
|
|
1585
|
+
RunSec Detection [SDK-057]: CWE-347
|
|
1586
|
+
languages:
|
|
1587
|
+
- generic
|
|
1588
|
+
severity: WARNING
|
|
1589
|
+
- id: runsec.integration-security.sdk-058
|
|
1590
|
+
metadata:
|
|
1591
|
+
runsec_version: v1.0
|
|
1592
|
+
confidence: |-
|
|
1593
|
+
0.9
|
|
1594
|
+
exploit_scenario: |-
|
|
1595
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
1596
|
+
fix_template: |-
|
|
1597
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1598
|
+
pattern-either:
|
|
1599
|
+
- pattern: |-
|
|
1600
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
1601
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-058\\b'
|
|
1602
|
+
message: |-
|
|
1603
|
+
RunSec Detection [SDK-058]: CWE-798
|
|
1604
|
+
languages:
|
|
1605
|
+
- generic
|
|
1606
|
+
severity: WARNING
|
|
1607
|
+
- id: runsec.integration-security.sdk-059
|
|
1608
|
+
metadata:
|
|
1609
|
+
runsec_version: v1.0
|
|
1610
|
+
confidence: |-
|
|
1611
|
+
0.9
|
|
1612
|
+
exploit_scenario: |-
|
|
1613
|
+
Forged provider events can alter delivery and trust workflows.
|
|
1614
|
+
fix_template: |-
|
|
1615
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1616
|
+
pattern-either:
|
|
1617
|
+
- pattern: |-
|
|
1618
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
1619
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-059\\b'
|
|
1620
|
+
message: |-
|
|
1621
|
+
RunSec Detection [SDK-059]: CWE-346
|
|
1622
|
+
languages:
|
|
1623
|
+
- generic
|
|
1624
|
+
severity: WARNING
|
|
1625
|
+
- id: runsec.integration-security.sdk-060
|
|
1626
|
+
metadata:
|
|
1627
|
+
runsec_version: v1.0
|
|
1628
|
+
confidence: |-
|
|
1629
|
+
0.9
|
|
1630
|
+
exploit_scenario: |-
|
|
1631
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
1632
|
+
fix_template: |-
|
|
1633
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1634
|
+
pattern-either:
|
|
1635
|
+
- pattern: |-
|
|
1636
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
1637
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-060\\b'
|
|
1638
|
+
message: |-
|
|
1639
|
+
RunSec Detection [SDK-060]: CWE-20
|
|
1640
|
+
languages:
|
|
1641
|
+
- generic
|
|
1642
|
+
severity: WARNING
|
|
1643
|
+
- id: runsec.integration-security.sdk-061
|
|
1644
|
+
metadata:
|
|
1645
|
+
runsec_version: v1.0
|
|
1646
|
+
confidence: |-
|
|
1647
|
+
0.9
|
|
1648
|
+
exploit_scenario: |-
|
|
1649
|
+
Unverified webhook payloads allow forged billing events.
|
|
1650
|
+
fix_template: |-
|
|
1651
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1652
|
+
pattern-either:
|
|
1653
|
+
- pattern: |-
|
|
1654
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
1655
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-061\\b'
|
|
1656
|
+
message: |-
|
|
1657
|
+
RunSec Detection [SDK-061]: CWE-345
|
|
1658
|
+
languages:
|
|
1659
|
+
- generic
|
|
1660
|
+
severity: WARNING
|
|
1661
|
+
- id: runsec.integration-security.sdk-062
|
|
1662
|
+
metadata:
|
|
1663
|
+
runsec_version: v1.0
|
|
1664
|
+
confidence: |-
|
|
1665
|
+
0.9
|
|
1666
|
+
exploit_scenario: |-
|
|
1667
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
1668
|
+
fix_template: |-
|
|
1669
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1670
|
+
pattern-either:
|
|
1671
|
+
- pattern: |-
|
|
1672
|
+
if (req.body.From) { process(req.body) }
|
|
1673
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-062\\b'
|
|
1674
|
+
message: |-
|
|
1675
|
+
RunSec Detection [SDK-062]: CWE-347
|
|
1676
|
+
languages:
|
|
1677
|
+
- generic
|
|
1678
|
+
severity: WARNING
|
|
1679
|
+
- id: runsec.integration-security.sdk-063
|
|
1680
|
+
metadata:
|
|
1681
|
+
runsec_version: v1.0
|
|
1682
|
+
confidence: |-
|
|
1683
|
+
0.9
|
|
1684
|
+
exploit_scenario: |-
|
|
1685
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
1686
|
+
fix_template: |-
|
|
1687
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1688
|
+
pattern-either:
|
|
1689
|
+
- pattern: |-
|
|
1690
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
1691
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-063\\b'
|
|
1692
|
+
message: |-
|
|
1693
|
+
RunSec Detection [SDK-063]: CWE-798
|
|
1694
|
+
languages:
|
|
1695
|
+
- generic
|
|
1696
|
+
severity: WARNING
|
|
1697
|
+
- id: runsec.integration-security.sdk-064
|
|
1698
|
+
metadata:
|
|
1699
|
+
runsec_version: v1.0
|
|
1700
|
+
confidence: |-
|
|
1701
|
+
0.9
|
|
1702
|
+
exploit_scenario: |-
|
|
1703
|
+
Forged provider events can alter delivery and trust workflows.
|
|
1704
|
+
fix_template: |-
|
|
1705
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1706
|
+
pattern-either:
|
|
1707
|
+
- pattern: |-
|
|
1708
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
1709
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-064\\b'
|
|
1710
|
+
message: |-
|
|
1711
|
+
RunSec Detection [SDK-064]: CWE-346
|
|
1712
|
+
languages:
|
|
1713
|
+
- generic
|
|
1714
|
+
severity: WARNING
|
|
1715
|
+
- id: runsec.integration-security.sdk-065
|
|
1716
|
+
metadata:
|
|
1717
|
+
runsec_version: v1.0
|
|
1718
|
+
confidence: |-
|
|
1719
|
+
0.9
|
|
1720
|
+
exploit_scenario: |-
|
|
1721
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
1722
|
+
fix_template: |-
|
|
1723
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1724
|
+
pattern-either:
|
|
1725
|
+
- pattern: |-
|
|
1726
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
1727
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-065\\b'
|
|
1728
|
+
message: |-
|
|
1729
|
+
RunSec Detection [SDK-065]: CWE-20
|
|
1730
|
+
languages:
|
|
1731
|
+
- generic
|
|
1732
|
+
severity: WARNING
|
|
1733
|
+
- id: runsec.integration-security.sdk-066
|
|
1734
|
+
metadata:
|
|
1735
|
+
runsec_version: v1.0
|
|
1736
|
+
confidence: |-
|
|
1737
|
+
0.9
|
|
1738
|
+
exploit_scenario: |-
|
|
1739
|
+
Unverified webhook payloads allow forged billing events.
|
|
1740
|
+
fix_template: |-
|
|
1741
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1742
|
+
pattern-either:
|
|
1743
|
+
- pattern: |-
|
|
1744
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
1745
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-066\\b'
|
|
1746
|
+
message: |-
|
|
1747
|
+
RunSec Detection [SDK-066]: CWE-345
|
|
1748
|
+
languages:
|
|
1749
|
+
- generic
|
|
1750
|
+
severity: WARNING
|
|
1751
|
+
- id: runsec.integration-security.sdk-067
|
|
1752
|
+
metadata:
|
|
1753
|
+
runsec_version: v1.0
|
|
1754
|
+
confidence: |-
|
|
1755
|
+
0.9
|
|
1756
|
+
exploit_scenario: |-
|
|
1757
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
1758
|
+
fix_template: |-
|
|
1759
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1760
|
+
pattern-either:
|
|
1761
|
+
- pattern: |-
|
|
1762
|
+
if (req.body.From) { process(req.body) }
|
|
1763
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-067\\b'
|
|
1764
|
+
message: |-
|
|
1765
|
+
RunSec Detection [SDK-067]: CWE-347
|
|
1766
|
+
languages:
|
|
1767
|
+
- generic
|
|
1768
|
+
severity: WARNING
|
|
1769
|
+
- id: runsec.integration-security.sdk-068
|
|
1770
|
+
metadata:
|
|
1771
|
+
runsec_version: v1.0
|
|
1772
|
+
confidence: |-
|
|
1773
|
+
0.9
|
|
1774
|
+
exploit_scenario: |-
|
|
1775
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
1776
|
+
fix_template: |-
|
|
1777
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1778
|
+
pattern-either:
|
|
1779
|
+
- pattern: |-
|
|
1780
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
1781
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-068\\b'
|
|
1782
|
+
message: |-
|
|
1783
|
+
RunSec Detection [SDK-068]: CWE-798
|
|
1784
|
+
languages:
|
|
1785
|
+
- generic
|
|
1786
|
+
severity: WARNING
|
|
1787
|
+
- id: runsec.integration-security.sdk-069
|
|
1788
|
+
metadata:
|
|
1789
|
+
runsec_version: v1.0
|
|
1790
|
+
confidence: |-
|
|
1791
|
+
0.9
|
|
1792
|
+
exploit_scenario: |-
|
|
1793
|
+
Forged provider events can alter delivery and trust workflows.
|
|
1794
|
+
fix_template: |-
|
|
1795
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1796
|
+
pattern-either:
|
|
1797
|
+
- pattern: |-
|
|
1798
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
1799
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-069\\b'
|
|
1800
|
+
message: |-
|
|
1801
|
+
RunSec Detection [SDK-069]: CWE-346
|
|
1802
|
+
languages:
|
|
1803
|
+
- generic
|
|
1804
|
+
severity: WARNING
|
|
1805
|
+
- id: runsec.integration-security.sdk-070
|
|
1806
|
+
metadata:
|
|
1807
|
+
runsec_version: v1.0
|
|
1808
|
+
confidence: |-
|
|
1809
|
+
0.9
|
|
1810
|
+
exploit_scenario: |-
|
|
1811
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
1812
|
+
fix_template: |-
|
|
1813
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1814
|
+
pattern-either:
|
|
1815
|
+
- pattern: |-
|
|
1816
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
1817
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-070\\b'
|
|
1818
|
+
message: |-
|
|
1819
|
+
RunSec Detection [SDK-070]: CWE-20
|
|
1820
|
+
languages:
|
|
1821
|
+
- generic
|
|
1822
|
+
severity: WARNING
|
|
1823
|
+
- id: runsec.integration-security.sdk-071
|
|
1824
|
+
metadata:
|
|
1825
|
+
runsec_version: v1.0
|
|
1826
|
+
confidence: |-
|
|
1827
|
+
0.9
|
|
1828
|
+
exploit_scenario: |-
|
|
1829
|
+
Unverified webhook payloads allow forged billing events.
|
|
1830
|
+
fix_template: |-
|
|
1831
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1832
|
+
pattern-either:
|
|
1833
|
+
- pattern: |-
|
|
1834
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
1835
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-071\\b'
|
|
1836
|
+
message: |-
|
|
1837
|
+
RunSec Detection [SDK-071]: CWE-345
|
|
1838
|
+
languages:
|
|
1839
|
+
- generic
|
|
1840
|
+
severity: WARNING
|
|
1841
|
+
- id: runsec.integration-security.sdk-072
|
|
1842
|
+
metadata:
|
|
1843
|
+
runsec_version: v1.0
|
|
1844
|
+
confidence: |-
|
|
1845
|
+
0.9
|
|
1846
|
+
exploit_scenario: |-
|
|
1847
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
1848
|
+
fix_template: |-
|
|
1849
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1850
|
+
pattern-either:
|
|
1851
|
+
- pattern: |-
|
|
1852
|
+
if (req.body.From) { process(req.body) }
|
|
1853
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-072\\b'
|
|
1854
|
+
message: |-
|
|
1855
|
+
RunSec Detection [SDK-072]: CWE-347
|
|
1856
|
+
languages:
|
|
1857
|
+
- generic
|
|
1858
|
+
severity: WARNING
|
|
1859
|
+
- id: runsec.integration-security.sdk-073
|
|
1860
|
+
metadata:
|
|
1861
|
+
runsec_version: v1.0
|
|
1862
|
+
confidence: |-
|
|
1863
|
+
0.9
|
|
1864
|
+
exploit_scenario: |-
|
|
1865
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
1866
|
+
fix_template: |-
|
|
1867
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1868
|
+
pattern-either:
|
|
1869
|
+
- pattern: |-
|
|
1870
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
1871
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-073\\b'
|
|
1872
|
+
message: |-
|
|
1873
|
+
RunSec Detection [SDK-073]: CWE-798
|
|
1874
|
+
languages:
|
|
1875
|
+
- generic
|
|
1876
|
+
severity: WARNING
|
|
1877
|
+
- id: runsec.integration-security.sdk-074
|
|
1878
|
+
metadata:
|
|
1879
|
+
runsec_version: v1.0
|
|
1880
|
+
confidence: |-
|
|
1881
|
+
0.9
|
|
1882
|
+
exploit_scenario: |-
|
|
1883
|
+
Forged provider events can alter delivery and trust workflows.
|
|
1884
|
+
fix_template: |-
|
|
1885
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1886
|
+
pattern-either:
|
|
1887
|
+
- pattern: |-
|
|
1888
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
1889
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-074\\b'
|
|
1890
|
+
message: |-
|
|
1891
|
+
RunSec Detection [SDK-074]: CWE-346
|
|
1892
|
+
languages:
|
|
1893
|
+
- generic
|
|
1894
|
+
severity: WARNING
|
|
1895
|
+
- id: runsec.integration-security.sdk-075
|
|
1896
|
+
metadata:
|
|
1897
|
+
runsec_version: v1.0
|
|
1898
|
+
confidence: |-
|
|
1899
|
+
0.9
|
|
1900
|
+
exploit_scenario: |-
|
|
1901
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
1902
|
+
fix_template: |-
|
|
1903
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1904
|
+
pattern-either:
|
|
1905
|
+
- pattern: |-
|
|
1906
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
1907
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-075\\b'
|
|
1908
|
+
message: |-
|
|
1909
|
+
RunSec Detection [SDK-075]: CWE-20
|
|
1910
|
+
languages:
|
|
1911
|
+
- generic
|
|
1912
|
+
severity: WARNING
|
|
1913
|
+
- id: runsec.integration-security.sdk-076
|
|
1914
|
+
metadata:
|
|
1915
|
+
runsec_version: v1.0
|
|
1916
|
+
confidence: |-
|
|
1917
|
+
0.9
|
|
1918
|
+
exploit_scenario: |-
|
|
1919
|
+
Unverified webhook payloads allow forged billing events.
|
|
1920
|
+
fix_template: |-
|
|
1921
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1922
|
+
pattern-either:
|
|
1923
|
+
- pattern: |-
|
|
1924
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
1925
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-076\\b'
|
|
1926
|
+
message: |-
|
|
1927
|
+
RunSec Detection [SDK-076]: CWE-345
|
|
1928
|
+
languages:
|
|
1929
|
+
- generic
|
|
1930
|
+
severity: WARNING
|
|
1931
|
+
- id: runsec.integration-security.sdk-077
|
|
1932
|
+
metadata:
|
|
1933
|
+
runsec_version: v1.0
|
|
1934
|
+
confidence: |-
|
|
1935
|
+
0.9
|
|
1936
|
+
exploit_scenario: |-
|
|
1937
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
1938
|
+
fix_template: |-
|
|
1939
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1940
|
+
pattern-either:
|
|
1941
|
+
- pattern: |-
|
|
1942
|
+
if (req.body.From) { process(req.body) }
|
|
1943
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-077\\b'
|
|
1944
|
+
message: |-
|
|
1945
|
+
RunSec Detection [SDK-077]: CWE-347
|
|
1946
|
+
languages:
|
|
1947
|
+
- generic
|
|
1948
|
+
severity: WARNING
|
|
1949
|
+
- id: runsec.integration-security.sdk-078
|
|
1950
|
+
metadata:
|
|
1951
|
+
runsec_version: v1.0
|
|
1952
|
+
confidence: |-
|
|
1953
|
+
0.9
|
|
1954
|
+
exploit_scenario: |-
|
|
1955
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
1956
|
+
fix_template: |-
|
|
1957
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1958
|
+
pattern-either:
|
|
1959
|
+
- pattern: |-
|
|
1960
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
1961
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-078\\b'
|
|
1962
|
+
message: |-
|
|
1963
|
+
RunSec Detection [SDK-078]: CWE-798
|
|
1964
|
+
languages:
|
|
1965
|
+
- generic
|
|
1966
|
+
severity: WARNING
|
|
1967
|
+
- id: runsec.integration-security.sdk-079
|
|
1968
|
+
metadata:
|
|
1969
|
+
runsec_version: v1.0
|
|
1970
|
+
confidence: |-
|
|
1971
|
+
0.9
|
|
1972
|
+
exploit_scenario: |-
|
|
1973
|
+
Forged provider events can alter delivery and trust workflows.
|
|
1974
|
+
fix_template: |-
|
|
1975
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1976
|
+
pattern-either:
|
|
1977
|
+
- pattern: |-
|
|
1978
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
1979
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-079\\b'
|
|
1980
|
+
message: |-
|
|
1981
|
+
RunSec Detection [SDK-079]: CWE-346
|
|
1982
|
+
languages:
|
|
1983
|
+
- generic
|
|
1984
|
+
severity: WARNING
|
|
1985
|
+
- id: runsec.integration-security.sdk-080
|
|
1986
|
+
metadata:
|
|
1987
|
+
runsec_version: v1.0
|
|
1988
|
+
confidence: |-
|
|
1989
|
+
0.9
|
|
1990
|
+
exploit_scenario: |-
|
|
1991
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
1992
|
+
fix_template: |-
|
|
1993
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
1994
|
+
pattern-either:
|
|
1995
|
+
- pattern: |-
|
|
1996
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
1997
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-080\\b'
|
|
1998
|
+
message: |-
|
|
1999
|
+
RunSec Detection [SDK-080]: CWE-20
|
|
2000
|
+
languages:
|
|
2001
|
+
- generic
|
|
2002
|
+
severity: WARNING
|
|
2003
|
+
- id: runsec.integration-security.sdk-081
|
|
2004
|
+
metadata:
|
|
2005
|
+
runsec_version: v1.0
|
|
2006
|
+
confidence: |-
|
|
2007
|
+
0.9
|
|
2008
|
+
exploit_scenario: |-
|
|
2009
|
+
Unverified webhook payloads allow forged billing events.
|
|
2010
|
+
fix_template: |-
|
|
2011
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2012
|
+
pattern-either:
|
|
2013
|
+
- pattern: |-
|
|
2014
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
2015
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-081\\b'
|
|
2016
|
+
message: |-
|
|
2017
|
+
RunSec Detection [SDK-081]: CWE-345
|
|
2018
|
+
languages:
|
|
2019
|
+
- generic
|
|
2020
|
+
severity: WARNING
|
|
2021
|
+
- id: runsec.integration-security.sdk-082
|
|
2022
|
+
metadata:
|
|
2023
|
+
runsec_version: v1.0
|
|
2024
|
+
confidence: |-
|
|
2025
|
+
0.9
|
|
2026
|
+
exploit_scenario: |-
|
|
2027
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
2028
|
+
fix_template: |-
|
|
2029
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2030
|
+
pattern-either:
|
|
2031
|
+
- pattern: |-
|
|
2032
|
+
if (req.body.From) { process(req.body) }
|
|
2033
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-082\\b'
|
|
2034
|
+
message: |-
|
|
2035
|
+
RunSec Detection [SDK-082]: CWE-347
|
|
2036
|
+
languages:
|
|
2037
|
+
- generic
|
|
2038
|
+
severity: WARNING
|
|
2039
|
+
- id: runsec.integration-security.sdk-083
|
|
2040
|
+
metadata:
|
|
2041
|
+
runsec_version: v1.0
|
|
2042
|
+
confidence: |-
|
|
2043
|
+
0.9
|
|
2044
|
+
exploit_scenario: |-
|
|
2045
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
2046
|
+
fix_template: |-
|
|
2047
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2048
|
+
pattern-either:
|
|
2049
|
+
- pattern: |-
|
|
2050
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
2051
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-083\\b'
|
|
2052
|
+
message: |-
|
|
2053
|
+
RunSec Detection [SDK-083]: CWE-798
|
|
2054
|
+
languages:
|
|
2055
|
+
- generic
|
|
2056
|
+
severity: WARNING
|
|
2057
|
+
- id: runsec.integration-security.sdk-084
|
|
2058
|
+
metadata:
|
|
2059
|
+
runsec_version: v1.0
|
|
2060
|
+
confidence: |-
|
|
2061
|
+
0.9
|
|
2062
|
+
exploit_scenario: |-
|
|
2063
|
+
Forged provider events can alter delivery and trust workflows.
|
|
2064
|
+
fix_template: |-
|
|
2065
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2066
|
+
pattern-either:
|
|
2067
|
+
- pattern: |-
|
|
2068
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
2069
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-084\\b'
|
|
2070
|
+
message: |-
|
|
2071
|
+
RunSec Detection [SDK-084]: CWE-346
|
|
2072
|
+
languages:
|
|
2073
|
+
- generic
|
|
2074
|
+
severity: WARNING
|
|
2075
|
+
- id: runsec.integration-security.sdk-085
|
|
2076
|
+
metadata:
|
|
2077
|
+
runsec_version: v1.0
|
|
2078
|
+
confidence: |-
|
|
2079
|
+
0.9
|
|
2080
|
+
exploit_scenario: |-
|
|
2081
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
2082
|
+
fix_template: |-
|
|
2083
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2084
|
+
pattern-either:
|
|
2085
|
+
- pattern: |-
|
|
2086
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
2087
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-085\\b'
|
|
2088
|
+
message: |-
|
|
2089
|
+
RunSec Detection [SDK-085]: CWE-20
|
|
2090
|
+
languages:
|
|
2091
|
+
- generic
|
|
2092
|
+
severity: WARNING
|
|
2093
|
+
- id: runsec.integration-security.sdk-086
|
|
2094
|
+
metadata:
|
|
2095
|
+
runsec_version: v1.0
|
|
2096
|
+
confidence: |-
|
|
2097
|
+
0.9
|
|
2098
|
+
exploit_scenario: |-
|
|
2099
|
+
Unverified webhook payloads allow forged billing events.
|
|
2100
|
+
fix_template: |-
|
|
2101
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2102
|
+
pattern-either:
|
|
2103
|
+
- pattern: |-
|
|
2104
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
2105
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-086\\b'
|
|
2106
|
+
message: |-
|
|
2107
|
+
RunSec Detection [SDK-086]: CWE-345
|
|
2108
|
+
languages:
|
|
2109
|
+
- generic
|
|
2110
|
+
severity: WARNING
|
|
2111
|
+
- id: runsec.integration-security.sdk-087
|
|
2112
|
+
metadata:
|
|
2113
|
+
runsec_version: v1.0
|
|
2114
|
+
confidence: |-
|
|
2115
|
+
0.9
|
|
2116
|
+
exploit_scenario: |-
|
|
2117
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
2118
|
+
fix_template: |-
|
|
2119
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2120
|
+
pattern-either:
|
|
2121
|
+
- pattern: |-
|
|
2122
|
+
if (req.body.From) { process(req.body) }
|
|
2123
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-087\\b'
|
|
2124
|
+
message: |-
|
|
2125
|
+
RunSec Detection [SDK-087]: CWE-347
|
|
2126
|
+
languages:
|
|
2127
|
+
- generic
|
|
2128
|
+
severity: WARNING
|
|
2129
|
+
- id: runsec.integration-security.sdk-088
|
|
2130
|
+
metadata:
|
|
2131
|
+
runsec_version: v1.0
|
|
2132
|
+
confidence: |-
|
|
2133
|
+
0.9
|
|
2134
|
+
exploit_scenario: |-
|
|
2135
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
2136
|
+
fix_template: |-
|
|
2137
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2138
|
+
pattern-either:
|
|
2139
|
+
- pattern: |-
|
|
2140
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
2141
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-088\\b'
|
|
2142
|
+
message: |-
|
|
2143
|
+
RunSec Detection [SDK-088]: CWE-798
|
|
2144
|
+
languages:
|
|
2145
|
+
- generic
|
|
2146
|
+
severity: WARNING
|
|
2147
|
+
- id: runsec.integration-security.sdk-089
|
|
2148
|
+
metadata:
|
|
2149
|
+
runsec_version: v1.0
|
|
2150
|
+
confidence: |-
|
|
2151
|
+
0.9
|
|
2152
|
+
exploit_scenario: |-
|
|
2153
|
+
Forged provider events can alter delivery and trust workflows.
|
|
2154
|
+
fix_template: |-
|
|
2155
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2156
|
+
pattern-either:
|
|
2157
|
+
- pattern: |-
|
|
2158
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
2159
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-089\\b'
|
|
2160
|
+
message: |-
|
|
2161
|
+
RunSec Detection [SDK-089]: CWE-346
|
|
2162
|
+
languages:
|
|
2163
|
+
- generic
|
|
2164
|
+
severity: WARNING
|
|
2165
|
+
- id: runsec.integration-security.sdk-090
|
|
2166
|
+
metadata:
|
|
2167
|
+
runsec_version: v1.0
|
|
2168
|
+
confidence: |-
|
|
2169
|
+
0.9
|
|
2170
|
+
exploit_scenario: |-
|
|
2171
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
2172
|
+
fix_template: |-
|
|
2173
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2174
|
+
pattern-either:
|
|
2175
|
+
- pattern: |-
|
|
2176
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
2177
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-090\\b'
|
|
2178
|
+
message: |-
|
|
2179
|
+
RunSec Detection [SDK-090]: CWE-20
|
|
2180
|
+
languages:
|
|
2181
|
+
- generic
|
|
2182
|
+
severity: WARNING
|
|
2183
|
+
- id: runsec.integration-security.sdk-091
|
|
2184
|
+
metadata:
|
|
2185
|
+
runsec_version: v1.0
|
|
2186
|
+
confidence: |-
|
|
2187
|
+
0.9
|
|
2188
|
+
exploit_scenario: |-
|
|
2189
|
+
Unverified webhook payloads allow forged billing events.
|
|
2190
|
+
fix_template: |-
|
|
2191
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2192
|
+
pattern-either:
|
|
2193
|
+
- pattern: |-
|
|
2194
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
2195
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-091\\b'
|
|
2196
|
+
message: |-
|
|
2197
|
+
RunSec Detection [SDK-091]: CWE-345
|
|
2198
|
+
languages:
|
|
2199
|
+
- generic
|
|
2200
|
+
severity: WARNING
|
|
2201
|
+
- id: runsec.integration-security.sdk-092
|
|
2202
|
+
metadata:
|
|
2203
|
+
runsec_version: v1.0
|
|
2204
|
+
confidence: |-
|
|
2205
|
+
0.9
|
|
2206
|
+
exploit_scenario: |-
|
|
2207
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
2208
|
+
fix_template: |-
|
|
2209
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2210
|
+
pattern-either:
|
|
2211
|
+
- pattern: |-
|
|
2212
|
+
if (req.body.From) { process(req.body) }
|
|
2213
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-092\\b'
|
|
2214
|
+
message: |-
|
|
2215
|
+
RunSec Detection [SDK-092]: CWE-347
|
|
2216
|
+
languages:
|
|
2217
|
+
- generic
|
|
2218
|
+
severity: WARNING
|
|
2219
|
+
- id: runsec.integration-security.sdk-093
|
|
2220
|
+
metadata:
|
|
2221
|
+
runsec_version: v1.0
|
|
2222
|
+
confidence: |-
|
|
2223
|
+
0.9
|
|
2224
|
+
exploit_scenario: |-
|
|
2225
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
2226
|
+
fix_template: |-
|
|
2227
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2228
|
+
pattern-either:
|
|
2229
|
+
- pattern: |-
|
|
2230
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
2231
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-093\\b'
|
|
2232
|
+
message: |-
|
|
2233
|
+
RunSec Detection [SDK-093]: CWE-798
|
|
2234
|
+
languages:
|
|
2235
|
+
- generic
|
|
2236
|
+
severity: WARNING
|
|
2237
|
+
- id: runsec.integration-security.sdk-094
|
|
2238
|
+
metadata:
|
|
2239
|
+
runsec_version: v1.0
|
|
2240
|
+
confidence: |-
|
|
2241
|
+
0.9
|
|
2242
|
+
exploit_scenario: |-
|
|
2243
|
+
Forged provider events can alter delivery and trust workflows.
|
|
2244
|
+
fix_template: |-
|
|
2245
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2246
|
+
pattern-either:
|
|
2247
|
+
- pattern: |-
|
|
2248
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
2249
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-094\\b'
|
|
2250
|
+
message: |-
|
|
2251
|
+
RunSec Detection [SDK-094]: CWE-346
|
|
2252
|
+
languages:
|
|
2253
|
+
- generic
|
|
2254
|
+
severity: WARNING
|
|
2255
|
+
- id: runsec.integration-security.sdk-095
|
|
2256
|
+
metadata:
|
|
2257
|
+
runsec_version: v1.0
|
|
2258
|
+
confidence: |-
|
|
2259
|
+
0.9
|
|
2260
|
+
exploit_scenario: |-
|
|
2261
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
2262
|
+
fix_template: |-
|
|
2263
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2264
|
+
pattern-either:
|
|
2265
|
+
- pattern: |-
|
|
2266
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
2267
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-095\\b'
|
|
2268
|
+
message: |-
|
|
2269
|
+
RunSec Detection [SDK-095]: CWE-20
|
|
2270
|
+
languages:
|
|
2271
|
+
- generic
|
|
2272
|
+
severity: WARNING
|
|
2273
|
+
- id: runsec.integration-security.sdk-096
|
|
2274
|
+
metadata:
|
|
2275
|
+
runsec_version: v1.0
|
|
2276
|
+
confidence: |-
|
|
2277
|
+
0.9
|
|
2278
|
+
exploit_scenario: |-
|
|
2279
|
+
Unverified webhook payloads allow forged billing events.
|
|
2280
|
+
fix_template: |-
|
|
2281
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2282
|
+
pattern-either:
|
|
2283
|
+
- pattern: |-
|
|
2284
|
+
app.post('/stripe', (req,res)=> handle(req.body))
|
|
2285
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-096\\b'
|
|
2286
|
+
message: |-
|
|
2287
|
+
RunSec Detection [SDK-096]: CWE-345
|
|
2288
|
+
languages:
|
|
2289
|
+
- generic
|
|
2290
|
+
severity: WARNING
|
|
2291
|
+
- id: runsec.integration-security.sdk-097
|
|
2292
|
+
metadata:
|
|
2293
|
+
runsec_version: v1.0
|
|
2294
|
+
confidence: |-
|
|
2295
|
+
0.9
|
|
2296
|
+
exploit_scenario: |-
|
|
2297
|
+
Missing signature checks enables spoofed SMS/call callbacks.
|
|
2298
|
+
fix_template: |-
|
|
2299
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2300
|
+
pattern-either:
|
|
2301
|
+
- pattern: |-
|
|
2302
|
+
if (req.body.From) { process(req.body) }
|
|
2303
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-097\\b'
|
|
2304
|
+
message: |-
|
|
2305
|
+
RunSec Detection [SDK-097]: CWE-347
|
|
2306
|
+
languages:
|
|
2307
|
+
- generic
|
|
2308
|
+
severity: WARNING
|
|
2309
|
+
- id: runsec.integration-security.sdk-098
|
|
2310
|
+
metadata:
|
|
2311
|
+
runsec_version: v1.0
|
|
2312
|
+
confidence: |-
|
|
2313
|
+
0.9
|
|
2314
|
+
exploit_scenario: |-
|
|
2315
|
+
Embedded cloud credentials leak and can be reused by attackers.
|
|
2316
|
+
fix_template: |-
|
|
2317
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2318
|
+
pattern-either:
|
|
2319
|
+
- pattern: |-
|
|
2320
|
+
new S3Client({ credentials: { accessKeyId: 'AKIA_TEST', secretAccessKey: 'x' } })
|
|
2321
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-098\\b'
|
|
2322
|
+
message: |-
|
|
2323
|
+
RunSec Detection [SDK-098]: CWE-798
|
|
2324
|
+
languages:
|
|
2325
|
+
- generic
|
|
2326
|
+
severity: WARNING
|
|
2327
|
+
- id: runsec.integration-security.sdk-099
|
|
2328
|
+
metadata:
|
|
2329
|
+
runsec_version: v1.0
|
|
2330
|
+
confidence: |-
|
|
2331
|
+
0.9
|
|
2332
|
+
exploit_scenario: |-
|
|
2333
|
+
Forged provider events can alter delivery and trust workflows.
|
|
2334
|
+
fix_template: |-
|
|
2335
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2336
|
+
pattern-either:
|
|
2337
|
+
- pattern: |-
|
|
2338
|
+
app.post('/sendgrid/events', jsonParser, processEvents)
|
|
2339
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-099\\b'
|
|
2340
|
+
message: |-
|
|
2341
|
+
RunSec Detection [SDK-099]: CWE-346
|
|
2342
|
+
languages:
|
|
2343
|
+
- generic
|
|
2344
|
+
severity: WARNING
|
|
2345
|
+
- id: runsec.integration-security.sdk-100
|
|
2346
|
+
metadata:
|
|
2347
|
+
runsec_version: v1.0
|
|
2348
|
+
confidence: |-
|
|
2349
|
+
0.9
|
|
2350
|
+
exploit_scenario: |-
|
|
2351
|
+
Unrestricted function invocation can execute privileged workflows.
|
|
2352
|
+
fix_template: |-
|
|
2353
|
+
Autofix: verify webhook signatures, remove hardcoded keys, and enforce endpoint/function allowlists.
|
|
2354
|
+
pattern-either:
|
|
2355
|
+
- pattern: |-
|
|
2356
|
+
lambda.send(new InvokeCommand({ FunctionName: req.body.fn }))
|
|
2357
|
+
- pattern-regex: 'Vulnerable:\\s*SDK\\-100\\b'
|
|
2358
|
+
message: |-
|
|
2359
|
+
RunSec Detection [SDK-100]: CWE-20
|
|
2360
|
+
languages:
|
|
2361
|
+
- generic
|
|
2362
|
+
severity: WARNING
|