@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,802 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: runsec.advanced-agent-cloud.aac-001
|
|
3
|
+
metadata:
|
|
4
|
+
runsec_version: v1.0
|
|
5
|
+
confidence: |-
|
|
6
|
+
0.9
|
|
7
|
+
exploit_scenario: |-
|
|
8
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
9
|
+
fix_template: |-
|
|
10
|
+
ALLOWED_HOSTS = {"cdn.example.com"} u = urlparse(userInput) if u.hostname not in ALLOWED_HOSTS: raise ValueError("url not allowed") await page.goto(userInput)
|
|
11
|
+
pattern-either:
|
|
12
|
+
- pattern: |-
|
|
13
|
+
await page.goto(userInput)
|
|
14
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-001\\b'
|
|
15
|
+
message: |-
|
|
16
|
+
RunSec Detection [AAC-001]: CWE-918
|
|
17
|
+
languages:
|
|
18
|
+
- generic
|
|
19
|
+
severity: WARNING
|
|
20
|
+
- id: runsec.advanced-agent-cloud.aac-002
|
|
21
|
+
metadata:
|
|
22
|
+
runsec_version: v1.0
|
|
23
|
+
confidence: |-
|
|
24
|
+
0.9
|
|
25
|
+
exploit_scenario: |-
|
|
26
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
27
|
+
fix_template: |-
|
|
28
|
+
await context.tracing.start(screenshots=False) или маскирование PII перед экспортом трейса
|
|
29
|
+
pattern-either:
|
|
30
|
+
- pattern: |-
|
|
31
|
+
await context.tracing.start(screenshots=True)
|
|
32
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-002\\b'
|
|
33
|
+
message: |-
|
|
34
|
+
RunSec Detection [AAC-002]: CWE-200
|
|
35
|
+
languages:
|
|
36
|
+
- generic
|
|
37
|
+
severity: WARNING
|
|
38
|
+
- id: runsec.advanced-agent-cloud.aac-003
|
|
39
|
+
metadata:
|
|
40
|
+
runsec_version: v1.0
|
|
41
|
+
confidence: |-
|
|
42
|
+
0.9
|
|
43
|
+
exploit_scenario: |-
|
|
44
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
45
|
+
fix_template: |-
|
|
46
|
+
const key = process.env.STRIPE_SECRET_KEY (только серверные модули / Route Handlers без NEXT_PUBLIC_)
|
|
47
|
+
pattern-either:
|
|
48
|
+
- pattern: |-
|
|
49
|
+
const key = process.env.NEXT_PUBLIC_STRIPE_SECRET
|
|
50
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-003\\b'
|
|
51
|
+
message: |-
|
|
52
|
+
RunSec Detection [AAC-003]: CWE-20
|
|
53
|
+
languages:
|
|
54
|
+
- generic
|
|
55
|
+
severity: WARNING
|
|
56
|
+
- id: runsec.advanced-agent-cloud.aac-004
|
|
57
|
+
metadata:
|
|
58
|
+
runsec_version: v1.0
|
|
59
|
+
confidence: |-
|
|
60
|
+
0.9
|
|
61
|
+
exploit_scenario: |-
|
|
62
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
63
|
+
fix_template: |-
|
|
64
|
+
json.loads(raw_job) или msgpack.loads + явная схема данных
|
|
65
|
+
pattern-either:
|
|
66
|
+
- pattern: |-
|
|
67
|
+
pickle.loads(raw_job)
|
|
68
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-004\\b'
|
|
69
|
+
message: |-
|
|
70
|
+
RunSec Detection [AAC-004]: CWE-502
|
|
71
|
+
languages:
|
|
72
|
+
- generic
|
|
73
|
+
severity: WARNING
|
|
74
|
+
- id: runsec.advanced-agent-cloud.aac-005
|
|
75
|
+
metadata:
|
|
76
|
+
runsec_version: v1.0
|
|
77
|
+
confidence: |-
|
|
78
|
+
0.9
|
|
79
|
+
exploit_scenario: |-
|
|
80
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
81
|
+
fix_template: |-
|
|
82
|
+
expires=timedelta(seconds=45) + проверка владельца объекта и method GET-only где возможно
|
|
83
|
+
pattern-either:
|
|
84
|
+
- pattern: |-
|
|
85
|
+
client.presigned_put_object("b", "o", expires=timedelta(days=7))
|
|
86
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-005\\b'
|
|
87
|
+
message: |-
|
|
88
|
+
RunSec Detection [AAC-005]: CWE-639
|
|
89
|
+
languages:
|
|
90
|
+
- generic
|
|
91
|
+
severity: WARNING
|
|
92
|
+
- id: runsec.advanced-agent-cloud.aac-006
|
|
93
|
+
metadata:
|
|
94
|
+
runsec_version: v1.0
|
|
95
|
+
confidence: |-
|
|
96
|
+
0.9
|
|
97
|
+
exploit_scenario: |-
|
|
98
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
99
|
+
fix_template: |-
|
|
100
|
+
claims = jwt.decode(token, key, audience=..., issuer=..., options={"verify_exp": True})
|
|
101
|
+
pattern-either:
|
|
102
|
+
- pattern: |-
|
|
103
|
+
if authorization:
|
|
104
|
+
headers = {"Authorization": authorization}
|
|
105
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-006\\b'
|
|
106
|
+
message: |-
|
|
107
|
+
RunSec Detection [AAC-006]: CWE-287
|
|
108
|
+
languages:
|
|
109
|
+
- generic
|
|
110
|
+
severity: WARNING
|
|
111
|
+
- id: runsec.advanced-agent-cloud.aac-007
|
|
112
|
+
metadata:
|
|
113
|
+
runsec_version: v1.0
|
|
114
|
+
confidence: |-
|
|
115
|
+
0.9
|
|
116
|
+
exploit_scenario: |-
|
|
117
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
118
|
+
fix_template: |-
|
|
119
|
+
limit_req zone=api burst=20 nodelay; в том же location или выше по цепочке
|
|
120
|
+
pattern-either:
|
|
121
|
+
- pattern: |-
|
|
122
|
+
location /api/ {
|
|
123
|
+
proxy_pass http://backend;
|
|
124
|
+
}
|
|
125
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-007\\b'
|
|
126
|
+
message: |-
|
|
127
|
+
RunSec Detection [AAC-007]: CWE-770
|
|
128
|
+
languages:
|
|
129
|
+
- generic
|
|
130
|
+
severity: WARNING
|
|
131
|
+
- id: runsec.advanced-agent-cloud.aac-008
|
|
132
|
+
metadata:
|
|
133
|
+
runsec_version: v1.0
|
|
134
|
+
confidence: |-
|
|
135
|
+
0.9
|
|
136
|
+
exploit_scenario: |-
|
|
137
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
138
|
+
fix_template: |-
|
|
139
|
+
HTTP_PROXY/HTTPS_PROXY заданы на уровне контейнера; Session(trust_env=True)
|
|
140
|
+
pattern-either:
|
|
141
|
+
- pattern: |-
|
|
142
|
+
requests.get(url, proxies={"http": None, "https": None})
|
|
143
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-008\\b'
|
|
144
|
+
message: |-
|
|
145
|
+
RunSec Detection [AAC-008]: CWE-918
|
|
146
|
+
languages:
|
|
147
|
+
- generic
|
|
148
|
+
severity: WARNING
|
|
149
|
+
- id: runsec.advanced-agent-cloud.aac-009
|
|
150
|
+
metadata:
|
|
151
|
+
runsec_version: v1.0
|
|
152
|
+
confidence: |-
|
|
153
|
+
0.9
|
|
154
|
+
exploit_scenario: |-
|
|
155
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
156
|
+
fix_template: |-
|
|
157
|
+
logger.info("job=%s", sanitize(redis_raw_payload))
|
|
158
|
+
pattern-either:
|
|
159
|
+
- pattern: |-
|
|
160
|
+
logger.info("job=%s", redis_raw_payload)
|
|
161
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-009\\b'
|
|
162
|
+
message: |-
|
|
163
|
+
RunSec Detection [AAC-009]: CWE-117
|
|
164
|
+
languages:
|
|
165
|
+
- generic
|
|
166
|
+
severity: WARNING
|
|
167
|
+
- id: runsec.advanced-agent-cloud.aac-010
|
|
168
|
+
metadata:
|
|
169
|
+
runsec_version: v1.0
|
|
170
|
+
confidence: |-
|
|
171
|
+
0.9
|
|
172
|
+
exploit_scenario: |-
|
|
173
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
174
|
+
fix_template: |-
|
|
175
|
+
state-machine: явное consentGiven === true до вызова getUserMedia
|
|
176
|
+
pattern-either:
|
|
177
|
+
- pattern: |-
|
|
178
|
+
navigator.mediaDevices.getUserMedia({ audio: true })
|
|
179
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-010\\b'
|
|
180
|
+
message: |-
|
|
181
|
+
RunSec Detection [AAC-010]: CWE-20
|
|
182
|
+
languages:
|
|
183
|
+
- generic
|
|
184
|
+
severity: WARNING
|
|
185
|
+
- id: runsec.advanced-agent-cloud.aac-011
|
|
186
|
+
metadata:
|
|
187
|
+
runsec_version: v1.0
|
|
188
|
+
confidence: |-
|
|
189
|
+
0.9
|
|
190
|
+
exploit_scenario: |-
|
|
191
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
192
|
+
fix_template: |-
|
|
193
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
194
|
+
pattern-either:
|
|
195
|
+
- pattern: |-
|
|
196
|
+
Инструмент принимает file_path/command и выполняет без os.path.abspath() + проверки префикса рабочей директории
|
|
197
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-011\\b'
|
|
198
|
+
message: |-
|
|
199
|
+
RunSec Detection [AAC-011]: CWE Final Certification
|
|
200
|
+
languages:
|
|
201
|
+
- generic
|
|
202
|
+
severity: WARNING
|
|
203
|
+
- id: runsec.advanced-agent-cloud.aac-012
|
|
204
|
+
metadata:
|
|
205
|
+
runsec_version: v1.0
|
|
206
|
+
confidence: |-
|
|
207
|
+
0.9
|
|
208
|
+
exploit_scenario: |-
|
|
209
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
210
|
+
fix_template: |-
|
|
211
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
212
|
+
pattern-either:
|
|
213
|
+
- pattern: |-
|
|
214
|
+
def tool_handler(args): без модели BaseModel/валидации типов
|
|
215
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-012\\b'
|
|
216
|
+
message: |-
|
|
217
|
+
RunSec Detection [AAC-012]: CWE Final Certification
|
|
218
|
+
languages:
|
|
219
|
+
- generic
|
|
220
|
+
severity: WARNING
|
|
221
|
+
- id: runsec.advanced-agent-cloud.aac-013
|
|
222
|
+
metadata:
|
|
223
|
+
runsec_version: v1.0
|
|
224
|
+
confidence: |-
|
|
225
|
+
0.9
|
|
226
|
+
exploit_scenario: |-
|
|
227
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
228
|
+
fix_template: |-
|
|
229
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
230
|
+
pattern-either:
|
|
231
|
+
- pattern: |-
|
|
232
|
+
value = redis.get(key)
|
|
233
|
+
redis.set(key, int(value)+1) в конкурентном воркере
|
|
234
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-013\\b'
|
|
235
|
+
message: |-
|
|
236
|
+
RunSec Detection [AAC-013]: CWE Final Certification
|
|
237
|
+
languages:
|
|
238
|
+
- generic
|
|
239
|
+
severity: WARNING
|
|
240
|
+
- id: runsec.advanced-agent-cloud.aac-014
|
|
241
|
+
metadata:
|
|
242
|
+
runsec_version: v1.0
|
|
243
|
+
confidence: |-
|
|
244
|
+
0.9
|
|
245
|
+
exploit_scenario: |-
|
|
246
|
+
Атакующий подделывает JSON от внешнего AI API; без схемы поля трактуются как доверенные (CWE-20/918 цепочки).
|
|
247
|
+
fix_template: |-
|
|
248
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
249
|
+
pattern-either:
|
|
250
|
+
- pattern: |-
|
|
251
|
+
data = response.json() и прямое использование data["..."] без схемы
|
|
252
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-014\\b'
|
|
253
|
+
message: |-
|
|
254
|
+
RunSec Detection [AAC-014]: CWE Final Certification
|
|
255
|
+
languages:
|
|
256
|
+
- generic
|
|
257
|
+
severity: WARNING
|
|
258
|
+
- id: runsec.advanced-agent-cloud.aac-015
|
|
259
|
+
metadata:
|
|
260
|
+
runsec_version: v1.0
|
|
261
|
+
confidence: |-
|
|
262
|
+
0.9
|
|
263
|
+
exploit_scenario: |-
|
|
264
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
265
|
+
fix_template: |-
|
|
266
|
+
Логировать только redacted metadata (hash/id/length), исключать system prompts и полный контекст из telemetry/logs by default.
|
|
267
|
+
pattern-either:
|
|
268
|
+
- pattern: |-
|
|
269
|
+
logger.info("system_prompt=%s", system_prompt)
|
|
270
|
+
trace.set_attribute("llm.context", full_context)
|
|
271
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-015\\b'
|
|
272
|
+
message: |-
|
|
273
|
+
RunSec Detection [AAC-015]: CWE Final Certification
|
|
274
|
+
languages:
|
|
275
|
+
- generic
|
|
276
|
+
severity: WARNING
|
|
277
|
+
- id: runsec.advanced-agent-cloud.aac-016
|
|
278
|
+
metadata:
|
|
279
|
+
runsec_version: v1.0
|
|
280
|
+
confidence: |-
|
|
281
|
+
0.9
|
|
282
|
+
exploit_scenario: |-
|
|
283
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
284
|
+
fix_template: |-
|
|
285
|
+
Перед трассировкой удалять секреты/PII из agent memory и применять denylist sensitive keys (token, secret, api_key).
|
|
286
|
+
pattern-either:
|
|
287
|
+
- pattern: |-
|
|
288
|
+
span.set_attribute("agent.memory", json.dumps(memory_state))
|
|
289
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-016\\b'
|
|
290
|
+
message: |-
|
|
291
|
+
RunSec Detection [AAC-016]: CWE Final Certification
|
|
292
|
+
languages:
|
|
293
|
+
- generic
|
|
294
|
+
severity: WARNING
|
|
295
|
+
- id: runsec.advanced-agent-cloud.aac-017
|
|
296
|
+
metadata:
|
|
297
|
+
runsec_version: v1.0
|
|
298
|
+
confidence: |-
|
|
299
|
+
0.9
|
|
300
|
+
exploit_scenario: |-
|
|
301
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
302
|
+
fix_template: |-
|
|
303
|
+
Не логировать скрытые reasoning fields; сохранять только конечный ответ и технические метрики выполнения.
|
|
304
|
+
pattern-either:
|
|
305
|
+
- pattern: |-
|
|
306
|
+
logger.debug("reasoning=%s", llm_response["thinking"])
|
|
307
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-017\\b'
|
|
308
|
+
message: |-
|
|
309
|
+
RunSec Detection [AAC-017]: CWE Final Certification
|
|
310
|
+
languages:
|
|
311
|
+
- generic
|
|
312
|
+
severity: WARNING
|
|
313
|
+
- id: runsec.advanced-agent-cloud.aac-018
|
|
314
|
+
metadata:
|
|
315
|
+
runsec_version: v1.0
|
|
316
|
+
confidence: |-
|
|
317
|
+
0.9
|
|
318
|
+
exploit_scenario: |-
|
|
319
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
320
|
+
fix_template: |-
|
|
321
|
+
Шифровать артефакты или отключать persistent prompt dumps в production; включать retention + secure erase policy.
|
|
322
|
+
pattern-either:
|
|
323
|
+
- pattern: |-
|
|
324
|
+
open("debug/prompts.json","w").write(json.dumps(history))
|
|
325
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-018\\b'
|
|
326
|
+
message: |-
|
|
327
|
+
RunSec Detection [AAC-018]: CWE Final Certification
|
|
328
|
+
languages:
|
|
329
|
+
- generic
|
|
330
|
+
severity: WARNING
|
|
331
|
+
- id: runsec.advanced-agent-cloud.aac-019
|
|
332
|
+
metadata:
|
|
333
|
+
runsec_version: v1.0
|
|
334
|
+
confidence: |-
|
|
335
|
+
0.9
|
|
336
|
+
exploit_scenario: |-
|
|
337
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
338
|
+
fix_template: |-
|
|
339
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
340
|
+
pattern-either:
|
|
341
|
+
- pattern: |-
|
|
342
|
+
@tool("run_any")
|
|
343
|
+
subprocess.run(user_cmd, shell=True)
|
|
344
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-019\\b'
|
|
345
|
+
message: |-
|
|
346
|
+
RunSec Detection [AAC-019]: CWE Final Certification
|
|
347
|
+
languages:
|
|
348
|
+
- generic
|
|
349
|
+
severity: WARNING
|
|
350
|
+
- id: runsec.advanced-agent-cloud.aac-020
|
|
351
|
+
metadata:
|
|
352
|
+
runsec_version: v1.0
|
|
353
|
+
confidence: |-
|
|
354
|
+
0.9
|
|
355
|
+
exploit_scenario: |-
|
|
356
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
357
|
+
fix_template: |-
|
|
358
|
+
Использовать server-side tenant mapping и immutable namespace binding, запретить namespace from external input.
|
|
359
|
+
pattern-either:
|
|
360
|
+
- pattern: |-
|
|
361
|
+
index.upsert(vectors, namespace=request.user_input)
|
|
362
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-020\\b'
|
|
363
|
+
message: |-
|
|
364
|
+
RunSec Detection [AAC-020]: CWE Final Certification
|
|
365
|
+
languages:
|
|
366
|
+
- generic
|
|
367
|
+
severity: WARNING
|
|
368
|
+
- id: runsec.advanced-agent-cloud.aac-021
|
|
369
|
+
metadata:
|
|
370
|
+
runsec_version: v1.0
|
|
371
|
+
confidence: |-
|
|
372
|
+
0.9
|
|
373
|
+
exploit_scenario: |-
|
|
374
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
375
|
+
fix_template: |-
|
|
376
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
377
|
+
pattern-either:
|
|
378
|
+
- pattern: |-
|
|
379
|
+
tpl = Path(req["template"]).read_text()
|
|
380
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-021\\b'
|
|
381
|
+
message: |-
|
|
382
|
+
RunSec Detection [AAC-021]: CWE Final Certification
|
|
383
|
+
languages:
|
|
384
|
+
- generic
|
|
385
|
+
severity: WARNING
|
|
386
|
+
- id: runsec.advanced-agent-cloud.aac-022
|
|
387
|
+
metadata:
|
|
388
|
+
runsec_version: v1.0
|
|
389
|
+
confidence: |-
|
|
390
|
+
0.9
|
|
391
|
+
exploit_scenario: |-
|
|
392
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
393
|
+
fix_template: |-
|
|
394
|
+
Use strict Pydantic BaseModel schemas for input/output, including response_model and field allowlists.
|
|
395
|
+
pattern-either:
|
|
396
|
+
- pattern: |-
|
|
397
|
+
while True: resp = client.responses.create(...)
|
|
398
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-022\\b'
|
|
399
|
+
message: |-
|
|
400
|
+
RunSec Detection [AAC-022]: CWE Final Certification
|
|
401
|
+
languages:
|
|
402
|
+
- generic
|
|
403
|
+
severity: WARNING
|
|
404
|
+
- id: runsec.advanced-agent-cloud.aac-023
|
|
405
|
+
metadata:
|
|
406
|
+
runsec_version: v1.0
|
|
407
|
+
confidence: |-
|
|
408
|
+
0.9
|
|
409
|
+
exploit_scenario: |-
|
|
410
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
411
|
+
fix_template: |-
|
|
412
|
+
Нормализовать/санитизировать tool output и разделять роли (system immutable, external data only as user/tool role).
|
|
413
|
+
pattern-either:
|
|
414
|
+
- pattern: |-
|
|
415
|
+
messages=[{"role":"system","content": tool_output}]
|
|
416
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-023\\b'
|
|
417
|
+
message: |-
|
|
418
|
+
RunSec Detection [AAC-023]: CWE Final Certification
|
|
419
|
+
languages:
|
|
420
|
+
- generic
|
|
421
|
+
severity: WARNING
|
|
422
|
+
- id: runsec.advanced-agent-cloud.aac-024
|
|
423
|
+
metadata:
|
|
424
|
+
runsec_version: v1.0
|
|
425
|
+
confidence: |-
|
|
426
|
+
0.9
|
|
427
|
+
exploit_scenario: |-
|
|
428
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
429
|
+
fix_template: |-
|
|
430
|
+
Вводить egress allowlist + DNS/IP validation и блокировать link-local/metadata ranges перед запросом.
|
|
431
|
+
pattern-either:
|
|
432
|
+
- pattern: |-
|
|
433
|
+
requests.get(callback_url) где callback_url из tool output
|
|
434
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-024\\b'
|
|
435
|
+
message: |-
|
|
436
|
+
RunSec Detection [AAC-024]: CWE Final Certification
|
|
437
|
+
languages:
|
|
438
|
+
- generic
|
|
439
|
+
severity: WARNING
|
|
440
|
+
- id: runsec.advanced-agent-cloud.aac-025
|
|
441
|
+
metadata:
|
|
442
|
+
runsec_version: v1.0
|
|
443
|
+
confidence: |-
|
|
444
|
+
0.9
|
|
445
|
+
exploit_scenario: |-
|
|
446
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
447
|
+
fix_template: |-
|
|
448
|
+
Включать tenant/user scope и policy version в cache key, чтобы исключить cross-tenant data leakage.
|
|
449
|
+
pattern-either:
|
|
450
|
+
- pattern: |-
|
|
451
|
+
cache_key = f"{prompt_hash}"
|
|
452
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-025\\b'
|
|
453
|
+
message: |-
|
|
454
|
+
RunSec Detection [AAC-025]: CWE Final Certification
|
|
455
|
+
languages:
|
|
456
|
+
- generic
|
|
457
|
+
severity: WARNING
|
|
458
|
+
- id: runsec.advanced-agent-cloud.aac-026
|
|
459
|
+
metadata:
|
|
460
|
+
runsec_version: v1.0
|
|
461
|
+
confidence: |-
|
|
462
|
+
0.9
|
|
463
|
+
exploit_scenario: |-
|
|
464
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
465
|
+
fix_template: |-
|
|
466
|
+
Использовать безопасный JSON parser + strict schema validation и reject unknown fields до обработки.
|
|
467
|
+
pattern-either:
|
|
468
|
+
- pattern: |-
|
|
469
|
+
payload = eval(tool_result)
|
|
470
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-026\\b'
|
|
471
|
+
message: |-
|
|
472
|
+
RunSec Detection [AAC-026]: CWE Final Certification
|
|
473
|
+
languages:
|
|
474
|
+
- generic
|
|
475
|
+
severity: WARNING
|
|
476
|
+
- id: runsec.advanced-agent-cloud.aac-027
|
|
477
|
+
metadata:
|
|
478
|
+
runsec_version: v1.0
|
|
479
|
+
confidence: |-
|
|
480
|
+
0.9
|
|
481
|
+
exploit_scenario: |-
|
|
482
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
483
|
+
fix_template: |-
|
|
484
|
+
Pydantic model_validate на сыром тексте ответа; для base64 — только после явного поля в схеме и max length; в TS — Zod + отказ от Buffer.from(llm, "base64") без policy.
|
|
485
|
+
pattern-either:
|
|
486
|
+
- pattern: |-
|
|
487
|
+
raw = base64.b64decode(llm_json["blob"]) затем json.loads(raw)
|
|
488
|
+
const buf = Buffer.from(assistantText, "base64")
|
|
489
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-027\\b'
|
|
490
|
+
message: |-
|
|
491
|
+
RunSec Detection [AAC-027]: CWE-1027
|
|
492
|
+
languages:
|
|
493
|
+
- generic
|
|
494
|
+
severity: WARNING
|
|
495
|
+
- id: runsec.advanced-agent-cloud.aac-028
|
|
496
|
+
metadata:
|
|
497
|
+
runsec_version: v1.0
|
|
498
|
+
confidence: |-
|
|
499
|
+
0.9
|
|
500
|
+
exploit_scenario: |-
|
|
501
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
502
|
+
fix_template: |-
|
|
503
|
+
Как AAC-027: строгая схема ответа, без fromhex/hex decode на необработанной строке модели.
|
|
504
|
+
pattern-either:
|
|
505
|
+
- pattern: |-
|
|
506
|
+
bytes.fromhex(llm_reply.strip())
|
|
507
|
+
Buffer.from(modelOut, "hex")
|
|
508
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-028\\b'
|
|
509
|
+
message: |-
|
|
510
|
+
RunSec Detection [AAC-028]: CWE-1109
|
|
511
|
+
languages:
|
|
512
|
+
- generic
|
|
513
|
+
severity: WARNING
|
|
514
|
+
- id: runsec.advanced-agent-cloud.aac-029
|
|
515
|
+
metadata:
|
|
516
|
+
runsec_version: v1.0
|
|
517
|
+
confidence: |-
|
|
518
|
+
0.9
|
|
519
|
+
exploit_scenario: |-
|
|
520
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
521
|
+
fix_template: |-
|
|
522
|
+
Pydantic-схема ответа без exec/system; sandbox tool API.
|
|
523
|
+
pattern-either:
|
|
524
|
+
- pattern: |-
|
|
525
|
+
cmd = "".join(chr(c) for c in [114,109,32,45,114,102,32,47])
|
|
526
|
+
os.system(cmd)
|
|
527
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-029\\b'
|
|
528
|
+
message: |-
|
|
529
|
+
RunSec Detection [AAC-029]: CWE-1027
|
|
530
|
+
languages:
|
|
531
|
+
- generic
|
|
532
|
+
severity: WARNING
|
|
533
|
+
- id: runsec.advanced-agent-cloud.aac-030
|
|
534
|
+
metadata:
|
|
535
|
+
runsec_version: v1.0
|
|
536
|
+
confidence: |-
|
|
537
|
+
0.9
|
|
538
|
+
exploit_scenario: |-
|
|
539
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
540
|
+
fix_template: |-
|
|
541
|
+
Zod + deny eval/Function на данных модели.
|
|
542
|
+
pattern-either:
|
|
543
|
+
- pattern: |-
|
|
544
|
+
eval(atob(llmChunk))
|
|
545
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-030\\b'
|
|
546
|
+
message: |-
|
|
547
|
+
RunSec Detection [AAC-030]: CWE-1334
|
|
548
|
+
languages:
|
|
549
|
+
- generic
|
|
550
|
+
severity: WARNING
|
|
551
|
+
- id: runsec.advanced-agent-cloud.aac-031
|
|
552
|
+
metadata:
|
|
553
|
+
runsec_version: v1.0
|
|
554
|
+
confidence: |-
|
|
555
|
+
0.9
|
|
556
|
+
exploit_scenario: |-
|
|
557
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
558
|
+
fix_template: |-
|
|
559
|
+
Allowlist argv; no shell metacharacters from model.
|
|
560
|
+
pattern-either:
|
|
561
|
+
- pattern: |-
|
|
562
|
+
subprocess.run(["powershell", "-EncodedCommand", llm_b64])
|
|
563
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-031\\b'
|
|
564
|
+
message: |-
|
|
565
|
+
RunSec Detection [AAC-031]: CWE-78
|
|
566
|
+
languages:
|
|
567
|
+
- generic
|
|
568
|
+
severity: WARNING
|
|
569
|
+
- id: runsec.advanced-agent-cloud.aac-032
|
|
570
|
+
metadata:
|
|
571
|
+
runsec_version: v1.0
|
|
572
|
+
confidence: |-
|
|
573
|
+
0.9
|
|
574
|
+
exploit_scenario: |-
|
|
575
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
576
|
+
fix_template: |-
|
|
577
|
+
Парсер JSON + фиксированные команды.
|
|
578
|
+
pattern-either:
|
|
579
|
+
- pattern: |-
|
|
580
|
+
os.system("bash -c "$(echo " + llm_pipe + " | base64 -d)"")
|
|
581
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-032\\b'
|
|
582
|
+
message: |-
|
|
583
|
+
RunSec Detection [AAC-032]: CWE-78
|
|
584
|
+
languages:
|
|
585
|
+
- generic
|
|
586
|
+
severity: WARNING
|
|
587
|
+
- id: runsec.advanced-agent-cloud.aac-033
|
|
588
|
+
metadata:
|
|
589
|
+
runsec_version: v1.0
|
|
590
|
+
confidence: |-
|
|
591
|
+
0.9
|
|
592
|
+
exploit_scenario: |-
|
|
593
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
594
|
+
fix_template: |-
|
|
595
|
+
RestrictedPython или no code execution path.
|
|
596
|
+
pattern-either:
|
|
597
|
+
- pattern: |-
|
|
598
|
+
exec(compile(llm_code, "<llm>", "exec"))
|
|
599
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-033\\b'
|
|
600
|
+
message: |-
|
|
601
|
+
RunSec Detection [AAC-033]: CWE-94
|
|
602
|
+
languages:
|
|
603
|
+
- generic
|
|
604
|
+
severity: WARNING
|
|
605
|
+
- id: runsec.advanced-agent-cloud.aac-034
|
|
606
|
+
metadata:
|
|
607
|
+
runsec_version: v1.0
|
|
608
|
+
confidence: |-
|
|
609
|
+
0.9
|
|
610
|
+
exploit_scenario: |-
|
|
611
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
612
|
+
fix_template: |-
|
|
613
|
+
Unicode NFKC + command allowlist.
|
|
614
|
+
pattern-either:
|
|
615
|
+
- pattern: |-
|
|
616
|
+
cmd = llm_text.replace("а", "a") затем run(cmd)
|
|
617
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-034\\b'
|
|
618
|
+
message: |-
|
|
619
|
+
RunSec Detection [AAC-034]: CWE-1335
|
|
620
|
+
languages:
|
|
621
|
+
- generic
|
|
622
|
+
severity: WARNING
|
|
623
|
+
- id: runsec.advanced-agent-cloud.aac-035
|
|
624
|
+
metadata:
|
|
625
|
+
runsec_version: v1.0
|
|
626
|
+
confidence: |-
|
|
627
|
+
0.9
|
|
628
|
+
exploit_scenario: |-
|
|
629
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
630
|
+
fix_template: |-
|
|
631
|
+
Фиксированный argv template; модель только заполняет allowlisted args.
|
|
632
|
+
pattern-either:
|
|
633
|
+
- pattern: |-
|
|
634
|
+
parts = json.loads(llm_json["p"]); subprocess.run(parts)
|
|
635
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-035\\b'
|
|
636
|
+
message: |-
|
|
637
|
+
RunSec Detection [AAC-035]: CWE-1027
|
|
638
|
+
languages:
|
|
639
|
+
- generic
|
|
640
|
+
severity: WARNING
|
|
641
|
+
- id: runsec.advanced-agent-cloud.aac-036
|
|
642
|
+
metadata:
|
|
643
|
+
runsec_version: v1.0
|
|
644
|
+
confidence: |-
|
|
645
|
+
0.9
|
|
646
|
+
exploit_scenario: |-
|
|
647
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
648
|
+
fix_template: |-
|
|
649
|
+
Schema deny raw hex blobs.
|
|
650
|
+
pattern-either:
|
|
651
|
+
- pattern: |-
|
|
652
|
+
exec(bytes.fromhex(llm_hex).decode())
|
|
653
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-036\\b'
|
|
654
|
+
message: |-
|
|
655
|
+
RunSec Detection [AAC-036]: CWE-1337
|
|
656
|
+
languages:
|
|
657
|
+
- generic
|
|
658
|
+
severity: WARNING
|
|
659
|
+
- id: runsec.advanced-agent-cloud.aac-037
|
|
660
|
+
metadata:
|
|
661
|
+
runsec_version: v1.0
|
|
662
|
+
confidence: |-
|
|
663
|
+
0.9
|
|
664
|
+
exploit_scenario: |-
|
|
665
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
666
|
+
fix_template: |-
|
|
667
|
+
Strict URL parser + block dangerous schemes.
|
|
668
|
+
pattern-either:
|
|
669
|
+
- pattern: |-
|
|
670
|
+
open_url(llm_suggested_link) где link содержит javascript:
|
|
671
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-037\\b'
|
|
672
|
+
message: |-
|
|
673
|
+
RunSec Detection [AAC-037]: CWE-1338
|
|
674
|
+
languages:
|
|
675
|
+
- generic
|
|
676
|
+
severity: WARNING
|
|
677
|
+
- id: runsec.advanced-agent-cloud.aac-038
|
|
678
|
+
metadata:
|
|
679
|
+
runsec_version: v1.0
|
|
680
|
+
confidence: |-
|
|
681
|
+
0.9
|
|
682
|
+
exploit_scenario: |-
|
|
683
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
684
|
+
fix_template: |-
|
|
685
|
+
Single JSON schema; no chained decoders on model text.
|
|
686
|
+
pattern-either:
|
|
687
|
+
- pattern: |-
|
|
688
|
+
exec(zlib.decompress(base64.b64decode(llm_blob)))
|
|
689
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-038\\b'
|
|
690
|
+
message: |-
|
|
691
|
+
RunSec Detection [AAC-038]: CWE-1340
|
|
692
|
+
languages:
|
|
693
|
+
- generic
|
|
694
|
+
severity: WARNING
|
|
695
|
+
- id: runsec.advanced-agent-cloud.aac-039
|
|
696
|
+
metadata:
|
|
697
|
+
runsec_version: v1.0
|
|
698
|
+
confidence: |-
|
|
699
|
+
0.9
|
|
700
|
+
exploit_scenario: |-
|
|
701
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
702
|
+
fix_template: |-
|
|
703
|
+
Pydantic model_validate на тексте; deny codecs.decode на LLM fields.
|
|
704
|
+
pattern-either:
|
|
705
|
+
- pattern: |-
|
|
706
|
+
raw = codecs.decode(llm_obj["h"], "hex"); exec(raw.decode())
|
|
707
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-039\\b'
|
|
708
|
+
message: |-
|
|
709
|
+
RunSec Detection [AAC-039]: CWE-1027
|
|
710
|
+
languages:
|
|
711
|
+
- generic
|
|
712
|
+
severity: WARNING
|
|
713
|
+
- id: runsec.advanced-agent-cloud.aac-040
|
|
714
|
+
metadata:
|
|
715
|
+
runsec_version: v1.0
|
|
716
|
+
confidence: |-
|
|
717
|
+
0.9
|
|
718
|
+
exploit_scenario: |-
|
|
719
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
720
|
+
fix_template: |-
|
|
721
|
+
Zod schema; block eval/new Function on model-derived buffers.
|
|
722
|
+
pattern-either:
|
|
723
|
+
- pattern: |-
|
|
724
|
+
eval(Buffer.from(assistantChunk, "base64").toString("utf8"))
|
|
725
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-040\\b'
|
|
726
|
+
message: |-
|
|
727
|
+
RunSec Detection [AAC-040]: CWE-1027
|
|
728
|
+
languages:
|
|
729
|
+
- generic
|
|
730
|
+
severity: WARNING
|
|
731
|
+
- id: runsec.advanced-agent-cloud.aac-041
|
|
732
|
+
metadata:
|
|
733
|
+
runsec_version: v1.0
|
|
734
|
+
confidence: |-
|
|
735
|
+
0.9
|
|
736
|
+
exploit_scenario: |-
|
|
737
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
738
|
+
fix_template: |-
|
|
739
|
+
JSON-only; no binary deserialization from assistant output.
|
|
740
|
+
pattern-either:
|
|
741
|
+
- pattern: |-
|
|
742
|
+
pickle.loads(binascii.a2b_hex(llm_field))
|
|
743
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-041\\b'
|
|
744
|
+
message: |-
|
|
745
|
+
RunSec Detection [AAC-041]: CWE-1109
|
|
746
|
+
languages:
|
|
747
|
+
- generic
|
|
748
|
+
severity: WARNING
|
|
749
|
+
- id: runsec.advanced-agent-cloud.aac-042
|
|
750
|
+
metadata:
|
|
751
|
+
runsec_version: v1.0
|
|
752
|
+
confidence: |-
|
|
753
|
+
0.9
|
|
754
|
+
exploit_scenario: |-
|
|
755
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
756
|
+
fix_template: |-
|
|
757
|
+
Reject raw atob blobs unless schema allows with max length.
|
|
758
|
+
pattern-either:
|
|
759
|
+
- pattern: |-
|
|
760
|
+
new Uint8Array(Uint8Array.from(atob(modelB64), c => c.charCodeAt(0)))
|
|
761
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-042\\b'
|
|
762
|
+
message: |-
|
|
763
|
+
RunSec Detection [AAC-042]: CWE-1109
|
|
764
|
+
languages:
|
|
765
|
+
- generic
|
|
766
|
+
severity: WARNING
|
|
767
|
+
- id: runsec.advanced-agent-cloud.aac-043
|
|
768
|
+
metadata:
|
|
769
|
+
runsec_version: v1.0
|
|
770
|
+
confidence: |-
|
|
771
|
+
0.9
|
|
772
|
+
exploit_scenario: |-
|
|
773
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
774
|
+
fix_template: |-
|
|
775
|
+
Короткий TTL + rotation; явные leeway/max_age в verifier.
|
|
776
|
+
pattern-either:
|
|
777
|
+
- pattern: |-
|
|
778
|
+
jwt.encode({"sub": svc}, key, algorithm="HS256", headers={"exp": int(time.time()) + 86400 * 7})
|
|
779
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-043\\b'
|
|
780
|
+
message: |-
|
|
781
|
+
RunSec Detection [AAC-043]: CWE-613
|
|
782
|
+
languages:
|
|
783
|
+
- generic
|
|
784
|
+
severity: WARNING
|
|
785
|
+
- id: runsec.advanced-agent-cloud.aac-044
|
|
786
|
+
metadata:
|
|
787
|
+
runsec_version: v1.0
|
|
788
|
+
confidence: |-
|
|
789
|
+
0.9
|
|
790
|
+
exploit_scenario: |-
|
|
791
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
792
|
+
fix_template: |-
|
|
793
|
+
Central HTTP wrapper; no IMDS literals in agent runtime.
|
|
794
|
+
pattern-either:
|
|
795
|
+
- pattern: |-
|
|
796
|
+
httpx.get("http://169.254.169.254/metadata/instance", headers={"Metadata": "true"})
|
|
797
|
+
- pattern-regex: 'Vulnerable:\\s*AAC\\-044\\b'
|
|
798
|
+
message: |-
|
|
799
|
+
RunSec Detection [AAC-044]: CWE-918
|
|
800
|
+
languages:
|
|
801
|
+
- generic
|
|
802
|
+
severity: WARNING
|