getdoorman 1.0.6 → 1.0.7

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.
@@ -42,7 +42,7 @@ const rules = [
42
42
  {
43
43
  id: 'SEC-INJ-001',
44
44
  category: 'security',
45
- severity: 'critical',
45
+ severity: 'high',
46
46
  confidence: 'likely',
47
47
  title: 'SQL Injection via String Concatenation',
48
48
  description:
@@ -82,7 +82,7 @@ const rules = [
82
82
  {
83
83
  id: 'SEC-INJ-002',
84
84
  category: 'security',
85
- severity: 'critical',
85
+ severity: 'high',
86
86
  confidence: 'likely',
87
87
  title: 'SQL Injection via ORM Raw Queries',
88
88
  description:
@@ -108,7 +108,7 @@ const rules = [
108
108
  {
109
109
  id: 'SEC-INJ-003',
110
110
  category: 'security',
111
- severity: 'critical',
111
+ severity: 'high',
112
112
  confidence: 'likely',
113
113
  title: 'NoSQL Injection via MongoDB',
114
114
  description:
@@ -138,7 +138,7 @@ const rules = [
138
138
  {
139
139
  id: 'SEC-INJ-004',
140
140
  category: 'security',
141
- severity: 'critical',
141
+ severity: 'high',
142
142
  confidence: 'likely',
143
143
  title: 'Command Injection via exec',
144
144
  description:
@@ -169,7 +169,7 @@ const rules = [
169
169
  {
170
170
  id: 'SEC-INJ-005',
171
171
  category: 'security',
172
- severity: 'critical',
172
+ severity: 'high',
173
173
  confidence: 'likely',
174
174
  title: 'Command Injection via Shell Spawn',
175
175
  description:
@@ -288,7 +288,7 @@ const rules = [
288
288
  {
289
289
  id: 'SEC-INJ-008',
290
290
  category: 'security',
291
- severity: 'critical',
291
+ severity: 'high',
292
292
  confidence: 'likely',
293
293
  title: 'Server-Side Template Injection (SSTI)',
294
294
  description:
@@ -520,7 +520,7 @@ const rules = [
520
520
  {
521
521
  id: 'SEC-INJ-015',
522
522
  category: 'security',
523
- severity: 'critical',
523
+ severity: 'high',
524
524
  confidence: 'likely',
525
525
  title: 'XML External Entity (XXE) Injection',
526
526
  description:
@@ -727,7 +727,7 @@ const rules = [
727
727
  {
728
728
  id: 'SEC-INJ-019',
729
729
  category: 'security',
730
- severity: 'critical',
730
+ severity: 'high',
731
731
  confidence: 'likely',
732
732
  title: 'Prototype Pollution',
733
733
  description:
@@ -757,7 +757,7 @@ const rules = [
757
757
  {
758
758
  id: 'SEC-INJ-020',
759
759
  category: 'security',
760
- severity: 'critical',
760
+ severity: 'high',
761
761
  confidence: 'likely',
762
762
  title: 'Path Traversal',
763
763
  description:
@@ -797,7 +797,7 @@ const rules = [
797
797
  {
798
798
  id: 'SEC-INJ-021',
799
799
  category: 'security',
800
- severity: 'critical',
800
+ severity: 'high',
801
801
  confidence: 'likely',
802
802
  title: 'SSRF: fetch/axios called with user-controlled URL',
803
803
  description: 'Making HTTP requests to URLs derived from user input enables Server-Side Request Forgery (SSRF), allowing attackers to probe internal services, cloud metadata endpoints, or exfiltrate data.',
@@ -819,7 +819,7 @@ const rules = [
819
819
  {
820
820
  id: 'SEC-INJ-022',
821
821
  category: 'security',
822
- severity: 'critical',
822
+ severity: 'high',
823
823
  confidence: 'likely',
824
824
  title: 'SSRF: http.request with user-controlled host option',
825
825
  description: 'Node.js http.request/https.request called with options derived from user input allows SSRF attacks targeting internal services.',
@@ -927,7 +927,7 @@ const rules = [
927
927
  {
928
928
  id: 'SEC-INJ-026',
929
929
  category: 'security',
930
- severity: 'critical',
930
+ severity: 'high',
931
931
  confidence: 'likely',
932
932
  title: 'SSTI: EJS template rendered with user-controlled template string',
933
933
  description: 'Passing user input as the template string to ejs.render() allows arbitrary JavaScript execution on the server.',
@@ -949,7 +949,7 @@ const rules = [
949
949
  {
950
950
  id: 'SEC-INJ-027',
951
951
  category: 'security',
952
- severity: 'critical',
952
+ severity: 'high',
953
953
  confidence: 'likely',
954
954
  title: 'SSTI: Pug template compiled from user-controlled input',
955
955
  description: 'pug.compile() or pug.render() with user-supplied template strings allows arbitrary code execution.',
@@ -971,7 +971,7 @@ const rules = [
971
971
  {
972
972
  id: 'SEC-INJ-028',
973
973
  category: 'security',
974
- severity: 'critical',
974
+ severity: 'high',
975
975
  confidence: 'likely',
976
976
  title: 'SSTI: Handlebars template compiled from user-controlled input',
977
977
  description: 'Handlebars.compile() called with user input allows template injection leading to remote code execution.',
@@ -1180,7 +1180,7 @@ const rules = [
1180
1180
  {
1181
1181
  id: 'SEC-INJ-036',
1182
1182
  category: 'security',
1183
- severity: 'critical',
1183
+ severity: 'high',
1184
1184
  confidence: 'likely',
1185
1185
  title: 'LDAP Injection via unsanitized user input in LDAP query',
1186
1186
  description: 'Building LDAP filter strings with user input without escaping special characters allows LDAP injection attacks.',
@@ -1202,7 +1202,7 @@ const rules = [
1202
1202
  {
1203
1203
  id: 'SEC-INJ-037',
1204
1204
  category: 'security',
1205
- severity: 'critical',
1205
+ severity: 'high',
1206
1206
  confidence: 'likely',
1207
1207
  title: 'eval() called with user-controlled input — arbitrary code execution',
1208
1208
  description: 'eval() with any user-supplied string allows remote code execution. This is one of the most dangerous patterns in JavaScript.',
@@ -1291,7 +1291,7 @@ export default rules;
1291
1291
 
1292
1292
  // SEC-INJ-041: SQL injection via template literal in raw query
1293
1293
  rules.push({
1294
- id: 'SEC-INJ-041', category: 'security', severity: 'critical', confidence: 'likely',
1294
+ id: 'SEC-INJ-041', category: 'security', severity: 'high', confidence: 'likely',
1295
1295
  title: 'SQL Injection via template literal in query string',
1296
1296
  check({ files }) {
1297
1297
  const findings = [];
@@ -1429,7 +1429,7 @@ rules.push({
1429
1429
 
1430
1430
  // SEC-INJ-048: Unsafe shell execution with variables
1431
1431
  rules.push({
1432
- id: 'SEC-INJ-048', category: 'security', severity: 'critical', confidence: 'likely',
1432
+ id: 'SEC-INJ-048', category: 'security', severity: 'high', confidence: 'likely',
1433
1433
  title: 'Shell command constructed with variable interpolation',
1434
1434
  check({ files }) {
1435
1435
  const findings = [];
@@ -1470,7 +1470,7 @@ rules.push({
1470
1470
 
1471
1471
  // SEC-INJ-050: Arbitrary file read via path parameter
1472
1472
  rules.push({
1473
- id: 'SEC-INJ-050', category: 'security', severity: 'critical', confidence: 'likely',
1473
+ id: 'SEC-INJ-050', category: 'security', severity: 'high', confidence: 'likely',
1474
1474
  title: 'File read using user-controlled filename — path traversal',
1475
1475
  check({ files }) {
1476
1476
  const findings = [];
@@ -1508,7 +1508,7 @@ rules.push({
1508
1508
 
1509
1509
  // SEC-INJ-052: Subprocess injection via template literal
1510
1510
  rules.push({
1511
- id: 'SEC-INJ-052', category: 'security', severity: 'critical', confidence: 'likely',
1511
+ id: 'SEC-INJ-052', category: 'security', severity: 'high', confidence: 'likely',
1512
1512
  title: 'subprocess injection via template in spawn/fork',
1513
1513
  check({ files }) {
1514
1514
  const findings = [];
@@ -1546,7 +1546,7 @@ rules.push({
1546
1546
 
1547
1547
  // SEC-INJ-054: Unsafe use of vm.runInNewContext with user data
1548
1548
  rules.push({
1549
- id: 'SEC-INJ-054', category: 'security', severity: 'critical', confidence: 'likely',
1549
+ id: 'SEC-INJ-054', category: 'security', severity: 'high', confidence: 'likely',
1550
1550
  title: 'vm.runInNewContext/runInContext with user data — sandbox escape risk',
1551
1551
  check({ files }) {
1552
1552
  const findings = [];
@@ -19,8 +19,8 @@ function checkAll(rule, files, pattern) {
19
19
  const rules = [
20
20
  { id: 'SEC-MCP-001', category: 'security', severity: 'high', confidence: 'likely', title: 'MCP tool without input validation', check({ files }) { return checkAll(this, files, /server\.tool\([^,]+,\s*async\s*\(\s*\{/); } },
21
21
  { id: 'SEC-MCP-002', category: 'security', severity: 'high', confidence: 'likely', title: 'MCP params in file operation', check({ files }) { return checkAll(this, files, /fs\.\w+\(\s*(?:params|args|input)\.\w+/); } },
22
- { id: 'SEC-MCP-003', category: 'security', severity: 'critical', confidence: 'likely', title: 'MCP params in exec/spawn', check({ files }) { return checkAll(this, files, /(?:exec|spawn|execSync)\(\s*(?:params|args|input)\./); } },
23
- { id: 'SEC-MCP-004', category: 'security', severity: 'critical', confidence: 'likely', title: 'MCP params in SQL query', check({ files }) { return checkAll(this, files, /(?:query|execute)\(\s*`[^`]*\$\{(?:params|args|input)\./); } },
22
+ { id: 'SEC-MCP-003', category: 'security', severity: 'high', confidence: 'likely', title: 'MCP params in exec/spawn', check({ files }) { return checkAll(this, files, /(?:exec|spawn|execSync)\(\s*(?:params|args|input)\./); } },
23
+ { id: 'SEC-MCP-004', category: 'security', severity: 'high', confidence: 'likely', title: 'MCP params in SQL query', check({ files }) { return checkAll(this, files, /(?:query|execute)\(\s*`[^`]*\$\{(?:params|args|input)\./); } },
24
24
  { id: 'SEC-MCP-005', category: 'security', severity: 'high', confidence: 'likely', title: 'MCP params in eval', check({ files }) { return checkAll(this, files, /(?:eval|new\s+Function)\(\s*(?:params|args|input)\./); } },
25
25
  { id: 'SEC-MCP-006', category: 'security', severity: 'medium', confidence: 'suggestion', title: 'MCP tool without schema', check({ files }) { return checkAll(this, files, /server\.tool\(\s*['"][^'"]+['"]\s*,\s*(?:async\s*)?\(/); } },
26
26
  { id: 'SEC-MCP-007', category: 'security', severity: 'high', confidence: 'likely', title: 'MCP params in URL (SSRF)', check({ files }) { return checkAll(this, files, /(?:fetch|axios|got|request)\(\s*(?:params|args|input)\./); } },
@@ -47,8 +47,8 @@ const rules = [
47
47
  { id: 'SEC-MCP-028', category: 'security', severity: 'low', confidence: 'suggestion', title: 'MCP description leaks impl', check({ files }) { return checkAll(this, files, /description:\s*['"].*(?:database|internal|private)/i); } },
48
48
  { id: 'SEC-MCP-029', category: 'security', severity: 'medium', confidence: 'likely', title: 'MCP cross-tool data leak', check({ files }) { return checkAll(this, files, /(?:global|globalThis)\.\w+.*=.*(?:params|args)\./); } },
49
49
  { id: 'SEC-MCP-030', category: 'security', severity: 'medium', confidence: 'suggestion', title: 'MCP debug mode enabled', check({ files }) { return checkAll(this, files, /(?:debug|verbose)\s*[:=]\s*true/); } },
50
- { id: 'SEC-MCP-031', category: 'security', severity: 'critical', confidence: 'likely', title: 'MCP shell injection', check({ files }) { return checkAll(this, files, /(?:child_process\.|execSync|execFile)\s*\(\s*`[^`]*\$\{(?:params|args|input)\./); } },
51
- { id: 'SEC-MCP-032', category: 'security', severity: 'critical', confidence: 'likely', title: 'MCP template injection', check({ files }) { return checkAll(this, files, /(?:render|compile|template)\(\s*(?:params|args|input)\./); } },
50
+ { id: 'SEC-MCP-031', category: 'security', severity: 'high', confidence: 'likely', title: 'MCP shell injection', check({ files }) { return checkAll(this, files, /(?:child_process\.|execSync|execFile)\s*\(\s*`[^`]*\$\{(?:params|args|input)\./); } },
51
+ { id: 'SEC-MCP-032', category: 'security', severity: 'high', confidence: 'likely', title: 'MCP template injection', check({ files }) { return checkAll(this, files, /(?:render|compile|template)\(\s*(?:params|args|input)\./); } },
52
52
  { id: 'SEC-MCP-033', category: 'security', severity: 'high', confidence: 'likely', title: 'MCP LDAP injection', check({ files }) { return checkAll(this, files, /(?:ldap|LDAP).*(?:search|bind).*(?:params|args)\./); } },
53
53
  { id: 'SEC-MCP-034', category: 'security', severity: 'high', confidence: 'likely', title: 'MCP XML injection', check({ files }) { return checkAll(this, files, /[<].*\$\{(?:params|args|input)\./); } },
54
54
  { id: 'SEC-MCP-035', category: 'security', severity: 'high', confidence: 'likely', title: 'MCP header injection', check({ files }) { return checkAll(this, files, /setHeader\([^,]+,\s*(?:params|args|input)\./); } },
@@ -303,7 +303,7 @@ const rules = [
303
303
  {
304
304
  id: 'SEC-JWT-010',
305
305
  category: 'security',
306
- severity: 'critical',
306
+ severity: 'high',
307
307
  confidence: 'likely',
308
308
  title: 'JWT Payload Decoded Without Verification',
309
309
  description:
@@ -39,7 +39,7 @@ const rules = [
39
39
  {
40
40
  id: 'SEC-PT-001',
41
41
  category: 'security',
42
- severity: 'critical',
42
+ severity: 'high',
43
43
  confidence: 'likely',
44
44
  title: 'fs.readFile with User-Controlled Path (Path Traversal)',
45
45
  description:
@@ -62,7 +62,7 @@ const rules = [
62
62
  {
63
63
  id: 'SEC-PT-002',
64
64
  category: 'security',
65
- severity: 'critical',
65
+ severity: 'high',
66
66
  confidence: 'likely',
67
67
  title: 'fs.writeFile with User-Controlled Path (Path Traversal)',
68
68
  description:
@@ -154,7 +154,7 @@ const rules = [
154
154
  {
155
155
  id: 'SEC-PT-006',
156
156
  category: 'security',
157
- severity: 'critical',
157
+ severity: 'high',
158
158
  confidence: 'likely',
159
159
  title: 'fs.createReadStream with User-Controlled Path',
160
160
  description:
@@ -177,7 +177,7 @@ const rules = [
177
177
  {
178
178
  id: 'SEC-PT-007',
179
179
  category: 'security',
180
- severity: 'critical',
180
+ severity: 'high',
181
181
  confidence: 'likely',
182
182
  title: 'Zip Extraction Without Path Validation (Zip Slip)',
183
183
  description:
@@ -213,7 +213,7 @@ const rules = [
213
213
  {
214
214
  id: 'SEC-PT-008',
215
215
  category: 'security',
216
- severity: 'critical',
216
+ severity: 'high',
217
217
  confidence: 'likely',
218
218
  title: 'fs.unlink/rm with User-Controlled Path (Arbitrary File Deletion)',
219
219
  description:
@@ -272,7 +272,7 @@ const rules = [
272
272
  {
273
273
  id: 'SEC-PT-010',
274
274
  category: 'security',
275
- severity: 'critical',
275
+ severity: 'high',
276
276
  confidence: 'likely',
277
277
  title: 'Template/View File Inclusion with User Input (LFI)',
278
278
  description:
@@ -54,7 +54,7 @@ const rules = [
54
54
  {
55
55
  id: 'SEC-PHP-001',
56
56
  category: 'security',
57
- severity: 'critical',
57
+ severity: 'high',
58
58
  confidence: 'likely',
59
59
  title: 'SQL Injection via mysql_query with Concatenation',
60
60
  description: 'Concatenating user input into mysql_query() allows SQL injection.',
@@ -70,7 +70,7 @@ const rules = [
70
70
  {
71
71
  id: 'SEC-PHP-002',
72
72
  category: 'security',
73
- severity: 'critical',
73
+ severity: 'high',
74
74
  confidence: 'likely',
75
75
  title: 'SQL Injection via mysqli_query with Variable Interpolation',
76
76
  description: 'Using variable interpolation in mysqli_query() enables SQL injection.',
@@ -86,7 +86,7 @@ const rules = [
86
86
  {
87
87
  id: 'SEC-PHP-003',
88
88
  category: 'security',
89
- severity: 'critical',
89
+ severity: 'high',
90
90
  confidence: 'likely',
91
91
  title: 'SQL Injection via PDO::query with Variable Interpolation',
92
92
  description: 'Using string interpolation in PDO::query() bypasses prepared statement protection.',
@@ -102,7 +102,7 @@ const rules = [
102
102
  {
103
103
  id: 'SEC-PHP-004',
104
104
  category: 'security',
105
- severity: 'critical',
105
+ severity: 'high',
106
106
  confidence: 'likely',
107
107
  title: 'SQL Injection via $_GET in Query String',
108
108
  description: 'Directly embedding $_GET values in SQL queries allows injection.',
@@ -118,7 +118,7 @@ const rules = [
118
118
  {
119
119
  id: 'SEC-PHP-005',
120
120
  category: 'security',
121
- severity: 'critical',
121
+ severity: 'high',
122
122
  confidence: 'likely',
123
123
  title: 'SQL Injection via $_POST in Query String',
124
124
  description: 'Directly embedding $_POST values in SQL queries allows injection.',
@@ -134,7 +134,7 @@ const rules = [
134
134
  {
135
135
  id: 'SEC-PHP-006',
136
136
  category: 'security',
137
- severity: 'critical',
137
+ severity: 'high',
138
138
  confidence: 'likely',
139
139
  title: 'SQL Injection via sprintf()',
140
140
  description: 'Using sprintf to build SQL queries with user input allows injection.',
@@ -150,7 +150,7 @@ const rules = [
150
150
  {
151
151
  id: 'SEC-PHP-007',
152
152
  category: 'security',
153
- severity: 'critical',
153
+ severity: 'high',
154
154
  confidence: 'likely',
155
155
  title: 'SQL Injection via $_REQUEST in Query',
156
156
  description: 'Using $_REQUEST in SQL queries allows injection from any request method.',
@@ -198,7 +198,7 @@ const rules = [
198
198
  {
199
199
  id: 'SEC-PHP-010',
200
200
  category: 'security',
201
- severity: 'critical',
201
+ severity: 'high',
202
202
  confidence: 'likely',
203
203
  title: 'SQL Injection via $db->query with Concatenation',
204
204
  description: 'Using $db->query() with concatenated variables allows SQL injection.',
@@ -302,7 +302,7 @@ const rules = [
302
302
  {
303
303
  id: 'SEC-PHP-016',
304
304
  category: 'security',
305
- severity: 'critical',
305
+ severity: 'high',
306
306
  confidence: 'likely',
307
307
  title: 'Command Injection via exec()',
308
308
  description: 'Passing user input to exec() allows arbitrary command execution.',
@@ -318,7 +318,7 @@ const rules = [
318
318
  {
319
319
  id: 'SEC-PHP-017',
320
320
  category: 'security',
321
- severity: 'critical',
321
+ severity: 'high',
322
322
  confidence: 'likely',
323
323
  title: 'Command Injection via system()',
324
324
  description: 'Passing user input to system() allows arbitrary command execution.',
@@ -334,7 +334,7 @@ const rules = [
334
334
  {
335
335
  id: 'SEC-PHP-018',
336
336
  category: 'security',
337
- severity: 'critical',
337
+ severity: 'high',
338
338
  confidence: 'likely',
339
339
  title: 'Command Injection via shell_exec()',
340
340
  description: 'Passing user input to shell_exec() allows arbitrary command execution.',
@@ -350,7 +350,7 @@ const rules = [
350
350
  {
351
351
  id: 'SEC-PHP-019',
352
352
  category: 'security',
353
- severity: 'critical',
353
+ severity: 'high',
354
354
  confidence: 'likely',
355
355
  title: 'Command Injection via passthru()',
356
356
  description: 'Passing user input to passthru() allows arbitrary command execution.',
@@ -366,7 +366,7 @@ const rules = [
366
366
  {
367
367
  id: 'SEC-PHP-020',
368
368
  category: 'security',
369
- severity: 'critical',
369
+ severity: 'high',
370
370
  confidence: 'likely',
371
371
  title: 'Command Injection via Backtick Operator',
372
372
  description: 'Using backtick operator with user input allows arbitrary command execution.',
@@ -386,7 +386,7 @@ const rules = [
386
386
  {
387
387
  id: 'SEC-PHP-021',
388
388
  category: 'security',
389
- severity: 'critical',
389
+ severity: 'high',
390
390
  confidence: 'likely',
391
391
  title: 'Local File Inclusion via include()',
392
392
  description: 'Using include() with user input allows including arbitrary files.',
@@ -402,7 +402,7 @@ const rules = [
402
402
  {
403
403
  id: 'SEC-PHP-022',
404
404
  category: 'security',
405
- severity: 'critical',
405
+ severity: 'high',
406
406
  confidence: 'likely',
407
407
  title: 'Local File Inclusion via require()',
408
408
  description: 'Using require() with user input allows including arbitrary files.',
@@ -418,7 +418,7 @@ const rules = [
418
418
  {
419
419
  id: 'SEC-PHP-023',
420
420
  category: 'security',
421
- severity: 'critical',
421
+ severity: 'high',
422
422
  confidence: 'likely',
423
423
  title: 'File Inclusion via include_once with Variable',
424
424
  description: 'Using include_once with user-controlled variable allows file inclusion.',
@@ -434,7 +434,7 @@ const rules = [
434
434
  {
435
435
  id: 'SEC-PHP-024',
436
436
  category: 'security',
437
- severity: 'critical',
437
+ severity: 'high',
438
438
  confidence: 'likely',
439
439
  title: 'Remote File Inclusion Enabled',
440
440
  description: 'Setting allow_url_include=On enables remote file inclusion attacks.',
@@ -450,7 +450,7 @@ const rules = [
450
450
  {
451
451
  id: 'SEC-PHP-025',
452
452
  category: 'security',
453
- severity: 'critical',
453
+ severity: 'high',
454
454
  confidence: 'likely',
455
455
  title: 'File Inclusion via require_once with Variable',
456
456
  description: 'Using require_once with user-controlled variable allows file inclusion.',
@@ -470,7 +470,7 @@ const rules = [
470
470
  {
471
471
  id: 'SEC-PHP-026',
472
472
  category: 'security',
473
- severity: 'critical',
473
+ severity: 'high',
474
474
  confidence: 'likely',
475
475
  title: 'Unsafe unserialize() with User Input',
476
476
  description: 'Using unserialize() on user input allows object injection and RCE.',
@@ -518,7 +518,7 @@ const rules = [
518
518
  {
519
519
  id: 'SEC-PHP-029',
520
520
  category: 'security',
521
- severity: 'critical',
521
+ severity: 'high',
522
522
  confidence: 'likely',
523
523
  title: 'Phar Deserialization Attack',
524
524
  description: 'File operations on phar:// streams with user input trigger deserialization.',
@@ -554,7 +554,7 @@ const rules = [
554
554
  {
555
555
  id: 'SEC-PHP-031',
556
556
  category: 'security',
557
- severity: 'critical',
557
+ severity: 'high',
558
558
  confidence: 'likely',
559
559
  title: 'Code Injection via eval()',
560
560
  description: 'Using eval() with user-controlled input allows arbitrary code execution.',
@@ -586,7 +586,7 @@ const rules = [
586
586
  {
587
587
  id: 'SEC-PHP-033',
588
588
  category: 'security',
589
- severity: 'critical',
589
+ severity: 'high',
590
590
  confidence: 'likely',
591
591
  title: 'Code Execution via assert()',
592
592
  description: 'assert() with string arguments evaluates code like eval() in PHP < 8.',
@@ -602,7 +602,7 @@ const rules = [
602
602
  {
603
603
  id: 'SEC-PHP-034',
604
604
  category: 'security',
605
- severity: 'critical',
605
+ severity: 'high',
606
606
  confidence: 'likely',
607
607
  title: 'Code Execution via preg_replace /e Modifier',
608
608
  description: 'The /e modifier in preg_replace evaluates replacement as PHP code.',
@@ -722,7 +722,7 @@ const rules = [
722
722
  {
723
723
  id: 'SEC-PHP-041',
724
724
  category: 'security',
725
- severity: 'critical',
725
+ severity: 'high',
726
726
  confidence: 'likely',
727
727
  title: 'SQL Injection via Laravel DB::raw()',
728
728
  description: 'Using DB::raw() with user input bypasses query builder protections.',
@@ -786,7 +786,7 @@ const rules = [
786
786
  {
787
787
  id: 'SEC-PHP-045',
788
788
  category: 'security',
789
- severity: 'critical',
789
+ severity: 'high',
790
790
  confidence: 'likely',
791
791
  title: 'SQL Injection via Laravel whereRaw()',
792
792
  description: 'Using whereRaw() with concatenated user input enables SQL injection.',
@@ -806,7 +806,7 @@ const rules = [
806
806
  {
807
807
  id: 'SEC-PHP-046',
808
808
  category: 'security',
809
- severity: 'critical',
809
+ severity: 'high',
810
810
  confidence: 'likely',
811
811
  title: 'WordPress SQL Injection via $wpdb->query()',
812
812
  description: 'Using $wpdb->query() without $wpdb->prepare() allows SQL injection.',
@@ -974,7 +974,7 @@ const rules = [
974
974
  {
975
975
  id: 'SEC-PHP-056',
976
976
  category: 'security',
977
- severity: 'critical',
977
+ severity: 'high',
978
978
  confidence: 'likely',
979
979
  title: 'Weak Password Hashing: md5()',
980
980
  description: 'Using md5() for password hashing is trivially crackable.',
@@ -1006,7 +1006,7 @@ const rules = [
1006
1006
  {
1007
1007
  id: 'SEC-PHP-058',
1008
1008
  category: 'security',
1009
- severity: 'critical',
1009
+ severity: 'high',
1010
1010
  confidence: 'likely',
1011
1011
  title: 'Hardcoded Encryption Key',
1012
1012
  description: 'Hardcoded encryption keys in source code can be extracted by attackers.',