@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.
Files changed (40) hide show
  1. package/dist/index.js +578 -0
  2. package/package.json +43 -0
  3. package/src/rules/data/rule-compliance-map.json +43563 -0
  4. package/src/rules/data/semgrep-rules/README-taint-overlays.md +21 -0
  5. package/src/rules/data/semgrep-rules/advanced-agent-cloud.yaml +802 -0
  6. package/src/rules/data/semgrep-rules/app-logic.yaml +445 -0
  7. package/src/rules/data/semgrep-rules/auth-keycloak.yaml +831 -0
  8. package/src/rules/data/semgrep-rules/browser-agent.yaml +260 -0
  9. package/src/rules/data/semgrep-rules/cloud-secrets.yaml +316 -0
  10. package/src/rules/data/semgrep-rules/csharp-dotnet.yaml +4864 -0
  11. package/src/rules/data/semgrep-rules/desktop-electron-pro.yaml +30 -0
  12. package/src/rules/data/semgrep-rules/desktop-vsto-suite.yaml +2759 -0
  13. package/src/rules/data/semgrep-rules/devops-security.yaml +393 -0
  14. package/src/rules/data/semgrep-rules/domain-access-management.yaml +1023 -0
  15. package/src/rules/data/semgrep-rules/domain-data-privacy.yaml +852 -0
  16. package/src/rules/data/semgrep-rules/domain-input-validation.yaml +2894 -0
  17. package/src/rules/data/semgrep-rules/domain-platform-hardening.yaml +1715 -0
  18. package/src/rules/data/semgrep-rules/ds-ml-security.yaml +2431 -0
  19. package/src/rules/data/semgrep-rules/fastapi-async.yaml +5953 -0
  20. package/src/rules/data/semgrep-rules/frontend-react.yaml +4035 -0
  21. package/src/rules/data/semgrep-rules/frontend-security.yaml +200 -0
  22. package/src/rules/data/semgrep-rules/go-core.yaml +4959 -0
  23. package/src/rules/data/semgrep-rules/hft-cpp-security.yaml +631 -0
  24. package/src/rules/data/semgrep-rules/infra-k8s-helm.yaml +4968 -0
  25. package/src/rules/data/semgrep-rules/integration-security.yaml +2362 -0
  26. package/src/rules/data/semgrep-rules/java-enterprise.yaml +14756 -0
  27. package/src/rules/data/semgrep-rules/java-spring.yaml +397 -0
  28. package/src/rules/data/semgrep-rules/license-compliance.yaml +186 -0
  29. package/src/rules/data/semgrep-rules/mobile-flutter.yaml +37 -0
  30. package/src/rules/data/semgrep-rules/mobile-security.yaml +721 -0
  31. package/src/rules/data/semgrep-rules/nodejs-nestjs.yaml +5164 -0
  32. package/src/rules/data/semgrep-rules/nodejs-security.yaml +326 -0
  33. package/src/rules/data/semgrep-rules/observability.yaml +381 -0
  34. package/src/rules/data/semgrep-rules/php-security.yaml +3601 -0
  35. package/src/rules/data/semgrep-rules/python-backend-pro.yaml +30 -0
  36. package/src/rules/data/semgrep-rules/python-django.yaml +181 -0
  37. package/src/rules/data/semgrep-rules/python-security.yaml +284 -0
  38. package/src/rules/data/semgrep-rules/ru-regulatory.yaml +496 -0
  39. package/src/rules/data/semgrep-rules/ruby-rails.yaml +3078 -0
  40. 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