circle-ir 3.58.0 → 3.62.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.
Files changed (65) hide show
  1. package/dist/analysis/config-loader.d.ts.map +1 -1
  2. package/dist/analysis/config-loader.js +58 -17
  3. package/dist/analysis/config-loader.js.map +1 -1
  4. package/dist/analysis/html/html-merge.d.ts.map +1 -1
  5. package/dist/analysis/html/html-merge.js +10 -0
  6. package/dist/analysis/html/html-merge.js.map +1 -1
  7. package/dist/analysis/interprocedural.d.ts.map +1 -1
  8. package/dist/analysis/interprocedural.js +44 -11
  9. package/dist/analysis/interprocedural.js.map +1 -1
  10. package/dist/analysis/passes/language-sources-pass.d.ts +7 -1
  11. package/dist/analysis/passes/language-sources-pass.d.ts.map +1 -1
  12. package/dist/analysis/passes/language-sources-pass.js +283 -15
  13. package/dist/analysis/passes/language-sources-pass.js.map +1 -1
  14. package/dist/analysis/passes/missing-public-doc-pass.d.ts.map +1 -1
  15. package/dist/analysis/passes/missing-public-doc-pass.js +2 -1
  16. package/dist/analysis/passes/missing-public-doc-pass.js.map +1 -1
  17. package/dist/analysis/passes/sink-filter-pass.d.ts.map +1 -1
  18. package/dist/analysis/passes/sink-filter-pass.js +4 -1
  19. package/dist/analysis/passes/sink-filter-pass.js.map +1 -1
  20. package/dist/analysis/passes/taint-propagation-pass.js +2 -1
  21. package/dist/analysis/passes/taint-propagation-pass.js.map +1 -1
  22. package/dist/analysis/passes/weak-random-pass.d.ts.map +1 -1
  23. package/dist/analysis/passes/weak-random-pass.js +2 -1
  24. package/dist/analysis/passes/weak-random-pass.js.map +1 -1
  25. package/dist/analysis/taint-matcher.d.ts.map +1 -1
  26. package/dist/analysis/taint-matcher.js +29 -7
  27. package/dist/analysis/taint-matcher.js.map +1 -1
  28. package/dist/analysis/taint-propagation.d.ts.map +1 -1
  29. package/dist/analysis/taint-propagation.js +20 -0
  30. package/dist/analysis/taint-propagation.js.map +1 -1
  31. package/dist/analyzer.d.ts.map +1 -1
  32. package/dist/analyzer.js +19 -2
  33. package/dist/analyzer.js.map +1 -1
  34. package/dist/browser/circle-ir.js +512 -51
  35. package/dist/core/circle-ir-core.cjs +243 -26
  36. package/dist/core/circle-ir-core.js +243 -26
  37. package/dist/core/extractors/calls.js +181 -1
  38. package/dist/core/extractors/calls.js.map +1 -1
  39. package/dist/core/extractors/cfg.js +1 -1
  40. package/dist/core/extractors/cfg.js.map +1 -1
  41. package/dist/core/extractors/dfg.js +29 -3
  42. package/dist/core/extractors/dfg.js.map +1 -1
  43. package/dist/core/extractors/imports.js +1 -1
  44. package/dist/core/extractors/imports.js.map +1 -1
  45. package/dist/core/extractors/runtime-registrations.js +1 -1
  46. package/dist/core/extractors/runtime-registrations.js.map +1 -1
  47. package/dist/core/extractors/types.js +1 -1
  48. package/dist/core/extractors/types.js.map +1 -1
  49. package/dist/core/parser.d.ts +1 -1
  50. package/dist/core/parser.d.ts.map +1 -1
  51. package/dist/graph/scope-graph.d.ts.map +1 -1
  52. package/dist/graph/scope-graph.js +1 -0
  53. package/dist/graph/scope-graph.js.map +1 -1
  54. package/dist/languages/plugins/bash.d.ts.map +1 -1
  55. package/dist/languages/plugins/bash.js +17 -0
  56. package/dist/languages/plugins/bash.js.map +1 -1
  57. package/dist/languages/registry.d.ts.map +1 -1
  58. package/dist/languages/registry.js +6 -0
  59. package/dist/languages/registry.js.map +1 -1
  60. package/dist/languages/types.d.ts +1 -1
  61. package/dist/languages/types.d.ts.map +1 -1
  62. package/dist/types/index.d.ts +1 -1
  63. package/dist/types/index.d.ts.map +1 -1
  64. package/dist/wasm/tree-sitter-tsx.wasm +0 -0
  65. package/package.json +2 -1
@@ -104,8 +104,19 @@ export class LanguageSourcesPass {
104
104
  const constProp = ctx.getResult('constant-propagation');
105
105
  const additionalSources = [];
106
106
  const additionalSinks = [];
107
+ const additionalSanitizers = [];
107
108
  // -- Java: getter methods that return tainted constructor fields ----------
108
109
  additionalSources.push(...findGetterSources(types, constProp.instanceFieldTaint, code));
110
+ // -- Cross-language: OOP constructor-injected field flow (issue #78) ------
111
+ //
112
+ // Pattern: a constructor assigns a tainted value (HTTP source or a
113
+ // tainted constructor parameter) to a `this.<field>` / `self.<field>`
114
+ // slot. Methods of the same class read the field directly or through a
115
+ // getter / @property. We emit synthetic sources bound to `this.<field>`
116
+ // / `self.<field>` (and to the getter name) at the assignment / getter
117
+ // line, so the variable-name scan in TaintPropagationPass connects them
118
+ // to sinks in other methods of the same class.
119
+ additionalSources.push(...findOopFieldReadSources(types, code, language));
109
120
  // -- JavaScript/TypeScript: assignment sources and DOM XSS sinks ---------
110
121
  additionalSources.push(...findJavaScriptAssignmentSources(code, language));
111
122
  const jsDOMSinks = findJavaScriptDOMSinks(code, language);
@@ -160,12 +171,13 @@ export class LanguageSourcesPass {
160
171
  for (const finding of bashFindings) {
161
172
  ctx.addFinding(finding);
162
173
  }
174
+ additionalSanitizers.push(...findBashRegexAllowlistSanitizers(code));
163
175
  }
164
176
  // Attach trimmed source-line text to each emitted source/sink so consumers
165
177
  // (LLM enrichment, SARIF reporters) can render the offending line without
166
178
  // re-reading the file.
167
179
  attachSourceLineCode(additionalSources, additionalSinks, code);
168
- return { additionalSources, additionalSinks, pyTaintedVars, pySanitizedVars, jsTaintedVars };
180
+ return { additionalSources, additionalSinks, additionalSanitizers, pyTaintedVars, pySanitizedVars, jsTaintedVars };
169
181
  }
170
182
  }
171
183
  function findGetterSources(types, instanceFieldTaint, _sourceCode) {
@@ -220,6 +232,167 @@ function findGetterSources(types, instanceFieldTaint, _sourceCode) {
220
232
  }
221
233
  return sources;
222
234
  }
235
+ /**
236
+ * Issue #78 — OOP constructor-injected field flow (Java + Python).
237
+ *
238
+ * For each class, identify fields that the constructor assigns from either
239
+ * (a) a constructor parameter, or (b) an HTTP source expression. Then emit
240
+ * synthetic sources keyed on the field-access expression itself
241
+ * (`this.<field>`, `self.<field>`) and — for single-return getters /
242
+ * properties — on the getter name. Downstream `TaintPropagationPass`
243
+ * connects these to sinks in OTHER methods of the same class via its
244
+ * variable-name scan.
245
+ *
246
+ * Scoped to Java + Python because those are the languages where the
247
+ * constructor-field flow is the dominant OOP taint pattern. JS uses
248
+ * `this.<field>` too, but DOM/HTTP sources there are already covered by
249
+ * `findJavaScriptAssignmentSources`.
250
+ */
251
+ function findOopFieldReadSources(types, sourceCode, language) {
252
+ if (language !== 'java' && language !== 'python')
253
+ return [];
254
+ const sources = [];
255
+ const lines = sourceCode.split('\n');
256
+ const isPython = language === 'python';
257
+ const SELF = isPython ? 'self' : 'this';
258
+ // Common Java HTTP-source receivers / methods. Conservative: matches
259
+ // `request.getParameter` style calls but not arbitrary `foo.getName()`.
260
+ const javaHttpPattern = /\b(?:req|request|httpRequest|servletRequest|httpServletRequest)\.(?:getParameter|getParameterValues|getParameterMap|getHeader|getHeaders|getCookies|getQueryString|getPathInfo|getRequestURI|getRequestURL|getInputStream|getReader)\b/;
261
+ const fieldAssignRe = new RegExp(`^\\s*${SELF}\\.([A-Za-z_]\\w*)\\s*=\\s*(.+?)(?:;\\s*)?$`);
262
+ const commentPrefix = isPython ? '#' : '//';
263
+ for (const type of types) {
264
+ if (type.kind !== 'class')
265
+ continue;
266
+ if (type.name === '<module>')
267
+ continue;
268
+ // Locate constructor.
269
+ let ctor;
270
+ for (const m of type.methods) {
271
+ if (isPython) {
272
+ if (m.name === '__init__') {
273
+ ctor = m;
274
+ break;
275
+ }
276
+ }
277
+ else {
278
+ if (m.name === type.name) {
279
+ ctor = m;
280
+ break;
281
+ }
282
+ }
283
+ }
284
+ if (!ctor)
285
+ continue;
286
+ // Constructor parameter name set (skip the implicit `self` / `this`).
287
+ const paramNames = new Set();
288
+ for (const p of ctor.parameters) {
289
+ if (p.name === 'self' || p.name === 'this')
290
+ continue;
291
+ paramNames.add(p.name);
292
+ }
293
+ // Field → { assignment line, derived source type } map.
294
+ const fieldTaint = new Map();
295
+ const ctorStart = ctor.start_line;
296
+ const ctorEnd = ctor.end_line;
297
+ for (let i = ctorStart - 1; i < Math.min(ctorEnd, lines.length); i++) {
298
+ const line = lines[i] ?? '';
299
+ if (line.trim().startsWith(commentPrefix))
300
+ continue;
301
+ const m = line.match(fieldAssignRe);
302
+ if (!m)
303
+ continue;
304
+ const fieldName = m[1];
305
+ const rhs = m[2].trim().replace(/;\s*$/, '');
306
+ let sourceType = null;
307
+ if (paramNames.has(rhs)) {
308
+ sourceType = 'interprocedural_param';
309
+ }
310
+ else if (!isPython && javaHttpPattern.test(rhs)) {
311
+ sourceType = 'http_param';
312
+ }
313
+ else if (isPython) {
314
+ for (const { pattern, type } of PYTHON_TAINTED_PATTERNS) {
315
+ if (pattern.test(rhs)) {
316
+ sourceType = type;
317
+ break;
318
+ }
319
+ }
320
+ }
321
+ if (sourceType) {
322
+ fieldTaint.set(fieldName, { line: i + 1, type: sourceType });
323
+ }
324
+ }
325
+ if (fieldTaint.size === 0)
326
+ continue;
327
+ // Emit one source per tainted field, bound to `(self|this).<field>` so
328
+ // any method whose body references that expression on a sink line is
329
+ // matched by the variable-name scan in TaintPropagationPass.
330
+ for (const [fieldName, info] of fieldTaint) {
331
+ sources.push({
332
+ type: info.type,
333
+ location: `${type.name}.${SELF}.${fieldName} (constructor-injected field, #78)`,
334
+ severity: 'high',
335
+ line: info.line,
336
+ confidence: 0.85,
337
+ variable: `${SELF}.${fieldName}`,
338
+ });
339
+ }
340
+ // Detect getters / @property accessors whose body is a single
341
+ // `return (this|self).<taintedField>` and emit a source bound to the
342
+ // call-shape used by callers.
343
+ for (const m of type.methods) {
344
+ if (m === ctor)
345
+ continue;
346
+ // A getter takes only the implicit receiver (Python) or no params (Java).
347
+ const nonSelfParams = m.parameters.filter(p => p.name !== 'self' && p.name !== 'this');
348
+ if (nonSelfParams.length !== 0)
349
+ continue;
350
+ const mStart = m.start_line;
351
+ const mEnd = m.end_line;
352
+ let returnedField = null;
353
+ let returnStatementCount = 0;
354
+ // Match `return (this|self).<field>` anywhere on a line — handles
355
+ // both single-line Java getters (`public String getName() { return this.name; }`)
356
+ // and multi-line getters / @property bodies.
357
+ const returnRe = new RegExp(`\\breturn\\s+${SELF}\\.([A-Za-z_]\\w*)\\s*[;}]?`);
358
+ for (let i = mStart - 1; i < Math.min(mEnd, lines.length); i++) {
359
+ const raw = lines[i] ?? '';
360
+ const trimmed = raw.trim();
361
+ if (!trimmed)
362
+ continue;
363
+ if (trimmed.startsWith(commentPrefix))
364
+ continue;
365
+ const rm = trimmed.match(returnRe);
366
+ if (rm) {
367
+ returnedField = rm[1];
368
+ returnStatementCount++;
369
+ }
370
+ else if (/\breturn\b/.test(trimmed)) {
371
+ // Body contains a non-matching return → not a simple getter.
372
+ returnStatementCount = 99;
373
+ break;
374
+ }
375
+ }
376
+ if (returnStatementCount === 1 && returnedField && fieldTaint.has(returnedField)) {
377
+ const fieldInfo = fieldTaint.get(returnedField);
378
+ // Java: caller writes `getName()` / `this.getName()` / `obj.getName()`.
379
+ // → match `\bgetName\b`.
380
+ // Python @property: caller writes `self.target` / `obj.target`.
381
+ // → match `\bself\.target\b` (paren-less access).
382
+ const getterVar = isPython ? `${SELF}.${m.name}` : m.name;
383
+ sources.push({
384
+ type: fieldInfo.type,
385
+ location: `${type.name}.${m.name} returns tainted field '${returnedField}' (#78)`,
386
+ severity: 'high',
387
+ line: m.start_line,
388
+ confidence: 0.85,
389
+ variable: getterVar,
390
+ });
391
+ }
392
+ }
393
+ }
394
+ return sources;
395
+ }
223
396
  function findJavaScriptAssignmentSources(sourceCode, language) {
224
397
  if (!['javascript', 'typescript'].includes(language))
225
398
  return [];
@@ -294,18 +467,18 @@ export function buildPythonTaintedVars(sourceCode) {
294
467
  const line = lines[i];
295
468
  if (line.trimStart().startsWith('#'))
296
469
  continue;
297
- const subscriptAssign = line.match(/^\s*(\w+)\[(['"])([^'"]+)\2\]\s*=\s*(.+)$/);
470
+ const subscriptAssign = line.match(/^\s*([\p{L}\p{N}_]+)\[(['"])([^'"]+)\2\]\s*=\s*(.+)$/u);
298
471
  if (subscriptAssign) {
299
472
  const [, container, , key, rhs2] = subscriptAssign;
300
- const isTaintedRhs = [...tainted.keys()].some(v => new RegExp(`\\b${v}\\b`).test(rhs2));
473
+ const isTaintedRhs = [...tainted.keys()].some(v => new RegExp(`(?<![\\p{L}\\p{N}_])${v}(?![\\p{L}\\p{N}_])`, 'u').test(rhs2));
301
474
  if (isTaintedRhs)
302
475
  containerTainted.set(`${container}['${key}']`, i + 1);
303
476
  continue;
304
477
  }
305
- const setCallMatch = line.match(/^\s*(\w+)\.set\s*\(\s*(['"])([^'"]+)\2\s*,\s*(['"])([^'"]+)\4\s*,\s*(.+?)\s*\)$/);
478
+ const setCallMatch = line.match(/^\s*([\p{L}\p{N}_]+)\.set\s*\(\s*(['"])([^'"]+)\2\s*,\s*(['"])([^'"]+)\4\s*,\s*(.+?)\s*\)$/u);
306
479
  if (setCallMatch) {
307
480
  const [, obj, , section, , key, rhs2] = setCallMatch;
308
- const isTaintedRhs = [...tainted.keys()].some(v => new RegExp(`\\b${v}\\b`).test(rhs2));
481
+ const isTaintedRhs = [...tainted.keys()].some(v => new RegExp(`(?<![\\p{L}\\p{N}_])${v}(?![\\p{L}\\p{N}_])`, 'u').test(rhs2));
309
482
  if (isTaintedRhs)
310
483
  containerTainted.set(`${obj}['${section}']['${key}']`, i + 1);
311
484
  continue;
@@ -316,46 +489,46 @@ export function buildPythonTaintedVars(sourceCode) {
316
489
  // Mark the receiver as tainted so subsequent reads (`lst[0]`, `lst.pop()`,
317
490
  // bare `lst` in a list literal, etc.) propagate taint via the standard
318
491
  // word-boundary scan below.
319
- const containerAppendMatch = line.match(/^\s*(\w+)\.(append|extend|insert|add|push|put|appendleft)\s*\(\s*(.+?)\s*\)\s*$/);
492
+ const containerAppendMatch = line.match(/^\s*([\p{L}\p{N}_]+)\.(append|extend|insert|add|push|put|appendleft)\s*\(\s*(.+?)\s*\)\s*$/u);
320
493
  if (containerAppendMatch) {
321
494
  const [, receiver, , argExpr] = containerAppendMatch;
322
- const argIsTainted = [...tainted.keys()].some(v => new RegExp(`\\b${v}\\b`).test(argExpr));
495
+ const argIsTainted = [...tainted.keys()].some(v => new RegExp(`(?<![\\p{L}\\p{N}_])${v}(?![\\p{L}\\p{N}_])`, 'u').test(argExpr));
323
496
  const argIsDirectSource = PYTHON_TAINTED_PATTERNS.some(p => p.pattern.test(argExpr));
324
497
  if (argIsTainted || argIsDirectSource)
325
498
  tainted.set(receiver, tainted.get(receiver) ?? (i + 1));
326
499
  continue;
327
500
  }
328
- const augAssign = line.match(/^\s*(\w+)\s*\+=\s*(.+)$/);
501
+ const augAssign = line.match(/^\s*([\p{L}\p{N}_]+)\s*\+=\s*(.+)$/u);
329
502
  if (augAssign) {
330
503
  const [, augLhs, augRhs] = augAssign;
331
- const rhsTainted = [...tainted.keys()].some(v => new RegExp(`\\b${v}\\b`).test(augRhs));
504
+ const rhsTainted = [...tainted.keys()].some(v => new RegExp(`(?<![\\p{L}\\p{N}_])${v}(?![\\p{L}\\p{N}_])`, 'u').test(augRhs));
332
505
  if (rhsTainted || tainted.has(augLhs))
333
506
  tainted.set(augLhs, tainted.get(augLhs) ?? (i + 1));
334
507
  continue;
335
508
  }
336
- const forLoopMatch = line.match(/^\s*for\s+(\w+)\s+in\s+(.+?)(?:\s*:\s*)?$/);
509
+ const forLoopMatch = line.match(/^\s*for\s+([\p{L}\p{N}_]+)\s+in\s+(.+?)(?:\s*:\s*)?$/u);
337
510
  if (forLoopMatch) {
338
511
  const [, iterVar, iterExpr] = forLoopMatch;
339
512
  const isDirectSource = PYTHON_TAINTED_PATTERNS.some(p => p.pattern.test(iterExpr));
340
- const isPropagated = [...tainted.keys()].some(v => new RegExp(`\\b${v}\\b`).test(iterExpr));
513
+ const isPropagated = [...tainted.keys()].some(v => new RegExp(`(?<![\\p{L}\\p{N}_])${v}(?![\\p{L}\\p{N}_])`, 'u').test(iterExpr));
341
514
  if (isDirectSource || isPropagated)
342
515
  tainted.set(iterVar, i + 1);
343
516
  continue;
344
517
  }
345
- const assignMatch = line.match(/^\s*(\w+)\s*=\s*(.+)$/);
518
+ const assignMatch = line.match(/^\s*([\p{L}\p{N}_]+)\s*=\s*(.+)$/u);
346
519
  if (!assignMatch)
347
520
  continue;
348
521
  const [, lhs, rhs] = assignMatch;
349
522
  const isDirectSource = PYTHON_TAINTED_PATTERNS.some(p => p.pattern.test(rhs));
350
523
  let propagatedFrom;
351
- const dictAccessMatch = rhs.trim().match(/^(\w+)\[(['"])([^'"]+)\2\]$/);
524
+ const dictAccessMatch = rhs.trim().match(/^([\p{L}\p{N}_]+)\[(['"])([^'"]+)\2\]$/u);
352
525
  if (dictAccessMatch) {
353
526
  const [, container, , key] = dictAccessMatch;
354
527
  if (containerTainted.has(`${container}['${key}']`))
355
528
  propagatedFrom = `${container}['${key}']`;
356
529
  }
357
530
  if (!propagatedFrom) {
358
- const confGetMatch = rhs.trim().match(/^(\w+)\.get\s*\(\s*(['"])([^'"]+)\2\s*,\s*(['"])([^'"]+)\4\s*\)$/);
531
+ const confGetMatch = rhs.trim().match(/^([\p{L}\p{N}_]+)\.get\s*\(\s*(['"])([^'"]+)\2\s*,\s*(['"])([^'"]+)\4\s*\)$/u);
359
532
  if (confGetMatch) {
360
533
  const [, obj, , section, , key] = confGetMatch;
361
534
  if (containerTainted.has(`${obj}['${section}']['${key}']`))
@@ -365,7 +538,7 @@ export function buildPythonTaintedVars(sourceCode) {
365
538
  if (!propagatedFrom) {
366
539
  const isSafeEnvRead = /\bos\.environ\.get\s*\(/.test(rhs) || /\bos\.getenv\s*\(/.test(rhs);
367
540
  if (!isSafeEnvRead)
368
- propagatedFrom = [...tainted.keys()].find(v => new RegExp(`\\b${v}\\b`).test(rhs));
541
+ propagatedFrom = [...tainted.keys()].find(v => new RegExp(`(?<![\\p{L}\\p{N}_])${v}(?![\\p{L}\\p{N}_])`, 'u').test(rhs));
369
542
  }
370
543
  if (isDirectSource) {
371
544
  tainted.set(lhs, i + 1);
@@ -835,4 +1008,99 @@ export function findBashPatternFindings(sourceCode, file) {
835
1008
  }
836
1009
  return findings;
837
1010
  }
1011
+ // ---------------------------------------------------------------------------
1012
+ // Bash regex-allowlist sanitizers (Sprint 11 — #73.2)
1013
+ // ---------------------------------------------------------------------------
1014
+ /**
1015
+ * Detect the idiomatic bash regex-allowlist guard:
1016
+ *
1017
+ * if [[ ! "$var" =~ ^[a-zA-Z0-9_]+$ ]]; then exit 1; fi
1018
+ *
1019
+ * When the guard's `then` branch terminates execution (exit/return/die) and
1020
+ * the regex is a tight character-class allowlist, subsequent uses of `$var`
1021
+ * are constrained to the allowlisted alphabet — effectively a sanitizer.
1022
+ *
1023
+ * We emit `TaintSanitizer` entries at every line from the line AFTER the
1024
+ * `if` through end-of-file. This is intentionally coarse: the test
1025
+ * `checkSanitized` only consults the sink's line, so a per-line emission
1026
+ * gives a simple forward-scoped clear without DFG block tracking. The
1027
+ * sanitizer covers the injection sink-types most relevant to user input
1028
+ * fed to shell utilities.
1029
+ *
1030
+ * Safe-regex predicate rejects anything that isn't anchored, contains
1031
+ * `.*` / `.+`, contains alternation, or contains backrefs.
1032
+ */
1033
+ function findBashRegexAllowlistSanitizers(code) {
1034
+ const sanitizers = [];
1035
+ const lines = code.split('\n');
1036
+ // Captures: 1=variable, 2=regex body, 3=terminator (exit|return|die)
1037
+ const guardRe = /^\s*if\s+\[\[\s*!\s*"?\$\{?(\w+)\}?"?\s*=~\s*(\S+)\s*\]\]\s*;\s*then\s+(exit|return|die)\b/;
1038
+ for (let i = 0; i < lines.length; i++) {
1039
+ const m = guardRe.exec(lines[i]);
1040
+ if (!m)
1041
+ continue;
1042
+ const regexLiteral = m[2];
1043
+ if (!isSafeBashAllowlistRegex(regexLiteral))
1044
+ continue;
1045
+ // Sanitizer applies from the next source line through end-of-file. We
1046
+ // emit per-line entries so the line-keyed `checkSanitized` lookup
1047
+ // finds them at any downstream sink line.
1048
+ const ifLine1Indexed = i + 1;
1049
+ for (let l = ifLine1Indexed + 1; l <= lines.length; l++) {
1050
+ sanitizers.push({
1051
+ type: 'regex_allowlist',
1052
+ method: '=~',
1053
+ line: l,
1054
+ sanitizes: [
1055
+ 'command_injection',
1056
+ 'path_traversal',
1057
+ 'sql_injection',
1058
+ 'code_injection',
1059
+ 'ssrf',
1060
+ 'xss',
1061
+ 'open_redirect',
1062
+ 'log_injection',
1063
+ ],
1064
+ });
1065
+ }
1066
+ }
1067
+ return sanitizers;
1068
+ }
1069
+ /**
1070
+ * A regex literal is a "safe allowlist" if:
1071
+ * - It is anchored at both ends (`^…$`).
1072
+ * - It contains no wildcard quantifier (`.*` / `.+`).
1073
+ * - It contains no alternation (`|`).
1074
+ * - It contains no backreference (`\1`, `\2`, …).
1075
+ * - Every token is a bracketed character class, a plain alnum / safe punct,
1076
+ * an escape, or a `+`/`*`/`?` quantifier — no free-form `.`, no shell
1077
+ * expansion characters.
1078
+ */
1079
+ function isSafeBashAllowlistRegex(literal) {
1080
+ if (!literal.startsWith('^') || !literal.endsWith('$'))
1081
+ return false;
1082
+ const body = literal.slice(1, -1);
1083
+ if (body.length === 0)
1084
+ return false;
1085
+ if (body.includes('.*') || body.includes('.+'))
1086
+ return false;
1087
+ if (body.includes('|'))
1088
+ return false;
1089
+ if (/\\\d/.test(body))
1090
+ return false;
1091
+ // Token whitelist:
1092
+ // - `\[[^\]]+\][+*?]?` — char class with optional quantifier
1093
+ // - `\\.` — escaped metacharacter
1094
+ // - `[A-Za-z0-9_\-./]` — literal safe chars
1095
+ // - `[+*?]` — quantifier on the preceding token
1096
+ const safeToken = /\[[^\]]+\][+*?]?|\\.|[A-Za-z0-9_\-./]|[+*?]/g;
1097
+ let consumed = 0;
1098
+ let match;
1099
+ while ((match = safeToken.exec(body)) !== null) {
1100
+ if (match.index !== consumed)
1101
+ return false;
1102
+ consumed += match[0].length;
1103
+ }
1104
+ return consumed === body.length;
1105
+ }
838
1106
  //# sourceMappingURL=language-sources-pass.js.map
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"missing-public-doc-pass.d.ts","sourceRoot":"","sources":["../../../src/analysis/passes/missing-public-doc-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AA4D9E,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IACjE,eAAe,EAAE,QAAQ,EAAE,CAAC;CAC7B;AAED,qBAAa,oBAAqB,YAAW,YAAY,CAAC,0BAA0B,CAAC;IACnF,QAAQ,CAAC,IAAI,wBAAwB;IACrC,QAAQ,CAAC,QAAQ,EAAG,iBAAiB,CAAU;IAE/C,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,0BAA0B;CA4ElD"}
1
+ {"version":3,"file":"missing-public-doc-pass.d.ts","sourceRoot":"","sources":["../../../src/analysis/passes/missing-public-doc-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AA6D9E,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IACjE,eAAe,EAAE,QAAQ,EAAE,CAAC;CAC7B;AAED,qBAAa,oBAAqB,YAAW,YAAY,CAAC,0BAA0B,CAAC;IACnF,QAAQ,CAAC,IAAI,wBAAwB;IACrC,QAAQ,CAAC,QAAQ,EAAG,iBAAiB,CAAU;IAE/C,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,0BAA0B;CA4ElD"}
@@ -67,6 +67,7 @@ function isPublicMethod(method, language) {
67
67
  return method.modifiers.includes('public');
68
68
  case 'javascript':
69
69
  case 'typescript':
70
+ case 'tsx':
70
71
  return !method.modifiers.includes('private') &&
71
72
  !method.modifiers.includes('protected');
72
73
  case 'python':
@@ -90,7 +91,7 @@ export class MissingPublicDocPass {
90
91
  return { missingDocMethods: [], missingDocTypes: [] };
91
92
  }
92
93
  // Only supported languages.
93
- if (!['java', 'javascript', 'typescript', 'python'].includes(language)) {
94
+ if (!['java', 'javascript', 'typescript', 'tsx', 'python'].includes(language)) {
94
95
  return { missingDocMethods: [], missingDocTypes: [] };
95
96
  }
96
97
  const lines = code.split('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"missing-public-doc-pass.js","sourceRoot":"","sources":["../../../src/analysis/passes/missing-public-doc-pass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"missing-public-doc-pass.js","sourceRoot":"","sources":["../../../src/analysis/passes/missing-public-doc-pass.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sink-filter-pass.d.ts","sourceRoot":"","sources":["../../../src/analysis/passes/sink-filter-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AA4B9E,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,sBAAsB;IACtB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,qBAAa,cAAe,YAAW,YAAY,CAAC,gBAAgB,CAAC;IACnE,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IAExC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,gBAAgB;CAgKxC;AAMD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,KAAK,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AA4I1G,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EACjC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EACrB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CA6E5B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EACjC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EAC3C,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CA2C5B"}
1
+ {"version":3,"file":"sink-filter-pass.d.ts","sourceRoot":"","sources":["../../../src/analysis/passes/sink-filter-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AA4B9E,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,sBAAsB;IACtB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,qBAAa,cAAe,YAAW,YAAY,CAAC,gBAAgB,CAAC;IACnE,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IAExC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,gBAAgB;CAmKxC;AAMD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,KAAK,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AA4I1G,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EACjC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EACrB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CA6E5B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EACjC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EAC3C,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CA2C5B"}
@@ -55,7 +55,10 @@ export class SinkFilterPass {
55
55
  sinks.push(s);
56
56
  }
57
57
  }
58
- const sanitizers = taintMatcher.sanitizers;
58
+ const sanitizers = [
59
+ ...taintMatcher.sanitizers,
60
+ ...(langSources.additionalSanitizers ?? []),
61
+ ];
59
62
  // Stage 1 — dead code
60
63
  let filtered = sinks.filter(sink => !constProp.unreachableLines.has(sink.line));
61
64
  // Stage 2 — clean array elements