circle-ir 3.20.0 → 3.22.0

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.
@@ -0,0 +1,144 @@
1
+ {
2
+ "name": "Go Sinks",
3
+ "description": "Taint sinks for Go standard library and web frameworks",
4
+ "sinks": [
5
+ {
6
+ "method": "Query",
7
+ "class": "DB",
8
+ "type": "sql_injection",
9
+ "cwe": "CWE-89",
10
+ "severity": "critical",
11
+ "arg_positions": [0]
12
+ },
13
+ {
14
+ "method": "QueryRow",
15
+ "class": "DB",
16
+ "type": "sql_injection",
17
+ "cwe": "CWE-89",
18
+ "severity": "critical",
19
+ "arg_positions": [0]
20
+ },
21
+ {
22
+ "method": "Exec",
23
+ "class": "DB",
24
+ "type": "sql_injection",
25
+ "cwe": "CWE-89",
26
+ "severity": "critical",
27
+ "arg_positions": [0]
28
+ },
29
+ {
30
+ "method": "Query",
31
+ "class": "Tx",
32
+ "type": "sql_injection",
33
+ "cwe": "CWE-89",
34
+ "severity": "critical",
35
+ "arg_positions": [0]
36
+ },
37
+ {
38
+ "method": "Command",
39
+ "class": "exec",
40
+ "type": "command_injection",
41
+ "cwe": "CWE-78",
42
+ "severity": "critical",
43
+ "arg_positions": [0]
44
+ },
45
+ {
46
+ "method": "CommandContext",
47
+ "class": "exec",
48
+ "type": "command_injection",
49
+ "cwe": "CWE-78",
50
+ "severity": "critical",
51
+ "arg_positions": [1]
52
+ },
53
+ {
54
+ "method": "Open",
55
+ "class": "os",
56
+ "type": "path_traversal",
57
+ "cwe": "CWE-22",
58
+ "severity": "high",
59
+ "arg_positions": [0]
60
+ },
61
+ {
62
+ "method": "ReadFile",
63
+ "class": "os",
64
+ "type": "path_traversal",
65
+ "cwe": "CWE-22",
66
+ "severity": "high",
67
+ "arg_positions": [0]
68
+ },
69
+ {
70
+ "method": "WriteFile",
71
+ "class": "os",
72
+ "type": "path_traversal",
73
+ "cwe": "CWE-22",
74
+ "severity": "high",
75
+ "arg_positions": [0]
76
+ },
77
+ {
78
+ "method": "Fprintf",
79
+ "class": "fmt",
80
+ "type": "xss",
81
+ "cwe": "CWE-79",
82
+ "severity": "high",
83
+ "arg_positions": [1]
84
+ },
85
+ {
86
+ "method": "Write",
87
+ "class": "ResponseWriter",
88
+ "type": "xss",
89
+ "cwe": "CWE-79",
90
+ "severity": "high",
91
+ "arg_positions": [0]
92
+ },
93
+ {
94
+ "method": "Get",
95
+ "class": "http",
96
+ "type": "ssrf",
97
+ "cwe": "CWE-918",
98
+ "severity": "high",
99
+ "arg_positions": [0]
100
+ },
101
+ {
102
+ "method": "Post",
103
+ "class": "http",
104
+ "type": "ssrf",
105
+ "cwe": "CWE-918",
106
+ "severity": "high",
107
+ "arg_positions": [0]
108
+ },
109
+ {
110
+ "method": "Unmarshal",
111
+ "class": "json",
112
+ "type": "deserialization",
113
+ "cwe": "CWE-502",
114
+ "severity": "medium",
115
+ "arg_positions": [0]
116
+ }
117
+ ],
118
+ "sanitizers": [
119
+ {
120
+ "method": "Prepare",
121
+ "class": "DB",
122
+ "removes": ["sql_injection"],
123
+ "note": "Prepared statements prevent SQL injection"
124
+ },
125
+ {
126
+ "method": "Clean",
127
+ "class": "filepath",
128
+ "removes": ["path_traversal"],
129
+ "note": "filepath.Clean normalizes path, preventing traversal"
130
+ },
131
+ {
132
+ "method": "EscapeString",
133
+ "class": "html",
134
+ "removes": ["xss"],
135
+ "note": "html.EscapeString escapes HTML entities"
136
+ },
137
+ {
138
+ "method": "HTMLEscapeString",
139
+ "class": "template",
140
+ "removes": ["xss"],
141
+ "note": "template.HTMLEscapeString escapes HTML"
142
+ }
143
+ ]
144
+ }
@@ -0,0 +1,150 @@
1
+ {
2
+ "name": "Go Sources",
3
+ "description": "Taint sources for Go web frameworks and standard library",
4
+ "sources": [
5
+ {
6
+ "method": "FormValue",
7
+ "class": "Request",
8
+ "type": "http_param",
9
+ "severity": "high",
10
+ "return_tainted": true,
11
+ "framework": "net/http"
12
+ },
13
+ {
14
+ "method": "PostFormValue",
15
+ "class": "Request",
16
+ "type": "http_param",
17
+ "severity": "high",
18
+ "return_tainted": true,
19
+ "framework": "net/http"
20
+ },
21
+ {
22
+ "method": "Get",
23
+ "class": "Header",
24
+ "type": "http_header",
25
+ "severity": "high",
26
+ "return_tainted": true,
27
+ "framework": "net/http"
28
+ },
29
+ {
30
+ "method": "Cookie",
31
+ "class": "Request",
32
+ "type": "http_cookie",
33
+ "severity": "high",
34
+ "return_tainted": true,
35
+ "framework": "net/http"
36
+ },
37
+ {
38
+ "method": "ReadAll",
39
+ "class": "io",
40
+ "type": "http_body",
41
+ "severity": "high",
42
+ "return_tainted": true,
43
+ "framework": "net/http"
44
+ },
45
+ {
46
+ "method": "Query",
47
+ "class": "Context",
48
+ "type": "http_param",
49
+ "severity": "high",
50
+ "return_tainted": true,
51
+ "framework": "gin"
52
+ },
53
+ {
54
+ "method": "Param",
55
+ "class": "Context",
56
+ "type": "http_path",
57
+ "severity": "high",
58
+ "return_tainted": true,
59
+ "framework": "gin"
60
+ },
61
+ {
62
+ "method": "PostForm",
63
+ "class": "Context",
64
+ "type": "http_param",
65
+ "severity": "high",
66
+ "return_tainted": true,
67
+ "framework": "gin"
68
+ },
69
+ {
70
+ "method": "GetRawData",
71
+ "class": "Context",
72
+ "type": "http_body",
73
+ "severity": "high",
74
+ "return_tainted": true,
75
+ "framework": "gin"
76
+ },
77
+ {
78
+ "method": "BindJSON",
79
+ "class": "Context",
80
+ "type": "http_body",
81
+ "severity": "high",
82
+ "return_tainted": true,
83
+ "framework": "gin"
84
+ },
85
+ {
86
+ "method": "QueryParam",
87
+ "class": "Context",
88
+ "type": "http_param",
89
+ "severity": "high",
90
+ "return_tainted": true,
91
+ "framework": "echo"
92
+ },
93
+ {
94
+ "method": "FormValue",
95
+ "class": "Context",
96
+ "type": "http_param",
97
+ "severity": "high",
98
+ "return_tainted": true,
99
+ "framework": "echo"
100
+ },
101
+ {
102
+ "method": "Param",
103
+ "class": "Context",
104
+ "type": "http_path",
105
+ "severity": "high",
106
+ "return_tainted": true,
107
+ "framework": "echo"
108
+ },
109
+ {
110
+ "method": "Getenv",
111
+ "class": "os",
112
+ "type": "env_var",
113
+ "severity": "medium",
114
+ "return_tainted": true,
115
+ "framework": "stdlib"
116
+ },
117
+ {
118
+ "method": "ReadFile",
119
+ "class": "os",
120
+ "type": "file_read",
121
+ "severity": "medium",
122
+ "return_tainted": true,
123
+ "framework": "stdlib"
124
+ },
125
+ {
126
+ "method": "Text",
127
+ "class": "Scanner",
128
+ "type": "stdin",
129
+ "severity": "medium",
130
+ "return_tainted": true,
131
+ "framework": "stdlib"
132
+ },
133
+ {
134
+ "method": "Scan",
135
+ "class": "fmt",
136
+ "type": "stdin",
137
+ "severity": "medium",
138
+ "return_tainted": true,
139
+ "framework": "stdlib"
140
+ },
141
+ {
142
+ "method": "Scanln",
143
+ "class": "fmt",
144
+ "type": "stdin",
145
+ "severity": "medium",
146
+ "return_tainted": true,
147
+ "framework": "stdlib"
148
+ }
149
+ ]
150
+ }
@@ -152,8 +152,9 @@ export class LanguageSourcesPass {
152
152
  }
153
153
  }
154
154
  const jsTaintedVars = buildJavaScriptTaintedVars(code, language);
155
- // -- Bash/Shell: pattern-based findings (hardcoded creds, chmod 777, etc.) --
155
+ // -- Bash/Shell: taint sources + pattern-based findings --
156
156
  if (language === 'bash') {
157
+ additionalSources.push(...findBashTaintSources(code, graph.ir.dfg));
157
158
  const bashFindings = findBashPatternFindings(code, graph.ir.meta.file);
158
159
  for (const finding of bashFindings) {
159
160
  ctx.addFinding(finding);
@@ -516,6 +517,110 @@ export function buildJavaScriptTaintedVars(sourceCode, language) {
516
517
  return tainted;
517
518
  }
518
519
  // ---------------------------------------------------------------------------
520
+ // Bash/Shell taint sources
521
+ // ---------------------------------------------------------------------------
522
+ /** Positional parameter names that are always external input. */
523
+ const BASH_POSITIONAL_PARAMS = new Set(['1', '2', '3', '4', '5', '6', '7', '8', '9', '@', '*']);
524
+ /** Common untrusted environment variable name patterns. */
525
+ const BASH_UNTRUSTED_ENV_PATTERNS = [
526
+ /^USER_INPUT$/i,
527
+ /^QUERY_STRING$/i,
528
+ /^REQUEST_/i,
529
+ /^HTTP_/i,
530
+ /^REMOTE_/i,
531
+ /^CONTENT_TYPE$/i,
532
+ /^CONTENT_LENGTH$/i,
533
+ /^PATH_INFO$/i,
534
+ /^SCRIPT_NAME$/i,
535
+ /^SERVER_NAME$/i,
536
+ ];
537
+ /** Commands whose output should be treated as tainted network data. */
538
+ const BASH_NETWORK_COMMANDS = new Set(['curl', 'wget', 'nc', 'ncat']);
539
+ /** Commands whose output should be treated as tainted file data. */
540
+ const BASH_FILE_COMMANDS = new Set(['cat', 'head', 'tail', 'less', 'more', 'awk', 'sed', 'cut', 'grep']);
541
+ /**
542
+ * Find Bash taint sources: positional params, command substitution from
543
+ * network/file, and known untrusted environment variables.
544
+ */
545
+ function findBashTaintSources(sourceCode, dfg) {
546
+ const sources = [];
547
+ const lines = sourceCode.split('\n');
548
+ const definedVars = new Set(dfg.defs.filter(d => d.kind === 'local').map(d => d.variable));
549
+ for (let i = 0; i < lines.length; i++) {
550
+ const line = lines[i];
551
+ const trimmed = line.trim();
552
+ const lineNumber = i + 1;
553
+ if (trimmed.startsWith('#'))
554
+ continue;
555
+ // 1. Positional parameters: $1-$9, $@, $*
556
+ const positionalRe = /\$([1-9@*])|\$\{([1-9@*])\}/g;
557
+ let m;
558
+ while ((m = positionalRe.exec(line)) !== null) {
559
+ const param = m[1] ?? m[2];
560
+ const alreadyExists = sources.some(s => s.line === lineNumber && s.variable === param);
561
+ if (!alreadyExists) {
562
+ sources.push({
563
+ type: 'io_input',
564
+ location: `positional parameter $${param}`,
565
+ severity: 'high',
566
+ line: lineNumber,
567
+ confidence: 1.0,
568
+ variable: param,
569
+ });
570
+ }
571
+ }
572
+ // 2. Command substitution from network: VAR=$(curl ...) or VAR=`curl ...`
573
+ const cmdSubAssign = trimmed.match(/^(\w+)=\$\((\w+)\s/);
574
+ const cmdSubBacktick = trimmed.match(/^(\w+)=`(\w+)\s/);
575
+ const csMatch = cmdSubAssign ?? cmdSubBacktick;
576
+ if (csMatch) {
577
+ const [, varName, cmd] = csMatch;
578
+ if (BASH_NETWORK_COMMANDS.has(cmd)) {
579
+ sources.push({
580
+ type: 'network_input',
581
+ location: `${varName}=$(${cmd} ...) — network command output`,
582
+ severity: 'high',
583
+ line: lineNumber,
584
+ confidence: 0.9,
585
+ variable: varName,
586
+ });
587
+ }
588
+ else if (BASH_FILE_COMMANDS.has(cmd)) {
589
+ sources.push({
590
+ type: 'file_input',
591
+ location: `${varName}=$(${cmd} ...) — file command output`,
592
+ severity: 'medium',
593
+ line: lineNumber,
594
+ confidence: 0.7,
595
+ variable: varName,
596
+ });
597
+ }
598
+ }
599
+ // 3. Environment variables: $VAR where VAR was never assigned in the script
600
+ // and matches known untrusted env patterns
601
+ const envRe = /\$([A-Z][A-Z0-9_]{2,})|\$\{([A-Z][A-Z0-9_]{2,})\}/g;
602
+ let em;
603
+ while ((em = envRe.exec(line)) !== null) {
604
+ const envVar = em[1] ?? em[2];
605
+ // Only flag if not defined in the script and matches untrusted patterns
606
+ if (!definedVars.has(envVar) && BASH_UNTRUSTED_ENV_PATTERNS.some(p => p.test(envVar))) {
607
+ const alreadyExists = sources.some(s => s.line === lineNumber && s.variable === envVar);
608
+ if (!alreadyExists) {
609
+ sources.push({
610
+ type: 'env_input',
611
+ location: `environment variable $${envVar}`,
612
+ severity: 'medium',
613
+ line: lineNumber,
614
+ confidence: 0.8,
615
+ variable: envVar,
616
+ });
617
+ }
618
+ }
619
+ }
620
+ }
621
+ return sources;
622
+ }
623
+ // ---------------------------------------------------------------------------
519
624
  // Bash/Shell pattern-based findings
520
625
  // ---------------------------------------------------------------------------
521
626
  const BASH_CREDENTIAL_PATTERN = /^(.*?)(password|passwd|secret|api_?key|token|auth_token|private_key|access_key)\s*=\s*["']?([^"'\s$][^"'\s]*)["']?\s*$/i;
@@ -1 +1 @@
1
- {"version":3,"file":"language-sources-pass.js","sourceRoot":"","sources":["../../../src/analysis/passes/language-sources-pass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"language-sources-pass.js","sourceRoot":"","sources":["../../../src/analysis/passes/language-sources-pass.ts"],"names":[],"mappings":"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"}
package/dist/analyzer.js CHANGED
@@ -215,6 +215,15 @@ function getNodeTypesForLanguage(language) {
215
215
  'element', 'script_element', 'style_element', 'attribute',
216
216
  'start_tag', 'self_closing_tag', 'text',
217
217
  ]);
218
+ case 'go':
219
+ return new Set([
220
+ 'call_expression', 'function_declaration', 'method_declaration',
221
+ 'package_clause', 'import_declaration', 'import_spec',
222
+ 'var_declaration', 'short_var_declaration', 'assignment_statement',
223
+ 'type_declaration', 'if_statement', 'for_statement',
224
+ 'return_statement', 'defer_statement', 'go_statement',
225
+ 'selector_expression', 'identifier',
226
+ ]);
218
227
  default:
219
228
  return new Set([
220
229
  'method_invocation', 'object_creation_expression', 'class_declaration',