@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,2759 @@
1
+ rules:
2
+ - id: runsec.desktop-vsto-suite.ins-001
3
+ metadata:
4
+ runsec_version: v1.0
5
+ confidence: |-
6
+ 0.9
7
+ exploit_scenario: |-
8
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
9
+ fix_template: |-
10
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
11
+ pattern-either:
12
+ - pattern: |-
13
+ webPreferences: { contextIsolation: false }
14
+ - pattern-regex: 'Vulnerable:\\s*INS\\-001\\b'
15
+ message: |-
16
+ RunSec Detection [INS-001]: CWE-94
17
+ languages:
18
+ - generic
19
+ severity: WARNING
20
+ - id: runsec.desktop-vsto-suite.ins-002
21
+ metadata:
22
+ runsec_version: v1.0
23
+ confidence: |-
24
+ 0.9
25
+ exploit_scenario: |-
26
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
27
+ fix_template: |-
28
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
29
+ pattern-either:
30
+ - pattern: |-
31
+ webPreferences: { nodeIntegration: true }
32
+ - pattern-regex: 'Vulnerable:\\s*INS\\-002\\b'
33
+ message: |-
34
+ RunSec Detection [INS-002]: CWE-200
35
+ languages:
36
+ - generic
37
+ severity: WARNING
38
+ - id: runsec.desktop-vsto-suite.ins-003
39
+ metadata:
40
+ runsec_version: v1.0
41
+ confidence: |-
42
+ 0.9
43
+ exploit_scenario: |-
44
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
45
+ fix_template: |-
46
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
47
+ pattern-either:
48
+ - pattern: |-
49
+ ipcMain.on('data', (event, arg) => eval(arg))
50
+ - pattern-regex: 'Vulnerable:\\s*INS\\-003\\b'
51
+ message: |-
52
+ RunSec Detection [INS-003]: CWE-749
53
+ languages:
54
+ - generic
55
+ severity: WARNING
56
+ - id: runsec.desktop-vsto-suite.ins-004
57
+ metadata:
58
+ runsec_version: v1.0
59
+ confidence: |-
60
+ 0.9
61
+ exploit_scenario: |-
62
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
63
+ fix_template: |-
64
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
65
+ pattern-either:
66
+ - pattern: |-
67
+ new BinaryFormatter().Deserialize(stream)
68
+ - pattern-regex: 'Vulnerable:\\s*INS\\-004\\b'
69
+ message: |-
70
+ RunSec Detection [INS-004]: CWE-502
71
+ languages:
72
+ - generic
73
+ severity: WARNING
74
+ - id: runsec.desktop-vsto-suite.ins-005
75
+ metadata:
76
+ runsec_version: v1.0
77
+ confidence: |-
78
+ 0.9
79
+ exploit_scenario: |-
80
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
81
+ fix_template: |-
82
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
83
+ pattern-either:
84
+ - pattern: |-
85
+ var doc = new XmlDocument();
86
+ doc.Load(stream);
87
+ - pattern-regex: 'Vulnerable:\\s*INS\\-005\\b'
88
+ message: |-
89
+ RunSec Detection [INS-005]: CWE-611
90
+ languages:
91
+ - generic
92
+ severity: WARNING
93
+ - id: runsec.desktop-vsto-suite.ins-006
94
+ metadata:
95
+ runsec_version: v1.0
96
+ confidence: |-
97
+ 0.9
98
+ exploit_scenario: |-
99
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
100
+ fix_template: |-
101
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
102
+ pattern-either:
103
+ - pattern: |-
104
+ !include "MUI2.nsh"
105
+ - pattern-regex: 'Vulnerable:\\s*INS\\-006\\b'
106
+ message: |-
107
+ RunSec Detection [INS-006]: CWE-427
108
+ languages:
109
+ - generic
110
+ severity: WARNING
111
+ - id: runsec.desktop-vsto-suite.ins-007
112
+ metadata:
113
+ runsec_version: v1.0
114
+ confidence: |-
115
+ 0.9
116
+ exploit_scenario: |-
117
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
118
+ fix_template: |-
119
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
120
+ pattern-either:
121
+ - pattern: |-
122
+ connectionString="Server=.;User ID=sa;Password=secret123"
123
+ - pattern-regex: 'Vulnerable:\\s*INS\\-007\\b'
124
+ message: |-
125
+ RunSec Detection [INS-007]: CWE-312
126
+ languages:
127
+ - generic
128
+ severity: WARNING
129
+ - id: runsec.desktop-vsto-suite.ins-008
130
+ metadata:
131
+ runsec_version: v1.0
132
+ confidence: |-
133
+ 0.9
134
+ exploit_scenario: |-
135
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
136
+ fix_template: |-
137
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
138
+ pattern-either:
139
+ - pattern: |-
140
+ mainWindow.webContents.openDevTools()
141
+ - pattern-regex: 'Vulnerable:\\s*INS\\-008\\b'
142
+ message: |-
143
+ RunSec Detection [INS-008]: CWE-489
144
+ languages:
145
+ - generic
146
+ severity: WARNING
147
+ - id: runsec.desktop-vsto-suite.ins-009
148
+ metadata:
149
+ runsec_version: v1.0
150
+ confidence: |-
151
+ 0.9
152
+ exploit_scenario: |-
153
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
154
+ fix_template: |-
155
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
156
+ pattern-either:
157
+ - pattern: |-
158
+ new BinaryFormatter().Deserialize(stream)
159
+ new JavaScriptSerializer().Deserialize<T>(data)
160
+ new XmlSerializer(type).Deserialize(untrustedStream)
161
+ - pattern-regex: 'Vulnerable:\\s*INS\\-009\\b'
162
+ message: |-
163
+ RunSec Detection [INS-009]: CWE Final Certification
164
+ languages:
165
+ - generic
166
+ severity: WARNING
167
+ - id: runsec.desktop-vsto-suite.ins-010
168
+ metadata:
169
+ runsec_version: v1.0
170
+ confidence: |-
171
+ 0.9
172
+ exploit_scenario: |-
173
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
174
+ fix_template: |-
175
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
176
+ pattern-either:
177
+ - pattern: |-
178
+ Assembly.LoadFrom(basePath + userInput)
179
+ Type.GetType("Plugin." + userType)
180
+ - pattern-regex: 'Vulnerable:\\s*INS\\-010\\b'
181
+ message: |-
182
+ RunSec Detection [INS-010]: CWE Final Certification
183
+ languages:
184
+ - generic
185
+ severity: WARNING
186
+ - id: runsec.desktop-vsto-suite.ins-011
187
+ metadata:
188
+ runsec_version: v1.0
189
+ confidence: |-
190
+ 0.9
191
+ exploit_scenario: |-
192
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
193
+ fix_template: |-
194
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
195
+ pattern-either:
196
+ - pattern: |-
197
+ [DllImport("mylib.dll")]
198
+ LoadLibrary(userPath) без LOAD_LIBRARY_SEARCH_SYSTEM32/absolute path
199
+ - pattern-regex: 'Vulnerable:\\s*INS\\-011\\b'
200
+ message: |-
201
+ RunSec Detection [INS-011]: CWE Final Certification
202
+ languages:
203
+ - generic
204
+ severity: WARNING
205
+ - id: runsec.desktop-vsto-suite.ins-012
206
+ metadata:
207
+ runsec_version: v1.0
208
+ confidence: |-
209
+ 0.9
210
+ exploit_scenario: |-
211
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
212
+ fix_template: |-
213
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
214
+ pattern-either:
215
+ - pattern: |-
216
+ var doc = new XmlDocument(); doc.Load(xml);
217
+ new XmlTextReader(stream)
218
+ - pattern-regex: 'Vulnerable:\\s*INS\\-012\\b'
219
+ message: |-
220
+ RunSec Detection [INS-012]: CWE Final Certification
221
+ languages:
222
+ - generic
223
+ severity: WARNING
224
+ - id: runsec.desktop-vsto-suite.ins-013
225
+ metadata:
226
+ runsec_version: v1.0
227
+ confidence: |-
228
+ 0.9
229
+ exploit_scenario: |-
230
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
231
+ fix_template: |-
232
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
233
+ pattern-either:
234
+ - pattern: |-
235
+ MD5.Create()
236
+ new SHA1Managed()
237
+ new DESCryptoServiceProvider()
238
+ - pattern-regex: 'Vulnerable:\\s*INS\\-013\\b'
239
+ message: |-
240
+ RunSec Detection [INS-013]: CWE Final Certification
241
+ languages:
242
+ - generic
243
+ severity: WARNING
244
+ - id: runsec.desktop-vsto-suite.ins-014
245
+ metadata:
246
+ runsec_version: v1.0
247
+ confidence: |-
248
+ 0.9
249
+ exploit_scenario: |-
250
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
251
+ fix_template: |-
252
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
253
+ pattern-either:
254
+ - pattern: |-
255
+ if (File.Exists(path)) { using var fs = File.Open(path, ...); }
256
+ - pattern-regex: 'Vulnerable:\\s*INS\\-014\\b'
257
+ message: |-
258
+ RunSec Detection [INS-014]: CWE Final Certification
259
+ languages:
260
+ - generic
261
+ severity: WARNING
262
+ - id: runsec.desktop-vsto-suite.ins-015
263
+ metadata:
264
+ runsec_version: v1.0
265
+ confidence: |-
266
+ 0.9
267
+ exploit_scenario: |-
268
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
269
+ fix_template: |-
270
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
271
+ pattern-either:
272
+ - pattern: |-
273
+ var ctx = WindowsIdentity.Impersonate(token); (без finally { ctx.Undo(); })
274
+ - pattern-regex: 'Vulnerable:\\s*INS\\-015\\b'
275
+ message: |-
276
+ RunSec Detection [INS-015]: CWE Final Certification
277
+ languages:
278
+ - generic
279
+ severity: WARNING
280
+ - id: runsec.desktop-vsto-suite.ins-016
281
+ metadata:
282
+ runsec_version: v1.0
283
+ confidence: |-
284
+ 0.9
285
+ exploit_scenario: |-
286
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
287
+ fix_template: |-
288
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
289
+ pattern-either:
290
+ - pattern: |-
291
+ byte* p = stackalloc byte[len]; p[i + offset] = value;
292
+ - pattern-regex: 'Vulnerable:\\s*INS\\-016\\b'
293
+ message: |-
294
+ RunSec Detection [INS-016]: CWE Final Certification
295
+ languages:
296
+ - generic
297
+ severity: WARNING
298
+ - id: runsec.desktop-vsto-suite.ins-017
299
+ metadata:
300
+ runsec_version: v1.0
301
+ confidence: |-
302
+ 0.9
303
+ exploit_scenario: |-
304
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
305
+ fix_template: |-
306
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
307
+ pattern-either:
308
+ - pattern: |-
309
+ int size = count * elementSize; var buf = new byte[size];
310
+ - pattern-regex: 'Vulnerable:\\s*INS\\-017\\b'
311
+ message: |-
312
+ RunSec Detection [INS-017]: CWE Final Certification
313
+ languages:
314
+ - generic
315
+ severity: WARNING
316
+ - id: runsec.desktop-vsto-suite.ins-018
317
+ metadata:
318
+ runsec_version: v1.0
319
+ confidence: |-
320
+ 0.9
321
+ exploit_scenario: |-
322
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
323
+ fix_template: |-
324
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
325
+ pattern-either:
326
+ - pattern: |-
327
+ var fs = new FileStream(...);
328
+ var ev = new AutoResetEvent(false); (без using/dispose)
329
+ - pattern-regex: 'Vulnerable:\\s*INS\\-018\\b'
330
+ message: |-
331
+ RunSec Detection [INS-018]: CWE Final Certification
332
+ languages:
333
+ - generic
334
+ severity: WARNING
335
+ - id: runsec.desktop-vsto-suite.ins-019
336
+ metadata:
337
+ runsec_version: v1.0
338
+ confidence: |-
339
+ 0.9
340
+ exploit_scenario: |-
341
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
342
+ fix_template: |-
343
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
344
+ pattern-either:
345
+ - pattern: |-
346
+ Registry.SetValue(userKey, name, userValue)
347
+ RegistryKey.OpenSubKey(userPath)
348
+ - pattern-regex: 'Vulnerable:\\s*INS\\-019\\b'
349
+ message: |-
350
+ RunSec Detection [INS-019]: CWE Final Certification
351
+ languages:
352
+ - generic
353
+ severity: WARNING
354
+ - id: runsec.desktop-vsto-suite.ins-020
355
+ metadata:
356
+ runsec_version: v1.0
357
+ confidence: |-
358
+ 0.9
359
+ exploit_scenario: |-
360
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
361
+ fix_template: |-
362
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
363
+ pattern-either:
364
+ - pattern: |-
365
+ lock(this)
366
+ lock(typeof(Service))
367
+ lock("global")
368
+ - pattern-regex: 'Vulnerable:\\s*INS\\-020\\b'
369
+ message: |-
370
+ RunSec Detection [INS-020]: CWE Final Certification
371
+ languages:
372
+ - generic
373
+ severity: WARNING
374
+ - id: runsec.desktop-vsto-suite.ins-021
375
+ metadata:
376
+ runsec_version: v1.0
377
+ confidence: |-
378
+ 0.9
379
+ exploit_scenario: |-
380
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
381
+ fix_template: |-
382
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
383
+ pattern-either:
384
+ - pattern: |-
385
+ var p = Marshal.AllocHGlobal(size); Marshal.StructureToPtr(obj, p, false); (без FreeHGlobal)
386
+ - pattern-regex: 'Vulnerable:\\s*INS\\-021\\b'
387
+ message: |-
388
+ RunSec Detection [INS-021]: CWE Final Certification
389
+ languages:
390
+ - generic
391
+ severity: WARNING
392
+ - id: runsec.desktop-vsto-suite.ins-022
393
+ metadata:
394
+ runsec_version: v1.0
395
+ confidence: |-
396
+ 0.9
397
+ exploit_scenario: |-
398
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
399
+ fix_template: |-
400
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
401
+ pattern-either:
402
+ - pattern: |-
403
+ new NamedPipeServerStream("pipe")
404
+ new Mutex(false, "Global\\Name")
405
+ - pattern-regex: 'Vulnerable:\\s*INS\\-022\\b'
406
+ message: |-
407
+ RunSec Detection [INS-022]: CWE Final Certification
408
+ languages:
409
+ - generic
410
+ severity: WARNING
411
+ - id: runsec.desktop-vsto-suite.ins-023
412
+ metadata:
413
+ runsec_version: v1.0
414
+ confidence: |-
415
+ 0.9
416
+ exploit_scenario: |-
417
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
418
+ fix_template: |-
419
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
420
+ pattern-either:
421
+ - pattern: |-
422
+ var pipe = "svc_" + userInput; new NamedPipeServerStream(pipe)
423
+ - pattern-regex: 'Vulnerable:\\s*INS\\-023\\b'
424
+ message: |-
425
+ RunSec Detection [INS-023]: CWE Final Certification
426
+ languages:
427
+ - generic
428
+ severity: WARNING
429
+ - id: runsec.desktop-vsto-suite.ins-024
430
+ metadata:
431
+ runsec_version: v1.0
432
+ confidence: |-
433
+ 0.9
434
+ exploit_scenario: |-
435
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
436
+ fix_template: |-
437
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
438
+ pattern-either:
439
+ - pattern: |-
440
+ NativeCall(control.Handle)
441
+ NativeCall(proc.Handle)
442
+ - pattern-regex: 'Vulnerable:\\s*INS\\-024\\b'
443
+ message: |-
444
+ RunSec Detection [INS-024]: CWE Final Certification
445
+ languages:
446
+ - generic
447
+ severity: WARNING
448
+ - id: runsec.desktop-vsto-suite.ins-025
449
+ metadata:
450
+ runsec_version: v1.0
451
+ confidence: |-
452
+ 0.9
453
+ exploit_scenario: |-
454
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
455
+ fix_template: |-
456
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
457
+ pattern-either:
458
+ - pattern: |-
459
+ [DllImport("msvcrt.dll")] static extern IntPtr strcpy(...)
460
+ - pattern-regex: 'Vulnerable:\\s*INS\\-025\\b'
461
+ message: |-
462
+ RunSec Detection [INS-025]: CWE Final Certification
463
+ languages:
464
+ - generic
465
+ severity: WARNING
466
+ - id: runsec.desktop-vsto-suite.ins-026
467
+ metadata:
468
+ runsec_version: v1.0
469
+ confidence: |-
470
+ 0.9
471
+ exploit_scenario: |-
472
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
473
+ fix_template: |-
474
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
475
+ pattern-either:
476
+ - pattern: |-
477
+ Activator.CreateInstance(null, typeName)
478
+ AppDomain.CreateInstance(..., typeName)
479
+ - pattern-regex: 'Vulnerable:\\s*INS\\-026\\b'
480
+ message: |-
481
+ RunSec Detection [INS-026]: CWE Final Certification
482
+ languages:
483
+ - generic
484
+ severity: WARNING
485
+ - id: runsec.desktop-vsto-suite.ins-027
486
+ metadata:
487
+ runsec_version: v1.0
488
+ confidence: |-
489
+ 0.9
490
+ exploit_scenario: |-
491
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
492
+ fix_template: |-
493
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
494
+ pattern-either:
495
+ - pattern: |-
496
+ string apiKey = "..."
497
+ string password = input
498
+ - pattern-regex: 'Vulnerable:\\s*INS\\-027\\b'
499
+ message: |-
500
+ RunSec Detection [INS-027]: CWE Final Certification
501
+ languages:
502
+ - generic
503
+ severity: WARNING
504
+ - id: runsec.desktop-vsto-suite.ins-028
505
+ metadata:
506
+ runsec_version: v1.0
507
+ confidence: |-
508
+ 0.9
509
+ exploit_scenario: |-
510
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
511
+ fix_template: |-
512
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
513
+ pattern-either:
514
+ - pattern: |-
515
+ try { ... } catch { }
516
+ - pattern-regex: 'Vulnerable:\\s*INS\\-028\\b'
517
+ message: |-
518
+ RunSec Detection [INS-028]: CWE Final Certification
519
+ languages:
520
+ - generic
521
+ severity: WARNING
522
+ - id: runsec.desktop-vsto-suite.ins-029
523
+ metadata:
524
+ runsec_version: v1.0
525
+ confidence: |-
526
+ 0.9
527
+ exploit_scenario: |-
528
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
529
+ fix_template: |-
530
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
531
+ pattern-either:
532
+ - pattern: |-
533
+ if (!NativeCall(...)) отсутствует проверка
534
+ HRESULT игнорируется
535
+ - pattern-regex: 'Vulnerable:\\s*INS\\-029\\b'
536
+ message: |-
537
+ RunSec Detection [INS-029]: CWE Final Certification
538
+ languages:
539
+ - generic
540
+ severity: WARNING
541
+ - id: runsec.desktop-vsto-suite.ins-030
542
+ metadata:
543
+ runsec_version: v1.0
544
+ confidence: |-
545
+ 0.9
546
+ exploit_scenario: |-
547
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
548
+ fix_template: |-
549
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
550
+ pattern-either:
551
+ - pattern: |-
552
+ var app = new Microsoft.Office.Interop... без release в finally
553
+ - pattern-regex: 'Vulnerable:\\s*INS\\-030\\b'
554
+ message: |-
555
+ RunSec Detection [INS-030]: CWE Final Certification
556
+ languages:
557
+ - generic
558
+ severity: WARNING
559
+ - id: runsec.desktop-vsto-suite.ins-031
560
+ metadata:
561
+ runsec_version: v1.0
562
+ confidence: |-
563
+ 0.9
564
+ exploit_scenario: |-
565
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
566
+ fix_template: |-
567
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
568
+ pattern-either:
569
+ - pattern: |-
570
+ static readonly byte[] Key = {...}; aes.Key = Key;
571
+ - pattern-regex: 'Vulnerable:\\s*INS\\-031\\b'
572
+ message: |-
573
+ RunSec Detection [INS-031]: CWE Final Certification
574
+ languages:
575
+ - generic
576
+ severity: WARNING
577
+ - id: runsec.desktop-vsto-suite.ins-032
578
+ metadata:
579
+ runsec_version: v1.0
580
+ confidence: |-
581
+ 0.9
582
+ exploit_scenario: |-
583
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
584
+ fix_template: |-
585
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
586
+ pattern-either:
587
+ - pattern: |-
588
+ var rnd = new Random(); для IV/паролей/токенов
589
+ - pattern-regex: 'Vulnerable:\\s*INS\\-032\\b'
590
+ message: |-
591
+ RunSec Detection [INS-032]: CWE Final Certification
592
+ languages:
593
+ - generic
594
+ severity: WARNING
595
+ - id: runsec.desktop-vsto-suite.ins-033
596
+ metadata:
597
+ runsec_version: v1.0
598
+ confidence: |-
599
+ 0.9
600
+ exploit_scenario: |-
601
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
602
+ fix_template: |-
603
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
604
+ pattern-either:
605
+ - pattern: |-
606
+ new RSACryptoServiceProvider(1024)
607
+ - pattern-regex: 'Vulnerable:\\s*INS\\-033\\b'
608
+ message: |-
609
+ RunSec Detection [INS-033]: CWE Final Certification
610
+ languages:
611
+ - generic
612
+ severity: WARNING
613
+ - id: runsec.desktop-vsto-suite.ins-034
614
+ metadata:
615
+ runsec_version: v1.0
616
+ confidence: |-
617
+ 0.9
618
+ exploit_scenario: |-
619
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
620
+ fix_template: |-
621
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
622
+ pattern-either:
623
+ - pattern: |-
624
+ var aes = new AesManaged { Key = keyBytes, IV = ivBytes }; где keyBytes/ivBytes заданы как static literals
625
+ - pattern-regex: 'Vulnerable:\\s*INS\\-034\\b'
626
+ message: |-
627
+ RunSec Detection [INS-034]: CWE Final Certification
628
+ languages:
629
+ - generic
630
+ severity: WARNING
631
+ - id: runsec.desktop-vsto-suite.ins-035
632
+ metadata:
633
+ runsec_version: v1.0
634
+ confidence: |-
635
+ 0.9
636
+ exploit_scenario: |-
637
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
638
+ fix_template: |-
639
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
640
+ pattern-either:
641
+ - pattern: |-
642
+ new Random().Next(...) для auth token / salt / reset code
643
+ - pattern-regex: 'Vulnerable:\\s*INS\\-035\\b'
644
+ message: |-
645
+ RunSec Detection [INS-035]: CWE Final Certification
646
+ languages:
647
+ - generic
648
+ severity: WARNING
649
+ - id: runsec.desktop-vsto-suite.ins-036
650
+ metadata:
651
+ runsec_version: v1.0
652
+ confidence: |-
653
+ 0.9
654
+ exploit_scenario: |-
655
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
656
+ fix_template: |-
657
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
658
+ pattern-either:
659
+ - pattern: |-
660
+ dynamic obj = JsonConvert.DeserializeObject<dynamic>(input) и последующий direct access
661
+ - pattern-regex: 'Vulnerable:\\s*INS\\-036\\b'
662
+ message: |-
663
+ RunSec Detection [INS-036]: CWE Final Certification
664
+ languages:
665
+ - generic
666
+ severity: WARNING
667
+ - id: runsec.desktop-vsto-suite.ins-037
668
+ metadata:
669
+ runsec_version: v1.0
670
+ confidence: |-
671
+ 0.9
672
+ exploit_scenario: |-
673
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
674
+ fix_template: |-
675
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
676
+ pattern-either:
677
+ - pattern: |-
678
+ var xml = new XmlDocument(); xml.LoadXml(untrusted) без XmlResolver = null и запрета DTD
679
+ - pattern-regex: 'Vulnerable:\\s*INS\\-037\\b'
680
+ message: |-
681
+ RunSec Detection [INS-037]: CWE Final Certification
682
+ languages:
683
+ - generic
684
+ severity: WARNING
685
+ - id: runsec.desktop-vsto-suite.ins-038
686
+ metadata:
687
+ runsec_version: v1.0
688
+ confidence: |-
689
+ 0.9
690
+ exploit_scenario: |-
691
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
692
+ fix_template: |-
693
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
694
+ pattern-either:
695
+ - pattern: |-
696
+ webBrowser.Navigate(userInputUrl) без Uri.TryCreate и uri.Scheme == Uri.UriSchemeHttps
697
+ - pattern-regex: 'Vulnerable:\\s*INS\\-038\\b'
698
+ message: |-
699
+ RunSec Detection [INS-038]: CWE Final Certification
700
+ languages:
701
+ - generic
702
+ severity: WARNING
703
+ - id: runsec.desktop-vsto-suite.ins-039
704
+ metadata:
705
+ runsec_version: v1.0
706
+ confidence: |-
707
+ 0.9
708
+ exploit_scenario: |-
709
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
710
+ fix_template: |-
711
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
712
+ pattern-either:
713
+ - pattern: |-
714
+ [Conditional("DEBUG")] void DisableSslValidation(){...}
715
+ [Conditional("DEBUG")] void BypassLicense(){...}
716
+ - pattern-regex: 'Vulnerable:\\s*INS\\-039\\b'
717
+ message: |-
718
+ RunSec Detection [INS-039]: CWE Final Certification
719
+ languages:
720
+ - generic
721
+ severity: WARNING
722
+ - id: runsec.desktop-vsto-suite.ins-040
723
+ metadata:
724
+ runsec_version: v1.0
725
+ confidence: |-
726
+ 0.9
727
+ exploit_scenario: |-
728
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
729
+ fix_template: |-
730
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
731
+ pattern-either:
732
+ - pattern: |-
733
+ Task.Run(() => Globals.ThisAddIn.Application.ActiveDocument...)
734
+ - pattern-regex: 'Vulnerable:\\s*INS\\-040\\b'
735
+ message: |-
736
+ RunSec Detection [INS-040]: CWE Final Certification
737
+ languages:
738
+ - generic
739
+ severity: WARNING
740
+ - id: runsec.desktop-vsto-suite.ins-041
741
+ metadata:
742
+ runsec_version: v1.0
743
+ confidence: |-
744
+ 0.9
745
+ exploit_scenario: |-
746
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
747
+ fix_template: |-
748
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
749
+ pattern-either:
750
+ - pattern: |-
751
+ В main process не задан CSP или CSP без frame-ancestors 'none'
752
+ - pattern-regex: 'Vulnerable:\\s*INS\\-041\\b'
753
+ message: |-
754
+ RunSec Detection [INS-041]: CWE Final Certification
755
+ languages:
756
+ - generic
757
+ severity: WARNING
758
+ - id: runsec.desktop-vsto-suite.ins-042
759
+ metadata:
760
+ runsec_version: v1.0
761
+ confidence: |-
762
+ 0.9
763
+ exploit_scenario: |-
764
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
765
+ fix_template: |-
766
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
767
+ pattern-either:
768
+ - pattern: |-
769
+ var p = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(IntPtr))) для структуры большего размера
770
+ - pattern-regex: 'Vulnerable:\\s*INS\\-042\\b'
771
+ message: |-
772
+ RunSec Detection [INS-042]: CWE Final Certification
773
+ languages:
774
+ - generic
775
+ severity: WARNING
776
+ - id: runsec.desktop-vsto-suite.ins-043
777
+ metadata:
778
+ runsec_version: v1.0
779
+ confidence: |-
780
+ 0.9
781
+ exploit_scenario: |-
782
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
783
+ fix_template: |-
784
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
785
+ pattern-either:
786
+ - pattern: |-
787
+ Marshal.AllocHGlobal(input.Length) для wide-char строк
788
+ - pattern-regex: 'Vulnerable:\\s*INS\\-043\\b'
789
+ message: |-
790
+ RunSec Detection [INS-043]: CWE Final Certification
791
+ languages:
792
+ - generic
793
+ severity: WARNING
794
+ - id: runsec.desktop-vsto-suite.ins-044
795
+ metadata:
796
+ runsec_version: v1.0
797
+ confidence: |-
798
+ 0.9
799
+ exploit_scenario: |-
800
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
801
+ fix_template: |-
802
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
803
+ pattern-either:
804
+ - pattern: |-
805
+ AllocHGlobal(16); Marshal.StructureToPtr(largeStruct, ptr, false)
806
+ - pattern-regex: 'Vulnerable:\\s*INS\\-044\\b'
807
+ message: |-
808
+ RunSec Detection [INS-044]: CWE Final Certification
809
+ languages:
810
+ - generic
811
+ severity: WARNING
812
+ - id: runsec.desktop-vsto-suite.ins-045
813
+ metadata:
814
+ runsec_version: v1.0
815
+ confidence: |-
816
+ 0.9
817
+ exploit_scenario: |-
818
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
819
+ fix_template: |-
820
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
821
+ pattern-either:
822
+ - pattern: |-
823
+ Marshal.Copy(src, 0, ptr, userLen)
824
+ - pattern-regex: 'Vulnerable:\\s*INS\\-045\\b'
825
+ message: |-
826
+ RunSec Detection [INS-045]: CWE Final Certification
827
+ languages:
828
+ - generic
829
+ severity: WARNING
830
+ - id: runsec.desktop-vsto-suite.ins-046
831
+ metadata:
832
+ runsec_version: v1.0
833
+ confidence: |-
834
+ 0.9
835
+ exploit_scenario: |-
836
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
837
+ fix_template: |-
838
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
839
+ pattern-either:
840
+ - pattern: |-
841
+ logger.Error(ex.ToString())
842
+ MessageBox.Show(ex.ToString()) в production path
843
+ - pattern-regex: 'Vulnerable:\\s*INS\\-046\\b'
844
+ message: |-
845
+ RunSec Detection [INS-046]: CWE Final Certification
846
+ languages:
847
+ - generic
848
+ severity: WARNING
849
+ - id: runsec.desktop-vsto-suite.ins-047
850
+ metadata:
851
+ runsec_version: v1.0
852
+ confidence: |-
853
+ 0.9
854
+ exploit_scenario: |-
855
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
856
+ fix_template: |-
857
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
858
+ pattern-either:
859
+ - pattern: |-
860
+ app.commandLine.appendSwitch("enable-logging", "stderr") + export raw crash details
861
+ - pattern-regex: 'Vulnerable:\\s*INS\\-047\\b'
862
+ message: |-
863
+ RunSec Detection [INS-047]: CWE Final Certification
864
+ languages:
865
+ - generic
866
+ severity: WARNING
867
+ - id: runsec.desktop-vsto-suite.ins-048
868
+ metadata:
869
+ runsec_version: v1.0
870
+ confidence: |-
871
+ 0.9
872
+ exploit_scenario: |-
873
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
874
+ fix_template: |-
875
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
876
+ pattern-either:
877
+ - pattern: |-
878
+ session.setPermissionRequestHandler((_wc,_perm,cb)=>cb(true))
879
+ - pattern-regex: 'Vulnerable:\\s*INS\\-048\\b'
880
+ message: |-
881
+ RunSec Detection [INS-048]: CWE Final Certification
882
+ languages:
883
+ - generic
884
+ severity: WARNING
885
+ - id: runsec.desktop-vsto-suite.ins-049
886
+ metadata:
887
+ runsec_version: v1.0
888
+ confidence: |-
889
+ 0.9
890
+ exploit_scenario: |-
891
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
892
+ fix_template: |-
893
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
894
+ pattern-either:
895
+ - pattern: |-
896
+ shell.openExternal(userUrl)
897
+ - pattern-regex: 'Vulnerable:\\s*INS\\-049\\b'
898
+ message: |-
899
+ RunSec Detection [INS-049]: CWE Final Certification
900
+ languages:
901
+ - generic
902
+ severity: WARNING
903
+ - id: runsec.desktop-vsto-suite.ins-050
904
+ metadata:
905
+ runsec_version: v1.0
906
+ confidence: |-
907
+ 0.9
908
+ exploit_scenario: |-
909
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
910
+ fix_template: |-
911
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
912
+ pattern-either:
913
+ - pattern: |-
914
+ new BrowserWindow({ webPreferences: { sandbox: false } })
915
+ - pattern-regex: 'Vulnerable:\\s*INS\\-050\\b'
916
+ message: |-
917
+ RunSec Detection [INS-050]: CWE Final Certification
918
+ languages:
919
+ - generic
920
+ severity: WARNING
921
+ - id: runsec.desktop-vsto-suite.ins-051
922
+ metadata:
923
+ runsec_version: v1.0
924
+ confidence: |-
925
+ 0.9
926
+ exploit_scenario: |-
927
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
928
+ fix_template: |-
929
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
930
+ pattern-either:
931
+ - pattern: |-
932
+ ipcMain.handle("cmd", (_e,args)=>run(args))
933
+ - pattern-regex: 'Vulnerable:\\s*INS\\-051\\b'
934
+ message: |-
935
+ RunSec Detection [INS-051]: CWE Final Certification
936
+ languages:
937
+ - generic
938
+ severity: WARNING
939
+ - id: runsec.desktop-vsto-suite.ins-052
940
+ metadata:
941
+ runsec_version: v1.0
942
+ confidence: |-
943
+ 0.9
944
+ exploit_scenario: |-
945
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
946
+ fix_template: |-
947
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
948
+ pattern-either:
949
+ - pattern: |-
950
+ autoUpdater.setFeedURL(userControlledUrl)
951
+ - pattern-regex: 'Vulnerable:\\s*INS\\-052\\b'
952
+ message: |-
953
+ RunSec Detection [INS-052]: CWE Final Certification
954
+ languages:
955
+ - generic
956
+ severity: WARNING
957
+ - id: runsec.desktop-vsto-suite.ins-053
958
+ metadata:
959
+ runsec_version: v1.0
960
+ confidence: |-
961
+ 0.9
962
+ exploit_scenario: |-
963
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
964
+ fix_template: |-
965
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
966
+ pattern-either:
967
+ - pattern: |-
968
+ if(doc.BuiltInDocumentProperties["Company"]=="Trusted"){LoadPlugin();}
969
+ - pattern-regex: 'Vulnerable:\\s*INS\\-053\\b'
970
+ message: |-
971
+ RunSec Detection [INS-053]: CWE Final Certification
972
+ languages:
973
+ - generic
974
+ severity: WARNING
975
+ - id: runsec.desktop-vsto-suite.ins-054
976
+ metadata:
977
+ runsec_version: v1.0
978
+ confidence: |-
979
+ 0.9
980
+ exploit_scenario: |-
981
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
982
+ fix_template: |-
983
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
984
+ pattern-either:
985
+ - pattern: |-
986
+ [DllImport("contoso_helper.dll")]
987
+ [DllImport(@"plugins\myext.dll")]
988
+ - pattern-regex: 'Vulnerable:\\s*INS\\-054\\b'
989
+ message: |-
990
+ RunSec Detection [INS-054]: CWE-427
991
+ languages:
992
+ - generic
993
+ severity: WARNING
994
+ - id: runsec.desktop-vsto-suite.ins-055
995
+ metadata:
996
+ runsec_version: v1.0
997
+ confidence: |-
998
+ 0.9
999
+ exploit_scenario: |-
1000
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1001
+ fix_template: |-
1002
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1003
+ pattern-either:
1004
+ - pattern: |-
1005
+ Log.Info(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData))
1006
+ logger.Debug($"Local={Environment.GetFolderPath(SpecialFolder.LocalApplicationData)}")
1007
+ - pattern-regex: 'Vulnerable:\\s*INS\\-055\\b'
1008
+ message: |-
1009
+ RunSec Detection [INS-055]: CWE-497
1010
+ languages:
1011
+ - generic
1012
+ severity: WARNING
1013
+ - id: runsec.desktop-vsto-suite.ins-056
1014
+ metadata:
1015
+ runsec_version: v1.0
1016
+ confidence: |-
1017
+ 0.9
1018
+ exploit_scenario: |-
1019
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1020
+ fix_template: |-
1021
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1022
+ pattern-either:
1023
+ - pattern: |-
1024
+ LoadLibrary(Path.Combine(Path.GetTempPath(), userDll))
1025
+ - pattern-regex: 'Vulnerable:\\s*INS\\-056\\b'
1026
+ message: |-
1027
+ RunSec Detection [INS-056]: CWE-427
1028
+ languages:
1029
+ - generic
1030
+ severity: WARNING
1031
+ - id: runsec.desktop-vsto-suite.ins-057
1032
+ metadata:
1033
+ runsec_version: v1.0
1034
+ confidence: |-
1035
+ 0.9
1036
+ exploit_scenario: |-
1037
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1038
+ fix_template: |-
1039
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1040
+ pattern-either:
1041
+ - pattern: |-
1042
+ Assembly.LoadFile(Path.Combine(Environment.GetFolderPath(SpecialFolder.UserProfile), "Downloads\\ext.dll"))
1043
+ - pattern-regex: 'Vulnerable:\\s*INS\\-057\\b'
1044
+ message: |-
1045
+ RunSec Detection [INS-057]: CWE-427
1046
+ languages:
1047
+ - generic
1048
+ severity: WARNING
1049
+ - id: runsec.desktop-vsto-suite.ins-058
1050
+ metadata:
1051
+ runsec_version: v1.0
1052
+ confidence: |-
1053
+ 0.9
1054
+ exploit_scenario: |-
1055
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1056
+ fix_template: |-
1057
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1058
+ pattern-either:
1059
+ - pattern: |-
1060
+ pathText.Text = Environment.GetFolderPath(SpecialFolder.Desktop)
1061
+ - pattern-regex: 'Vulnerable:\\s*INS\\-058\\b'
1062
+ message: |-
1063
+ RunSec Detection [INS-058]: CWE-497
1064
+ languages:
1065
+ - generic
1066
+ severity: WARNING
1067
+ - id: runsec.desktop-vsto-suite.ins-059
1068
+ metadata:
1069
+ runsec_version: v1.0
1070
+ confidence: |-
1071
+ 0.9
1072
+ exploit_scenario: |-
1073
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1074
+ fix_template: |-
1075
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1076
+ pattern-either:
1077
+ - pattern: |-
1078
+ MessageBox.Show(Environment.GetFolderPath(SpecialFolder.Personal))
1079
+ - pattern-regex: 'Vulnerable:\\s*INS\\-059\\b'
1080
+ message: |-
1081
+ RunSec Detection [INS-059]: CWE-497
1082
+ languages:
1083
+ - generic
1084
+ severity: WARNING
1085
+ - id: runsec.desktop-vsto-suite.ins-060
1086
+ metadata:
1087
+ runsec_version: v1.0
1088
+ confidence: |-
1089
+ 0.9
1090
+ exploit_scenario: |-
1091
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1092
+ fix_template: |-
1093
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1094
+ pattern-either:
1095
+ - pattern: |-
1096
+ this.Text = dlg.FileName
1097
+ - pattern-regex: 'Vulnerable:\\s*INS\\-060\\b'
1098
+ message: |-
1099
+ RunSec Detection [INS-060]: CWE-497
1100
+ languages:
1101
+ - generic
1102
+ severity: WARNING
1103
+ - id: runsec.desktop-vsto-suite.ins-061
1104
+ metadata:
1105
+ runsec_version: v1.0
1106
+ confidence: |-
1107
+ 0.9
1108
+ exploit_scenario: |-
1109
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1110
+ fix_template: |-
1111
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1112
+ pattern-either:
1113
+ - pattern: |-
1114
+ [DllImport("kernel32", SetLastError=true)] + SetDllDirectory(Path.GetTempPath())
1115
+ - pattern-regex: 'Vulnerable:\\s*INS\\-061\\b'
1116
+ message: |-
1117
+ RunSec Detection [INS-061]: CWE-427
1118
+ languages:
1119
+ - generic
1120
+ severity: WARNING
1121
+ - id: runsec.desktop-vsto-suite.ins-062
1122
+ metadata:
1123
+ runsec_version: v1.0
1124
+ confidence: |-
1125
+ 0.9
1126
+ exploit_scenario: |-
1127
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1128
+ fix_template: |-
1129
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1130
+ pattern-either:
1131
+ - pattern: |-
1132
+ lblPath.Text = Assembly.GetExecutingAssembly().Location
1133
+ - pattern-regex: 'Vulnerable:\\s*INS\\-062\\b'
1134
+ message: |-
1135
+ RunSec Detection [INS-062]: CWE-497
1136
+ languages:
1137
+ - generic
1138
+ severity: WARNING
1139
+ - id: runsec.desktop-vsto-suite.ins-063
1140
+ metadata:
1141
+ runsec_version: v1.0
1142
+ confidence: |-
1143
+ 0.9
1144
+ exploit_scenario: |-
1145
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1146
+ fix_template: |-
1147
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1148
+ pattern-either:
1149
+ - pattern: |-
1150
+ win.setTitle(filePaths[0])
1151
+ - pattern-regex: 'Vulnerable:\\s*INS\\-063\\b'
1152
+ message: |-
1153
+ RunSec Detection [INS-063]: CWE-497
1154
+ languages:
1155
+ - generic
1156
+ severity: WARNING
1157
+ - id: runsec.desktop-vsto-suite.ins-064
1158
+ metadata:
1159
+ runsec_version: v1.0
1160
+ confidence: |-
1161
+ 0.9
1162
+ exploit_scenario: |-
1163
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1164
+ fix_template: |-
1165
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1166
+ pattern-either:
1167
+ - pattern: |-
1168
+ NativeLibrary.Load("plugins\\native.dll")
1169
+ - pattern-regex: 'Vulnerable:\\s*INS\\-064\\b'
1170
+ message: |-
1171
+ RunSec Detection [INS-064]: CWE-427
1172
+ languages:
1173
+ - generic
1174
+ severity: WARNING
1175
+ - id: runsec.desktop-vsto-suite.ins-065
1176
+ metadata:
1177
+ runsec_version: v1.0
1178
+ confidence: |-
1179
+ 0.9
1180
+ exploit_scenario: |-
1181
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1182
+ fix_template: |-
1183
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1184
+ pattern-either:
1185
+ - pattern: |-
1186
+ statusLabel.Text = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
1187
+ - pattern-regex: 'Vulnerable:\\s*INS\\-065\\b'
1188
+ message: |-
1189
+ RunSec Detection [INS-065]: CWE-497
1190
+ languages:
1191
+ - generic
1192
+ severity: WARNING
1193
+ - id: runsec.desktop-vsto-suite.ins-066
1194
+ metadata:
1195
+ runsec_version: v1.0
1196
+ confidence: |-
1197
+ 0.9
1198
+ exploit_scenario: |-
1199
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1200
+ fix_template: |-
1201
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1202
+ pattern-either:
1203
+ - pattern: |-
1204
+ if (File.Exists(path)) { using var s = File.OpenRead(path); }
1205
+ - pattern-regex: 'Vulnerable:\\s*INS\\-066\\b'
1206
+ message: |-
1207
+ RunSec Detection [INS-066]: CWE-367
1208
+ languages:
1209
+ - generic
1210
+ severity: WARNING
1211
+ - id: runsec.desktop-vsto-suite.ins-067
1212
+ metadata:
1213
+ runsec_version: v1.0
1214
+ confidence: |-
1215
+ 0.9
1216
+ exploit_scenario: |-
1217
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1218
+ fix_template: |-
1219
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1220
+ pattern-either:
1221
+ - pattern: |-
1222
+ [DllImport("contoso_native.dll", CallingConvention = CallingConvention.Cdecl)] без LoadLibrary из Path.Combine(AppContext.BaseDirectory, "native", "contoso_native.dll")
1223
+ - pattern-regex: 'Vulnerable:\\s*INS\\-067\\b'
1224
+ message: |-
1225
+ RunSec Detection [INS-067]: CWE-427
1226
+ languages:
1227
+ - generic
1228
+ severity: WARNING
1229
+ - id: runsec.desktop-vsto-suite.ins-068
1230
+ metadata:
1231
+ runsec_version: v1.0
1232
+ confidence: |-
1233
+ 0.9
1234
+ exploit_scenario: |-
1235
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1236
+ fix_template: |-
1237
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1238
+ pattern-either:
1239
+ - pattern: |-
1240
+ File.Open(path, FileMode.Open, FileAccess.ReadWrite) без FileShare.Read/Delete policy
1241
+ - pattern-regex: 'Vulnerable:\\s*INS\\-068\\b'
1242
+ message: |-
1243
+ RunSec Detection [INS-068]: CWE-367
1244
+ languages:
1245
+ - generic
1246
+ severity: WARNING
1247
+ - id: runsec.desktop-vsto-suite.ins-069
1248
+ metadata:
1249
+ runsec_version: v1.0
1250
+ confidence: |-
1251
+ 0.9
1252
+ exploit_scenario: |-
1253
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1254
+ fix_template: |-
1255
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1256
+ pattern-either:
1257
+ - pattern: |-
1258
+ Span<byte> buf = stackalloc byte[userLen]; без checked и верхней границы
1259
+ - pattern-regex: 'Vulnerable:\\s*INS\\-069\\b'
1260
+ message: |-
1261
+ RunSec Detection [INS-069]: CWE-131
1262
+ languages:
1263
+ - generic
1264
+ severity: WARNING
1265
+ - id: runsec.desktop-vsto-suite.ins-070
1266
+ metadata:
1267
+ runsec_version: v1.0
1268
+ confidence: |-
1269
+ 0.9
1270
+ exploit_scenario: |-
1271
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1272
+ fix_template: |-
1273
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1274
+ pattern-either:
1275
+ - pattern: |-
1276
+ Log.Debug(Environment.GetEnvironmentVariables().ToString())
1277
+ - pattern-regex: 'Vulnerable:\\s*INS\\-070\\b'
1278
+ message: |-
1279
+ RunSec Detection [INS-070]: CWE-497
1280
+ languages:
1281
+ - generic
1282
+ severity: WARNING
1283
+ - id: runsec.desktop-vsto-suite.ins-071
1284
+ metadata:
1285
+ runsec_version: v1.0
1286
+ confidence: |-
1287
+ 0.9
1288
+ exploit_scenario: |-
1289
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1290
+ fix_template: |-
1291
+ Use using/try-finally and safe .NET APIs; enforce strict allowlists for untrusted input.
1292
+ pattern-either:
1293
+ - pattern: |-
1294
+ TelemetryClient.TrackTrace(string.Join(" ", Environment.GetCommandLineArgs()))
1295
+ - pattern-regex: 'Vulnerable:\\s*INS\\-071\\b'
1296
+ message: |-
1297
+ RunSec Detection [INS-071]: CWE-497
1298
+ languages:
1299
+ - generic
1300
+ severity: WARNING
1301
+ - id: runsec.desktop-vsto-suite.ins-072
1302
+ metadata:
1303
+ runsec_version: v1.0
1304
+ confidence: |-
1305
+ 0.9
1306
+ exploit_scenario: |-
1307
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1308
+ fix_template: |-
1309
+ Prefix formula-meta chars in .xlsx exports; central sanitizeForExcelCell() for all user/DB fields.
1310
+ pattern-either:
1311
+ - pattern: |-
1312
+ ws['A1'] = userCell
1313
+ без префикса ' и без strip =+-@
1314
+ - pattern-regex: 'Vulnerable:\\s*INS\\-072\\b'
1315
+ message: |-
1316
+ RunSec Detection [INS-072]: CWE-1236
1317
+ languages:
1318
+ - generic
1319
+ severity: WARNING
1320
+ - id: runsec.desktop-vsto-suite.ins-073
1321
+ metadata:
1322
+ runsec_version: v1.0
1323
+ confidence: |-
1324
+ 0.9
1325
+ exploit_scenario: |-
1326
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1327
+ fix_template: |-
1328
+ Map all values through sanitize before json_to_sheet / aoa_to_sheet.
1329
+ pattern-either:
1330
+ - pattern: |-
1331
+ XLSX.utils.json_to_sheet(rows) где rows из API
1332
+ - pattern-regex: 'Vulnerable:\\s*INS\\-073\\b'
1333
+ message: |-
1334
+ RunSec Detection [INS-073]: CWE-1236
1335
+ languages:
1336
+ - generic
1337
+ severity: WARNING
1338
+ - id: runsec.desktop-vsto-suite.ins-074
1339
+ metadata:
1340
+ runsec_version: v1.0
1341
+ confidence: |-
1342
+ 0.9
1343
+ exploit_scenario: |-
1344
+ Never write raw user strings to xlsx cells; apply CSV/Excel injection defenses.
1345
+ fix_template: |-
1346
+ CWE-1236
1347
+ pattern-either:
1348
+ - pattern: |-
1349
+ XLSX.writeFile(wb, outPath) после заполнения из БД
1350
+ - pattern-regex: 'Vulnerable:\\s*INS\\-074\\b'
1351
+ message: |-
1352
+ RunSec Detection [INS-074]: Insight/Node/xlsx
1353
+ languages:
1354
+ - generic
1355
+ severity: WARNING
1356
+ - id: runsec.desktop-vsto-suite.ins-075
1357
+ metadata:
1358
+ runsec_version: v1.0
1359
+ confidence: |-
1360
+ 0.9
1361
+ exploit_scenario: |-
1362
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1363
+ fix_template: |-
1364
+ On re-export pipeline, treat every cell as untrusted input.
1365
+ pattern-either:
1366
+ - pattern: |-
1367
+ XLSX.read затем sheet_to_json → обратно json_to_sheet
1368
+ - pattern-regex: 'Vulnerable:\\s*INS\\-075\\b'
1369
+ message: |-
1370
+ RunSec Detection [INS-075]: CWE-1236
1371
+ languages:
1372
+ - generic
1373
+ severity: WARNING
1374
+ - id: runsec.desktop-vsto-suite.ins-076
1375
+ metadata:
1376
+ runsec_version: v1.0
1377
+ confidence: |-
1378
+ 0.9
1379
+ exploit_scenario: |-
1380
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1381
+ fix_template: |-
1382
+ Enforce max doc size before mammoth; reject oversized ZIP/docx.
1383
+ pattern-either:
1384
+ - pattern: |-
1385
+ mammoth.convertToHtml({ path: userPath })
1386
+ - pattern-regex: 'Vulnerable:\\s*INS\\-076\\b'
1387
+ message: |-
1388
+ RunSec Detection [INS-076]: CWE-409
1389
+ languages:
1390
+ - generic
1391
+ severity: WARNING
1392
+ - id: runsec.desktop-vsto-suite.ins-077
1393
+ metadata:
1394
+ runsec_version: v1.0
1395
+ confidence: |-
1396
+ 0.9
1397
+ exploit_scenario: |-
1398
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1399
+ fix_template: |-
1400
+ Pre-validate docx zip and XML parts; disable entity expansion in XML pipeline.
1401
+ pattern-either:
1402
+ - pattern: |-
1403
+ mammoth.extractRawText({ path: p }) на недоверенном файле
1404
+ - pattern-regex: 'Vulnerable:\\s*INS\\-077\\b'
1405
+ message: |-
1406
+ RunSec Detection [INS-077]: CWE-611
1407
+ languages:
1408
+ - generic
1409
+ severity: WARNING
1410
+ - id: runsec.desktop-vsto-suite.ins-078
1411
+ metadata:
1412
+ runsec_version: v1.0
1413
+ confidence: |-
1414
+ 0.9
1415
+ exploit_scenario: |-
1416
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1417
+ fix_template: |-
1418
+ Enforce max uncompressed size and compression ratio for OOXML containers.
1419
+ pattern-either:
1420
+ - pattern: |-
1421
+ new PizZip(buf) / getDocument без лимитов
1422
+ - pattern-regex: 'Vulnerable:\\s*INS\\-078\\b'
1423
+ message: |-
1424
+ RunSec Detection [INS-078]: CWE-409
1425
+ languages:
1426
+ - generic
1427
+ severity: WARNING
1428
+ - id: runsec.desktop-vsto-suite.ins-079
1429
+ metadata:
1430
+ runsec_version: v1.0
1431
+ confidence: |-
1432
+ 0.9
1433
+ exploit_scenario: |-
1434
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1435
+ fix_template: |-
1436
+ Track cumulative uncompressed bytes; abort on threshold (zip bomb).
1437
+ pattern-either:
1438
+ - pattern: |-
1439
+ zip.loadAsync(buf) затем file.async('string')
1440
+ - pattern-regex: 'Vulnerable:\\s*INS\\-079\\b'
1441
+ message: |-
1442
+ RunSec Detection [INS-079]: CWE-409
1443
+ languages:
1444
+ - generic
1445
+ severity: WARNING
1446
+ - id: runsec.desktop-vsto-suite.ins-080
1447
+ metadata:
1448
+ runsec_version: v1.0
1449
+ confidence: |-
1450
+ 0.9
1451
+ exploit_scenario: |-
1452
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1453
+ fix_template: |-
1454
+ Cap PDF bytes and pages; stream with limits.
1455
+ pattern-either:
1456
+ - pattern: |-
1457
+ pdfjsLib.getDocument({ url: userUrl })
1458
+ - pattern-regex: 'Vulnerable:\\s*INS\\-080\\b'
1459
+ message: |-
1460
+ RunSec Detection [INS-080]: CWE-409
1461
+ languages:
1462
+ - generic
1463
+ severity: WARNING
1464
+ - id: runsec.desktop-vsto-suite.ins-081
1465
+ metadata:
1466
+ runsec_version: v1.0
1467
+ confidence: |-
1468
+ 0.9
1469
+ exploit_scenario: |-
1470
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1471
+ fix_template: |-
1472
+ Host pdf.worker.js from same origin; integrity attribute.
1473
+ pattern-either:
1474
+ - pattern: |-
1475
+ GlobalWorkerOptions.workerSrc = 'http://cdn.../pdf.worker.js'
1476
+ - pattern-regex: 'Vulnerable:\\s*INS\\-081\\b'
1477
+ message: |-
1478
+ RunSec Detection [INS-081]: CWE-611
1479
+ languages:
1480
+ - generic
1481
+ severity: WARNING
1482
+ - id: runsec.desktop-vsto-suite.ins-082
1483
+ metadata:
1484
+ runsec_version: v1.0
1485
+ confidence: |-
1486
+ 0.9
1487
+ exploit_scenario: |-
1488
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1489
+ fix_template: |-
1490
+ Timeout + size limit around word-extractor; reject huge binaries.
1491
+ pattern-either:
1492
+ - pattern: |-
1493
+ extractor.extract(path) на сетевом каталоге
1494
+ - pattern-regex: 'Vulnerable:\\s*INS\\-082\\b'
1495
+ message: |-
1496
+ RunSec Detection [INS-082]: CWE-409
1497
+ languages:
1498
+ - generic
1499
+ severity: WARNING
1500
+ - id: runsec.desktop-vsto-suite.ins-083
1501
+ metadata:
1502
+ runsec_version: v1.0
1503
+ confidence: |-
1504
+ 0.9
1505
+ exploit_scenario: |-
1506
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1507
+ fix_template: |-
1508
+ Parse OOXML with XXE-safe XML settings; no external entities.
1509
+ pattern-either:
1510
+ - pattern: |-
1511
+ parseString(xml, { mergeAttrs: true })
1512
+ - pattern-regex: 'Vulnerable:\\s*INS\\-083\\b'
1513
+ message: |-
1514
+ RunSec Detection [INS-083]: CWE-611
1515
+ languages:
1516
+ - generic
1517
+ severity: WARNING
1518
+ - id: runsec.desktop-vsto-suite.ins-084
1519
+ metadata:
1520
+ runsec_version: v1.0
1521
+ confidence: |-
1522
+ 0.9
1523
+ exploit_scenario: |-
1524
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1525
+ fix_template: |-
1526
+ Sanitize ExcelJS rows before commit; same rules as SheetJS.
1527
+ pattern-either:
1528
+ - pattern: |-
1529
+ worksheet.addRow([user])
1530
+ - pattern-regex: 'Vulnerable:\\s*INS\\-084\\b'
1531
+ message: |-
1532
+ RunSec Detection [INS-084]: CWE-1236
1533
+ languages:
1534
+ - generic
1535
+ severity: WARNING
1536
+ - id: runsec.desktop-vsto-suite.ins-085
1537
+ metadata:
1538
+ runsec_version: v1.0
1539
+ confidence: |-
1540
+ 0.9
1541
+ exploit_scenario: |-
1542
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1543
+ fix_template: |-
1544
+ Do not pass user-controlled styleMap to mammoth; allowlist only.
1545
+ pattern-either:
1546
+ - pattern: |-
1547
+ convertToHtml({ styleMap: userMap })
1548
+ - pattern-regex: 'Vulnerable:\\s*INS\\-085\\b'
1549
+ message: |-
1550
+ RunSec Detection [INS-085]: CWE-611
1551
+ languages:
1552
+ - generic
1553
+ severity: WARNING
1554
+ - id: runsec.desktop-vsto-suite.ins-086
1555
+ metadata:
1556
+ runsec_version: v1.0
1557
+ confidence: |-
1558
+ 0.9
1559
+ exploit_scenario: |-
1560
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1561
+ fix_template: |-
1562
+ Same zip-bomb defenses as docx for pptx OOXML.
1563
+ pattern-either:
1564
+ - pattern: |-
1565
+ unzipper.Open.buffer(buf)
1566
+ - pattern-regex: 'Vulnerable:\\s*INS\\-086\\b'
1567
+ message: |-
1568
+ RunSec Detection [INS-086]: CWE-409
1569
+ languages:
1570
+ - generic
1571
+ severity: WARNING
1572
+ - id: runsec.desktop-vsto-suite.ins-087
1573
+ metadata:
1574
+ runsec_version: v1.0
1575
+ confidence: |-
1576
+ 0.9
1577
+ exploit_scenario: |-
1578
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1579
+ fix_template: |-
1580
+ Limit entries and total bytes when using fflate/unzip on xlsx.
1581
+ pattern-either:
1582
+ - pattern: |-
1583
+ unzipSync(buf)
1584
+ - pattern-regex: 'Vulnerable:\\s*INS\\-087\\b'
1585
+ message: |-
1586
+ RunSec Detection [INS-087]: CWE-409
1587
+ languages:
1588
+ - generic
1589
+ severity: WARNING
1590
+ - id: runsec.desktop-vsto-suite.ins-088
1591
+ metadata:
1592
+ runsec_version: v1.0
1593
+ confidence: |-
1594
+ 0.9
1595
+ exploit_scenario: |-
1596
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1597
+ fix_template: |-
1598
+ Treat PDF metadata as untrusted; never HTML-embed without encode.
1599
+ pattern-either:
1600
+ - pattern: |-
1601
+ metadata.info.Title в innerHTML
1602
+ - pattern-regex: 'Vulnerable:\\s*INS\\-088\\b'
1603
+ message: |-
1604
+ RunSec Detection [INS-088]: CWE-1027
1605
+ languages:
1606
+ - generic
1607
+ severity: WARNING
1608
+ - id: runsec.desktop-vsto-suite.ins-089
1609
+ metadata:
1610
+ runsec_version: v1.0
1611
+ confidence: |-
1612
+ 0.9
1613
+ exploit_scenario: |-
1614
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1615
+ fix_template: |-
1616
+ Strict allowlist for embedded image resolution in mammoth.
1617
+ pattern-either:
1618
+ - pattern: |-
1619
+ embedImage: (id) => readUserFile(id)
1620
+ - pattern-regex: 'Vulnerable:\\s*INS\\-089\\b'
1621
+ message: |-
1622
+ RunSec Detection [INS-089]: CWE-611
1623
+ languages:
1624
+ - generic
1625
+ severity: WARNING
1626
+ - id: runsec.desktop-vsto-suite.ins-090
1627
+ metadata:
1628
+ runsec_version: v1.0
1629
+ confidence: |-
1630
+ 0.9
1631
+ exploit_scenario: |-
1632
+ Атакующий внедряет формулу в CSV до экспорта в xlsx; при открытии в Excel возможна команда/внешняя ссылка (CWE-1236).
1633
+ fix_template: |-
1634
+ Apply CSV injection rules before promoting to xlsx.
1635
+ pattern-either:
1636
+ - pattern: |-
1637
+ XLSX.read CSV FSF затем writeFile xlsx
1638
+ - pattern-regex: 'Vulnerable:\\s*INS\\-090\\b'
1639
+ message: |-
1640
+ RunSec Detection [INS-090]: CWE-1236
1641
+ languages:
1642
+ - generic
1643
+ severity: WARNING
1644
+ - id: runsec.desktop-vsto-suite.ins-091
1645
+ metadata:
1646
+ runsec_version: v1.0
1647
+ confidence: |-
1648
+ 0.9
1649
+ exploit_scenario: |-
1650
+ Атакующий подсовывает извлечённый текст в innerHTML; при отсутствии DOMPurify возможен XSS (CWE-1027).
1651
+ fix_template: |-
1652
+ Never assign extracted text to innerHTML without sanitization.
1653
+ pattern-either:
1654
+ - pattern: |-
1655
+ extractor.extract(path).then(t=>div.innerHTML=t)
1656
+ - pattern-regex: 'Vulnerable:\\s*INS\\-091\\b'
1657
+ message: |-
1658
+ RunSec Detection [INS-091]: CWE-1027
1659
+ languages:
1660
+ - generic
1661
+ severity: WARNING
1662
+ - id: runsec.desktop-vsto-suite.ins-092
1663
+ metadata:
1664
+ runsec_version: v1.0
1665
+ confidence: |-
1666
+ 0.9
1667
+ exploit_scenario: |-
1668
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1669
+ fix_template: |-
1670
+ Use json_schema response_format or validate with Zod before branching logic.
1671
+ pattern-either:
1672
+ - pattern: |-
1673
+ openai.chat.completions.create({ messages }) затем JSON.parse(content)
1674
+ - pattern-regex: 'Vulnerable:\\s*INS\\-092\\b'
1675
+ message: |-
1676
+ RunSec Detection [INS-092]: CWE-1027
1677
+ languages:
1678
+ - generic
1679
+ severity: WARNING
1680
+ - id: runsec.desktop-vsto-suite.ins-093
1681
+ metadata:
1682
+ runsec_version: v1.0
1683
+ confidence: |-
1684
+ 0.9
1685
+ exploit_scenario: |-
1686
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1687
+ fix_template: |-
1688
+ Never branch security on model-supplied role strings; server-side allowlist.
1689
+ pattern-either:
1690
+ - pattern: |-
1691
+ if (msg.role === 'system') по ответу модели
1692
+ - pattern-regex: 'Vulnerable:\\s*INS\\-093\\b'
1693
+ message: |-
1694
+ RunSec Detection [INS-093]: CWE-1109
1695
+ languages:
1696
+ - generic
1697
+ severity: WARNING
1698
+ - id: runsec.desktop-vsto-suite.ins-094
1699
+ metadata:
1700
+ runsec_version: v1.0
1701
+ confidence: |-
1702
+ 0.9
1703
+ exploit_scenario: |-
1704
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1705
+ fix_template: |-
1706
+ Validate structured output; reject unknown fields; no shell exec from model text.
1707
+ pattern-either:
1708
+ - pattern: |-
1709
+ exec(JSON.parse(content).cmd)
1710
+ - pattern-regex: 'Vulnerable:\\s*INS\\-094\\b'
1711
+ message: |-
1712
+ RunSec Detection [INS-094]: CWE-1027
1713
+ languages:
1714
+ - generic
1715
+ severity: WARNING
1716
+ - id: runsec.desktop-vsto-suite.ins-095
1717
+ metadata:
1718
+ runsec_version: v1.0
1719
+ confidence: |-
1720
+ 0.9
1721
+ exploit_scenario: |-
1722
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1723
+ fix_template: |-
1724
+ Finalize streamed LLM output with schema validation.
1725
+ pattern-either:
1726
+ - pattern: |-
1727
+ on('chunk') + merge без safeParse
1728
+ - pattern-regex: 'Vulnerable:\\s*INS\\-095\\b'
1729
+ message: |-
1730
+ RunSec Detection [INS-095]: CWE-1027
1731
+ languages:
1732
+ - generic
1733
+ severity: WARNING
1734
+ - id: runsec.desktop-vsto-suite.ins-096
1735
+ metadata:
1736
+ runsec_version: v1.0
1737
+ confidence: |-
1738
+ 0.9
1739
+ exploit_scenario: |-
1740
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1741
+ fix_template: |-
1742
+ Per-tool Zod schema for JSON arguments from OpenAI.
1743
+ pattern-either:
1744
+ - pattern: |-
1745
+ JSON.parse(toolCall.function.arguments)
1746
+ - pattern-regex: 'Vulnerable:\\s*INS\\-096\\b'
1747
+ message: |-
1748
+ RunSec Detection [INS-096]: CWE-1027
1749
+ languages:
1750
+ - generic
1751
+ severity: WARNING
1752
+ - id: runsec.desktop-vsto-suite.ins-097
1753
+ metadata:
1754
+ runsec_version: v1.0
1755
+ confidence: |-
1756
+ 0.9
1757
+ exploit_scenario: |-
1758
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1759
+ fix_template: |-
1760
+ Redact system/developer prompts from electron-log; structured logging without secrets.
1761
+ pattern-either:
1762
+ - pattern: |-
1763
+ log.info('prompt', messages)
1764
+ - pattern-regex: 'Vulnerable:\\s*INS\\-097\\b'
1765
+ message: |-
1766
+ RunSec Detection [INS-097]: CWE-201
1767
+ languages:
1768
+ - generic
1769
+ severity: WARNING
1770
+ - id: runsec.desktop-vsto-suite.ins-098
1771
+ metadata:
1772
+ runsec_version: v1.0
1773
+ confidence: |-
1774
+ 0.9
1775
+ exploit_scenario: |-
1776
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1777
+ fix_template: |-
1778
+ Ban console logging of system prompts outside sealed dev diagnostics.
1779
+ pattern-either:
1780
+ - pattern: |-
1781
+ console.log(systemPrompt)
1782
+ - pattern-regex: 'Vulnerable:\\s*INS\\-098\\b'
1783
+ message: |-
1784
+ RunSec Detection [INS-098]: CWE-201
1785
+ languages:
1786
+ - generic
1787
+ severity: WARNING
1788
+ - id: runsec.desktop-vsto-suite.ins-099
1789
+ metadata:
1790
+ runsec_version: v1.0
1791
+ confidence: |-
1792
+ 0.9
1793
+ exploit_scenario: |-
1794
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1795
+ fix_template: |-
1796
+ Validate OpenAI payloads before IPC; duplicate validation in main.
1797
+ pattern-either:
1798
+ - pattern: |-
1799
+ ipcRenderer.send('ai', completion)
1800
+ - pattern-regex: 'Vulnerable:\\s*INS\\-099\\b'
1801
+ message: |-
1802
+ RunSec Detection [INS-099]: CWE-1027
1803
+ languages:
1804
+ - generic
1805
+ severity: WARNING
1806
+ - id: runsec.desktop-vsto-suite.ins-100
1807
+ metadata:
1808
+ runsec_version: v1.0
1809
+ confidence: |-
1810
+ 0.9
1811
+ exploit_scenario: |-
1812
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1813
+ fix_template: |-
1814
+ Always set nodeIntegration: false and contextIsolation: true explicitly in main.
1815
+ pattern-either:
1816
+ - pattern: |-
1817
+ new BrowserWindow({ webPreferences: { preload } })
1818
+ - pattern-regex: 'Vulnerable:\\s*INS\\-100\\b'
1819
+ message: |-
1820
+ RunSec Detection [INS-100]: CWE-94
1821
+ languages:
1822
+ - generic
1823
+ severity: WARNING
1824
+ - id: runsec.desktop-vsto-suite.ins-101
1825
+ metadata:
1826
+ runsec_version: v1.0
1827
+ confidence: |-
1828
+ 0.9
1829
+ exploit_scenario: |-
1830
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1831
+ fix_template: |-
1832
+ Explicit contextIsolation: true for every BrowserWindow.
1833
+ pattern-either:
1834
+ - pattern: |-
1835
+ webPreferences: { preload: path }
1836
+ - pattern-regex: 'Vulnerable:\\s*INS\\-101\\b'
1837
+ message: |-
1838
+ RunSec Detection [INS-101]: CWE-94
1839
+ languages:
1840
+ - generic
1841
+ severity: WARNING
1842
+ - id: runsec.desktop-vsto-suite.ins-102
1843
+ metadata:
1844
+ runsec_version: v1.0
1845
+ confidence: |-
1846
+ 0.9
1847
+ exploit_scenario: |-
1848
+ CWE-749
1849
+ fix_template: |-
1850
+ Insight/Electron
1851
+ pattern-either:
1852
+ - pattern: |-
1853
+ ipcMain.handle('api', async (_e, args) => {...})
1854
+ - pattern-regex: 'Vulnerable:\\s*INS\\-102\\b'
1855
+ message: |-
1856
+ RunSec Detection [INS-102]: event.senderFrame.url !== trusted) return error.
1857
+ languages:
1858
+ - generic
1859
+ severity: WARNING
1860
+ - id: runsec.desktop-vsto-suite.ins-103
1861
+ metadata:
1862
+ runsec_version: v1.0
1863
+ confidence: |-
1864
+ 0.9
1865
+ exploit_scenario: |-
1866
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1867
+ fix_template: |-
1868
+ Pair IPC handlers with sender frame / origin checks.
1869
+ pattern-either:
1870
+ - pattern: |-
1871
+ ipcMain.handle('x', (e, a) => e.sender)
1872
+ - pattern-regex: 'Vulnerable:\\s*INS\\-103\\b'
1873
+ message: |-
1874
+ RunSec Detection [INS-103]: CWE-749
1875
+ languages:
1876
+ - generic
1877
+ severity: WARNING
1878
+ - id: runsec.desktop-vsto-suite.ins-104
1879
+ metadata:
1880
+ runsec_version: v1.0
1881
+ confidence: |-
1882
+ 0.9
1883
+ exploit_scenario: |-
1884
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1885
+ fix_template: |-
1886
+ Never load preload from user-controlled paths; allowlist under app package.
1887
+ pattern-either:
1888
+ - pattern: |-
1889
+ preload: userConfig.preloadPath
1890
+ - pattern-regex: 'Vulnerable:\\s*INS\\-104\\b'
1891
+ message: |-
1892
+ RunSec Detection [INS-104]: CWE-94
1893
+ languages:
1894
+ - generic
1895
+ severity: WARNING
1896
+ - id: runsec.desktop-vsto-suite.ins-105
1897
+ metadata:
1898
+ runsec_version: v1.0
1899
+ confidence: |-
1900
+ 0.9
1901
+ exploit_scenario: |-
1902
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1903
+ fix_template: |-
1904
+ Keep webSecurity: true except rare dev-only exceptions.
1905
+ pattern-either:
1906
+ - pattern: |-
1907
+ webPreferences: { webSecurity: false }
1908
+ - pattern-regex: 'Vulnerable:\\s*INS\\-105\\b'
1909
+ message: |-
1910
+ RunSec Detection [INS-105]: CWE-94
1911
+ languages:
1912
+ - generic
1913
+ severity: WARNING
1914
+ - id: runsec.desktop-vsto-suite.ins-106
1915
+ metadata:
1916
+ runsec_version: v1.0
1917
+ confidence: |-
1918
+ 0.9
1919
+ exploit_scenario: |-
1920
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1921
+ fix_template: |-
1922
+ Validate URLs before openExternal from IPC payloads.
1923
+ pattern-either:
1924
+ - pattern: |-
1925
+ shell.openExternal(urlFromIpc)
1926
+ - pattern-regex: 'Vulnerable:\\s*INS\\-106\\b'
1927
+ message: |-
1928
+ RunSec Detection [INS-106]: CWE-749
1929
+ languages:
1930
+ - generic
1931
+ severity: WARNING
1932
+ - id: runsec.desktop-vsto-suite.ins-107
1933
+ metadata:
1934
+ runsec_version: v1.0
1935
+ confidence: |-
1936
+ 0.9
1937
+ exploit_scenario: |-
1938
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1939
+ fix_template: |-
1940
+ Immutable hardened webPreferences; ignore user overrides for security keys.
1941
+ pattern-either:
1942
+ - pattern: |-
1943
+ webPreferences: { ...userPrefs }
1944
+ - pattern-regex: 'Vulnerable:\\s*INS\\-107\\b'
1945
+ message: |-
1946
+ RunSec Detection [INS-107]: CWE-94
1947
+ languages:
1948
+ - generic
1949
+ severity: WARNING
1950
+ - id: runsec.desktop-vsto-suite.ins-108
1951
+ metadata:
1952
+ runsec_version: v1.0
1953
+ confidence: |-
1954
+ 0.9
1955
+ exploit_scenario: |-
1956
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1957
+ fix_template: |-
1958
+ Default deny; explicit allowlist for media/geolocation.
1959
+ pattern-either:
1960
+ - pattern: |-
1961
+ cb(true)
1962
+ - pattern-regex: 'Vulnerable:\\s*INS\\-108\\b'
1963
+ message: |-
1964
+ RunSec Detection [INS-108]: CWE-749
1965
+ languages:
1966
+ - generic
1967
+ severity: WARNING
1968
+ - id: runsec.desktop-vsto-suite.ins-109
1969
+ metadata:
1970
+ runsec_version: v1.0
1971
+ confidence: |-
1972
+ 0.9
1973
+ exploit_scenario: |-
1974
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1975
+ fix_template: |-
1976
+ Validate file paths in custom protocols; prevent traversal.
1977
+ pattern-either:
1978
+ - pattern: |-
1979
+ callback({ path: req.url })
1980
+ - pattern-regex: 'Vulnerable:\\s*INS\\-109\\b'
1981
+ message: |-
1982
+ RunSec Detection [INS-109]: CWE-22
1983
+ languages:
1984
+ - generic
1985
+ severity: WARNING
1986
+ - id: runsec.desktop-vsto-suite.ins-110
1987
+ metadata:
1988
+ runsec_version: v1.0
1989
+ confidence: |-
1990
+ 0.9
1991
+ exploit_scenario: |-
1992
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
1993
+ fix_template: |-
1994
+ Gate screen capture behind explicit user consent.
1995
+ pattern-either:
1996
+ - pattern: |-
1997
+ desktopCapturer.getSources
1998
+ - pattern-regex: 'Vulnerable:\\s*INS\\-110\\b'
1999
+ message: |-
2000
+ RunSec Detection [INS-110]: CWE-200
2001
+ languages:
2002
+ - generic
2003
+ severity: WARNING
2004
+ - id: runsec.desktop-vsto-suite.ins-111
2005
+ metadata:
2006
+ runsec_version: v1.0
2007
+ confidence: |-
2008
+ 0.9
2009
+ exploit_scenario: |-
2010
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2011
+ fix_template: |-
2012
+ Sanitize CSV exports from xlsx before messaging.
2013
+ pattern-either:
2014
+ - pattern: |-
2015
+ XLSX.utils.sheet_to_csv(sheet) в body
2016
+ - pattern-regex: 'Vulnerable:\\s*INS\\-111\\b'
2017
+ message: |-
2018
+ RunSec Detection [INS-111]: CWE-1236
2019
+ languages:
2020
+ - generic
2021
+ severity: WARNING
2022
+ - id: runsec.desktop-vsto-suite.ins-112
2023
+ metadata:
2024
+ runsec_version: v1.0
2025
+ confidence: |-
2026
+ 0.9
2027
+ exploit_scenario: |-
2028
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2029
+ fix_template: |-
2030
+ Sanitize mammoth HTML before DOM insertion.
2031
+ pattern-either:
2032
+ - pattern: |-
2033
+ innerHTML = result.value
2034
+ - pattern-regex: 'Vulnerable:\\s*INS\\-112\\b'
2035
+ message: |-
2036
+ RunSec Detection [INS-112]: CWE-1027
2037
+ languages:
2038
+ - generic
2039
+ severity: WARNING
2040
+ - id: runsec.desktop-vsto-suite.ins-113
2041
+ metadata:
2042
+ runsec_version: v1.0
2043
+ confidence: |-
2044
+ 0.9
2045
+ exploit_scenario: |-
2046
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2047
+ fix_template: |-
2048
+ Parameterize DB; treat PDF text as untrusted.
2049
+ pattern-either:
2050
+ - pattern: |-
2051
+ page.getTextContent() → db.query(\...\${t}\)
2052
+ - pattern-regex: 'Vulnerable:\\s*INS\\-113\\b'
2053
+ message: |-
2054
+ RunSec Detection [INS-113]: CWE-89
2055
+ languages:
2056
+ - generic
2057
+ severity: WARNING
2058
+ - id: runsec.desktop-vsto-suite.ins-114
2059
+ metadata:
2060
+ runsec_version: v1.0
2061
+ confidence: |-
2062
+ 0.9
2063
+ exploit_scenario: |-
2064
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2065
+ fix_template: |-
2066
+ Escape template fields for docx generation.
2067
+ pattern-either:
2068
+ - pattern: |-
2069
+ doc.setData({ user: raw })
2070
+ - pattern-regex: 'Vulnerable:\\s*INS\\-114\\b'
2071
+ message: |-
2072
+ RunSec Detection [INS-114]: CWE-1236
2073
+ languages:
2074
+ - generic
2075
+ severity: WARNING
2076
+ - id: runsec.desktop-vsto-suite.ins-115
2077
+ metadata:
2078
+ runsec_version: v1.0
2079
+ confidence: |-
2080
+ 0.9
2081
+ exploit_scenario: |-
2082
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2083
+ fix_template: |-
2084
+ Use strict JSON schema where API allows.
2085
+ pattern-either:
2086
+ - pattern: |-
2087
+ response_format без strict
2088
+ - pattern-regex: 'Vulnerable:\\s*INS\\-115\\b'
2089
+ message: |-
2090
+ RunSec Detection [INS-115]: CWE-1027
2091
+ languages:
2092
+ - generic
2093
+ severity: WARNING
2094
+ - id: runsec.desktop-vsto-suite.ins-116
2095
+ metadata:
2096
+ runsec_version: v1.0
2097
+ confidence: |-
2098
+ 0.9
2099
+ exploit_scenario: |-
2100
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2101
+ fix_template: |-
2102
+ Redact OpenAI message bodies in logs.
2103
+ pattern-either:
2104
+ - pattern: |-
2105
+ logger.info(messages)
2106
+ - pattern-regex: 'Vulnerable:\\s*INS\\-116\\b'
2107
+ message: |-
2108
+ RunSec Detection [INS-116]: CWE-201
2109
+ languages:
2110
+ - generic
2111
+ severity: WARNING
2112
+ - id: runsec.desktop-vsto-suite.ins-117
2113
+ metadata:
2114
+ runsec_version: v1.0
2115
+ confidence: |-
2116
+ 0.9
2117
+ exploit_scenario: |-
2118
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2119
+ fix_template: |-
2120
+ Validate IPC args in preload bridge and main.
2121
+ pattern-either:
2122
+ - pattern: |-
2123
+ exposeInMainWorld('api', { run: (x)=>ipc.invoke('x',x)})
2124
+ - pattern-regex: 'Vulnerable:\\s*INS\\-117\\b'
2125
+ message: |-
2126
+ RunSec Detection [INS-117]: CWE-749
2127
+ languages:
2128
+ - generic
2129
+ severity: WARNING
2130
+ - id: runsec.desktop-vsto-suite.ins-118
2131
+ metadata:
2132
+ runsec_version: v1.0
2133
+ confidence: |-
2134
+ 0.9
2135
+ exploit_scenario: |-
2136
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2137
+ fix_template: |-
2138
+ Prefer handle with sender validation over legacy on.
2139
+ pattern-either:
2140
+ - pattern: |-
2141
+ ipcMain.on('evt', ...)
2142
+ - pattern-regex: 'Vulnerable:\\s*INS\\-118\\b'
2143
+ message: |-
2144
+ RunSec Detection [INS-118]: CWE-749
2145
+ languages:
2146
+ - generic
2147
+ severity: WARNING
2148
+ - id: runsec.desktop-vsto-suite.ins-119
2149
+ metadata:
2150
+ runsec_version: v1.0
2151
+ confidence: |-
2152
+ 0.9
2153
+ exploit_scenario: |-
2154
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2155
+ fix_template: |-
2156
+ Block unbounded base64 PDF from user input.
2157
+ pattern-either:
2158
+ - pattern: |-
2159
+ getDocument({ data: atob(userB64) })
2160
+ - pattern-regex: 'Vulnerable:\\s*INS\\-119\\b'
2161
+ message: |-
2162
+ RunSec Detection [INS-119]: CWE-409
2163
+ languages:
2164
+ - generic
2165
+ severity: WARNING
2166
+ - id: runsec.desktop-vsto-suite.ins-120
2167
+ metadata:
2168
+ runsec_version: v1.0
2169
+ confidence: |-
2170
+ 0.9
2171
+ exploit_scenario: |-
2172
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2173
+ fix_template: |-
2174
+ Restrict UNC/network paths for extraction.
2175
+ pattern-either:
2176
+ - pattern: |-
2177
+ extractor.extract('\\\\srv\\share\\doc.doc')
2178
+ - pattern-regex: 'Vulnerable:\\s*INS\\-120\\b'
2179
+ message: |-
2180
+ RunSec Detection [INS-120]: CWE-22
2181
+ languages:
2182
+ - generic
2183
+ severity: WARNING
2184
+ - id: runsec.desktop-vsto-suite.ins-121
2185
+ metadata:
2186
+ runsec_version: v1.0
2187
+ confidence: |-
2188
+ 0.9
2189
+ exploit_scenario: |-
2190
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2191
+ fix_template: |-
2192
+ Do not apply user-controlled styles that embed formulas.
2193
+ pattern-either:
2194
+ - pattern: |-
2195
+ cell.s = userStyle
2196
+ - pattern-regex: 'Vulnerable:\\s*INS\\-121\\b'
2197
+ message: |-
2198
+ RunSec Detection [INS-121]: CWE-1236
2199
+ languages:
2200
+ - generic
2201
+ severity: WARNING
2202
+ - id: runsec.desktop-vsto-suite.ins-122
2203
+ metadata:
2204
+ runsec_version: v1.0
2205
+ confidence: |-
2206
+ 0.9
2207
+ exploit_scenario: |-
2208
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2209
+ fix_template: |-
2210
+ Sanitize markdown output from mammoth.
2211
+ pattern-either:
2212
+ - pattern: |-
2213
+ innerHTML = md.render(mdText)
2214
+ - pattern-regex: 'Vulnerable:\\s*INS\\-122\\b'
2215
+ message: |-
2216
+ RunSec Detection [INS-122]: CWE-1027
2217
+ languages:
2218
+ - generic
2219
+ severity: WARNING
2220
+ - id: runsec.desktop-vsto-suite.ins-123
2221
+ metadata:
2222
+ runsec_version: v1.0
2223
+ confidence: |-
2224
+ 0.9
2225
+ exploit_scenario: |-
2226
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2227
+ fix_template: |-
2228
+ Validate hyperlinks in generated docx.
2229
+ pattern-either:
2230
+ - pattern: |-
2231
+ new Hyperlink(userUrl)
2232
+ - pattern-regex: 'Vulnerable:\\s*INS\\-123\\b'
2233
+ message: |-
2234
+ RunSec Detection [INS-123]: CWE-20
2235
+ languages:
2236
+ - generic
2237
+ severity: WARNING
2238
+ - id: runsec.desktop-vsto-suite.ins-124
2239
+ metadata:
2240
+ runsec_version: v1.0
2241
+ confidence: |-
2242
+ 0.9
2243
+ exploit_scenario: |-
2244
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2245
+ fix_template: |-
2246
+ Limit parallel tool execution from model.
2247
+ pattern-either:
2248
+ - pattern: |-
2249
+ parallel_tool_calls: true
2250
+ - pattern-regex: 'Vulnerable:\\s*INS\\-124\\b'
2251
+ message: |-
2252
+ RunSec Detection [INS-124]: CWE-1027
2253
+ languages:
2254
+ - generic
2255
+ severity: WARNING
2256
+ - id: runsec.desktop-vsto-suite.ins-125
2257
+ metadata:
2258
+ runsec_version: v1.0
2259
+ confidence: |-
2260
+ 0.9
2261
+ exploit_scenario: |-
2262
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2263
+ fix_template: |-
2264
+ Encrypt cached LLM responses; no plaintext PII.
2265
+ pattern-either:
2266
+ - pattern: |-
2267
+ fs.writeFileSync(cachePath, content)
2268
+ - pattern-regex: 'Vulnerable:\\s*INS\\-125\\b'
2269
+ message: |-
2270
+ RunSec Detection [INS-125]: CWE-311
2271
+ languages:
2272
+ - generic
2273
+ severity: WARNING
2274
+ - id: runsec.desktop-vsto-suite.ins-126
2275
+ metadata:
2276
+ runsec_version: v1.0
2277
+ confidence: |-
2278
+ 0.9
2279
+ exploit_scenario: |-
2280
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2281
+ fix_template: |-
2282
+ Validate paths for nativeImage loads.
2283
+ pattern-either:
2284
+ - pattern: |-
2285
+ nativeImage.createFromPath(userPath)
2286
+ - pattern-regex: 'Vulnerable:\\s*INS\\-126\\b'
2287
+ message: |-
2288
+ RunSec Detection [INS-126]: CWE-22
2289
+ languages:
2290
+ - generic
2291
+ severity: WARNING
2292
+ - id: runsec.desktop-vsto-suite.ins-127
2293
+ metadata:
2294
+ runsec_version: v1.0
2295
+ confidence: |-
2296
+ 0.9
2297
+ exploit_scenario: |-
2298
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2299
+ fix_template: |-
2300
+ Validate URLs in menu handlers.
2301
+ pattern-either:
2302
+ - pattern: |-
2303
+ shell.openExternal(userUrl) в menu
2304
+ - pattern-regex: 'Vulnerable:\\s*INS\\-127\\b'
2305
+ message: |-
2306
+ RunSec Detection [INS-127]: CWE-749
2307
+ languages:
2308
+ - generic
2309
+ severity: WARNING
2310
+ - id: runsec.desktop-vsto-suite.ins-128
2311
+ metadata:
2312
+ runsec_version: v1.0
2313
+ confidence: |-
2314
+ 0.9
2315
+ exploit_scenario: |-
2316
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2317
+ fix_template: |-
2318
+ Sanitize shared strings when merging workbooks.
2319
+ pattern-either:
2320
+ - pattern: |-
2321
+ Уязвимость при merge
2322
+ - pattern-regex: 'Vulnerable:\\s*INS\\-128\\b'
2323
+ message: |-
2324
+ RunSec Detection [INS-128]: CWE-1236
2325
+ languages:
2326
+ - generic
2327
+ severity: WARNING
2328
+ - id: runsec.desktop-vsto-suite.ins-129
2329
+ metadata:
2330
+ runsec_version: v1.0
2331
+ confidence: |-
2332
+ 0.9
2333
+ exploit_scenario: |-
2334
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2335
+ fix_template: |-
2336
+ Sanitize user text in pptxgenjs slides.
2337
+ pattern-either:
2338
+ - pattern: |-
2339
+ slide.addText(user)
2340
+ - pattern-regex: 'Vulnerable:\\s*INS\\-129\\b'
2341
+ message: |-
2342
+ RunSec Detection [INS-129]: CWE-1236
2343
+ languages:
2344
+ - generic
2345
+ severity: WARNING
2346
+ - id: runsec.desktop-vsto-suite.ins-130
2347
+ metadata:
2348
+ runsec_version: v1.0
2349
+ confidence: |-
2350
+ 0.9
2351
+ exploit_scenario: |-
2352
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2353
+ fix_template: |-
2354
+ Restrict embedded fonts to trusted sources.
2355
+ pattern-either:
2356
+ - pattern: |-
2357
+ embedFont(fs.readFileSync(userFont))
2358
+ - pattern-regex: 'Vulnerable:\\s*INS\\-130\\b'
2359
+ message: |-
2360
+ RunSec Detection [INS-130]: CWE-22
2361
+ languages:
2362
+ - generic
2363
+ severity: WARNING
2364
+ - id: runsec.desktop-vsto-suite.ins-131
2365
+ metadata:
2366
+ runsec_version: v1.0
2367
+ confidence: |-
2368
+ 0.9
2369
+ exploit_scenario: |-
2370
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2371
+ fix_template: |-
2372
+ Bound sampling params for production AI paths.
2373
+ pattern-either:
2374
+ - pattern: |-
2375
+ temperature: 2
2376
+ - pattern-regex: 'Vulnerable:\\s*INS\\-131\\b'
2377
+ message: |-
2378
+ RunSec Detection [INS-131]: CWE-1027
2379
+ languages:
2380
+ - generic
2381
+ severity: WARNING
2382
+ - id: runsec.desktop-vsto-suite.ins-132
2383
+ metadata:
2384
+ runsec_version: v1.0
2385
+ confidence: |-
2386
+ 0.9
2387
+ exploit_scenario: |-
2388
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2389
+ fix_template: |-
2390
+ Use seed for reproducibility when policy requires.
2391
+ pattern-either:
2392
+ - pattern: |-
2393
+ create({...})
2394
+ - pattern-regex: 'Vulnerable:\\s*INS\\-132\\b'
2395
+ message: |-
2396
+ RunSec Detection [INS-132]: CWE-1109
2397
+ languages:
2398
+ - generic
2399
+ severity: WARNING
2400
+ - id: runsec.desktop-vsto-suite.ins-133
2401
+ metadata:
2402
+ runsec_version: v1.0
2403
+ confidence: |-
2404
+ 0.9
2405
+ exploit_scenario: |-
2406
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2407
+ fix_template: |-
2408
+ Gate system events on IPC.
2409
+ pattern-either:
2410
+ - pattern: |-
2411
+ powerMonitor.on('suspend', ()=>ipc.send(...))
2412
+ - pattern-regex: 'Vulnerable:\\s*INS\\-133\\b'
2413
+ message: |-
2414
+ RunSec Detection [INS-133]: CWE-200
2415
+ languages:
2416
+ - generic
2417
+ severity: WARNING
2418
+ - id: runsec.desktop-vsto-suite.ins-134
2419
+ metadata:
2420
+ runsec_version: v1.0
2421
+ confidence: |-
2422
+ 0.9
2423
+ exploit_scenario: |-
2424
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2425
+ fix_template: |-
2426
+ Mediate clipboard IPC in main.
2427
+ pattern-either:
2428
+ - pattern: |-
2429
+ clipboard.writeText(user)
2430
+ - pattern-regex: 'Vulnerable:\\s*INS\\-134\\b'
2431
+ message: |-
2432
+ RunSec Detection [INS-134]: CWE-749
2433
+ languages:
2434
+ - generic
2435
+ severity: WARNING
2436
+ - id: runsec.desktop-vsto-suite.ins-135
2437
+ metadata:
2438
+ runsec_version: v1.0
2439
+ confidence: |-
2440
+ 0.9
2441
+ exploit_scenario: |-
2442
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2443
+ fix_template: |-
2444
+ Sanitize cheerio HTML from mammoth.
2445
+ pattern-either:
2446
+ - pattern: |-
2447
+ cheerio.load(html)
2448
+ - pattern-regex: 'Vulnerable:\\s*INS\\-135\\b'
2449
+ message: |-
2450
+ RunSec Detection [INS-135]: CWE-1027
2451
+ languages:
2452
+ - generic
2453
+ severity: WARNING
2454
+ - id: runsec.desktop-vsto-suite.ins-136
2455
+ metadata:
2456
+ runsec_version: v1.0
2457
+ confidence: |-
2458
+ 0.9
2459
+ exploit_scenario: |-
2460
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2461
+ fix_template: |-
2462
+ Rate-limit xlsx password attempts.
2463
+ pattern-either:
2464
+ - pattern: |-
2465
+ XLSX.read(data, {password: guess})
2466
+ - pattern-regex: 'Vulnerable:\\s*INS\\-136\\b'
2467
+ message: |-
2468
+ RunSec Detection [INS-136]: CWE-307
2469
+ languages:
2470
+ - generic
2471
+ severity: WARNING
2472
+ - id: runsec.desktop-vsto-suite.ins-137
2473
+ metadata:
2474
+ runsec_version: v1.0
2475
+ confidence: |-
2476
+ 0.9
2477
+ exploit_scenario: |-
2478
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2479
+ fix_template: |-
2480
+ Do not log PDF operator lists in production.
2481
+ pattern-either:
2482
+ - pattern: |-
2483
+ console.log(opList)
2484
+ - pattern-regex: 'Vulnerable:\\s*INS\\-137\\b'
2485
+ message: |-
2486
+ RunSec Detection [INS-137]: CWE-201
2487
+ languages:
2488
+ - generic
2489
+ severity: WARNING
2490
+ - id: runsec.desktop-vsto-suite.ins-138
2491
+ metadata:
2492
+ runsec_version: v1.0
2493
+ confidence: |-
2494
+ 0.9
2495
+ exploit_scenario: |-
2496
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2497
+ fix_template: |-
2498
+ Minimize OpenAI request metadata.
2499
+ pattern-either:
2500
+ - pattern: |-
2501
+ metadata: { email: user.email }
2502
+ - pattern-regex: 'Vulnerable:\\s*INS\\-138\\b'
2503
+ message: |-
2504
+ RunSec Detection [INS-138]: CWE-201
2505
+ languages:
2506
+ - generic
2507
+ severity: WARNING
2508
+ - id: runsec.desktop-vsto-suite.ins-139
2509
+ metadata:
2510
+ runsec_version: v1.0
2511
+ confidence: |-
2512
+ 0.9
2513
+ exploit_scenario: |-
2514
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2515
+ fix_template: |-
2516
+ Validate focus before global shortcuts.
2517
+ pattern-either:
2518
+ - pattern: |-
2519
+ globalShortcut.register
2520
+ - pattern-regex: 'Vulnerable:\\s*INS\\-139\\b'
2521
+ message: |-
2522
+ RunSec Detection [INS-139]: CWE-749
2523
+ languages:
2524
+ - generic
2525
+ severity: WARNING
2526
+ - id: runsec.desktop-vsto-suite.ins-140
2527
+ metadata:
2528
+ runsec_version: v1.0
2529
+ confidence: |-
2530
+ 0.9
2531
+ exploit_scenario: |-
2532
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2533
+ fix_template: |-
2534
+ Validate save dialog paths before opening.
2535
+ pattern-either:
2536
+ - pattern: |-
2537
+ shell.openExternal(savedPath)
2538
+ - pattern-regex: 'Vulnerable:\\s*INS\\-140\\b'
2539
+ message: |-
2540
+ RunSec Detection [INS-140]: CWE-749
2541
+ languages:
2542
+ - generic
2543
+ severity: WARNING
2544
+ - id: runsec.desktop-vsto-suite.ins-141
2545
+ metadata:
2546
+ runsec_version: v1.0
2547
+ confidence: |-
2548
+ 0.9
2549
+ exploit_scenario: |-
2550
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2551
+ fix_template: |-
2552
+ Handle CSV delimiter injection in xlsx roundtrip.
2553
+ pattern-either:
2554
+ - pattern: |-
2555
+ sep=; in cell
2556
+ - pattern-regex: 'Vulnerable:\\s*INS\\-141\\b'
2557
+ message: |-
2558
+ RunSec Detection [INS-141]: CWE-1236
2559
+ languages:
2560
+ - generic
2561
+ severity: WARNING
2562
+ - id: runsec.desktop-vsto-suite.ins-142
2563
+ metadata:
2564
+ runsec_version: v1.0
2565
+ confidence: |-
2566
+ 0.9
2567
+ exploit_scenario: |-
2568
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2569
+ fix_template: |-
2570
+ Safe XML/HTML for headers/footers.
2571
+ pattern-either:
2572
+ - pattern: |-
2573
+ header.addHtml(user)
2574
+ - pattern-regex: 'Vulnerable:\\s*INS\\-142\\b'
2575
+ message: |-
2576
+ RunSec Detection [INS-142]: CWE-611
2577
+ languages:
2578
+ - generic
2579
+ severity: WARNING
2580
+ - id: runsec.desktop-vsto-suite.ins-143
2581
+ metadata:
2582
+ runsec_version: v1.0
2583
+ confidence: |-
2584
+ 0.9
2585
+ exploit_scenario: |-
2586
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2587
+ fix_template: |-
2588
+ Treat PDF annotations as untrusted.
2589
+ pattern-either:
2590
+ - pattern: |-
2591
+ annotation без validate
2592
+ - pattern-regex: 'Vulnerable:\\s*INS\\-143\\b'
2593
+ message: |-
2594
+ RunSec Detection [INS-143]: CWE-1027
2595
+ languages:
2596
+ - generic
2597
+ severity: WARNING
2598
+ - id: runsec.desktop-vsto-suite.ins-144
2599
+ metadata:
2600
+ runsec_version: v1.0
2601
+ confidence: |-
2602
+ 0.9
2603
+ exploit_scenario: |-
2604
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2605
+ fix_template: |-
2606
+ Test tools + JSON schema together.
2607
+ pattern-either:
2608
+ - pattern: |-
2609
+ mixed
2610
+ - pattern-regex: 'Vulnerable:\\s*INS\\-144\\b'
2611
+ message: |-
2612
+ RunSec Detection [INS-144]: CWE-1109
2613
+ languages:
2614
+ - generic
2615
+ severity: WARNING
2616
+ - id: runsec.desktop-vsto-suite.ins-145
2617
+ metadata:
2618
+ runsec_version: v1.0
2619
+ confidence: |-
2620
+ 0.9
2621
+ exploit_scenario: |-
2622
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2623
+ fix_template: |-
2624
+ Set full webPreferences on BrowserView.
2625
+ pattern-either:
2626
+ - pattern: |-
2627
+ new BrowserView()
2628
+ - pattern-regex: 'Vulnerable:\\s*INS\\-145\\b'
2629
+ message: |-
2630
+ RunSec Detection [INS-145]: CWE-94
2631
+ languages:
2632
+ - generic
2633
+ severity: WARNING
2634
+ - id: runsec.desktop-vsto-suite.ins-146
2635
+ metadata:
2636
+ runsec_version: v1.0
2637
+ confidence: |-
2638
+ 0.9
2639
+ exploit_scenario: |-
2640
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2641
+ fix_template: |-
2642
+ Validate utility process arguments.
2643
+ pattern-either:
2644
+ - pattern: |-
2645
+ utilityProcess.fork(path, userArgv)
2646
+ - pattern-regex: 'Vulnerable:\\s*INS\\-146\\b'
2647
+ message: |-
2648
+ RunSec Detection [INS-146]: CWE-749
2649
+ languages:
2650
+ - generic
2651
+ severity: WARNING
2652
+ - id: runsec.desktop-vsto-suite.ins-147
2653
+ metadata:
2654
+ runsec_version: v1.0
2655
+ confidence: |-
2656
+ 0.9
2657
+ exploit_scenario: |-
2658
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2659
+ fix_template: |-
2660
+ Combine mammoth options with size caps.
2661
+ pattern-either:
2662
+ - pattern: |-
2663
+ ignoreEmptyParagraphs: false
2664
+ - pattern-regex: 'Vulnerable:\\s*INS\\-147\\b'
2665
+ message: |-
2666
+ RunSec Detection [INS-147]: CWE-409
2667
+ languages:
2668
+ - generic
2669
+ severity: WARNING
2670
+ - id: runsec.desktop-vsto-suite.ins-148
2671
+ metadata:
2672
+ runsec_version: v1.0
2673
+ confidence: |-
2674
+ 0.9
2675
+ exploit_scenario: |-
2676
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2677
+ fix_template: |-
2678
+ Do not use user input as defval in sheet_to_json.
2679
+ pattern-either:
2680
+ - pattern: |-
2681
+ defval: userDef
2682
+ - pattern-regex: 'Vulnerable:\\s*INS\\-148\\b'
2683
+ message: |-
2684
+ RunSec Detection [INS-148]: CWE-1236
2685
+ languages:
2686
+ - generic
2687
+ severity: WARNING
2688
+ - id: runsec.desktop-vsto-suite.ins-149
2689
+ metadata:
2690
+ runsec_version: v1.0
2691
+ confidence: |-
2692
+ 0.9
2693
+ exploit_scenario: |-
2694
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2695
+ fix_template: |-
2696
+ Bound max_tokens for interactive flows.
2697
+ pattern-either:
2698
+ - pattern: |-
2699
+ max_tokens: 65536
2700
+ - pattern-regex: 'Vulnerable:\\s*INS\\-149\\b'
2701
+ message: |-
2702
+ RunSec Detection [INS-149]: CWE-409
2703
+ languages:
2704
+ - generic
2705
+ severity: WARNING
2706
+ - id: runsec.desktop-vsto-suite.ins-150
2707
+ metadata:
2708
+ runsec_version: v1.0
2709
+ confidence: |-
2710
+ 0.9
2711
+ exploit_scenario: |-
2712
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2713
+ fix_template: |-
2714
+ No plaintext fallback when safeStorage unavailable.
2715
+ pattern-either:
2716
+ - pattern: |-
2717
+ safeStorage unavailable → plaintext
2718
+ - pattern-regex: 'Vulnerable:\\s*INS\\-150\\b'
2719
+ message: |-
2720
+ RunSec Detection [INS-150]: CWE-312
2721
+ languages:
2722
+ - generic
2723
+ severity: WARNING
2724
+ - id: runsec.desktop-vsto-suite.ins-151
2725
+ metadata:
2726
+ runsec_version: v1.0
2727
+ confidence: |-
2728
+ 0.9
2729
+ exploit_scenario: |-
2730
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2731
+ fix_template: |-
2732
+ Run npm audit in CI for Insight stack.
2733
+ pattern-either:
2734
+ - pattern: |-
2735
+ # skip npm audit
2736
+ - pattern-regex: 'Vulnerable:\\s*INS\\-151\\b'
2737
+ message: |-
2738
+ RunSec Detection [INS-151]: CWE-1104
2739
+ languages:
2740
+ - generic
2741
+ severity: WARNING
2742
+ - id: runsec.desktop-vsto-suite.ins-152
2743
+ metadata:
2744
+ runsec_version: v1.0
2745
+ confidence: |-
2746
+ 0.9
2747
+ exploit_scenario: |-
2748
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
2749
+ fix_template: |-
2750
+ Ban @electron/remote; use contextBridge.
2751
+ pattern-either:
2752
+ - pattern: |-
2753
+ require('@electron/remote')
2754
+ - pattern-regex: 'Vulnerable:\\s*INS\\-152\\b'
2755
+ message: |-
2756
+ RunSec Detection [INS-152]: CWE-94
2757
+ languages:
2758
+ - generic
2759
+ severity: WARNING