circle-ir 3.195.0 → 3.197.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.
- package/dist/analysis/passes/language-sources-pass.d.ts.map +1 -1
- package/dist/analysis/passes/language-sources-pass.js +523 -2
- package/dist/analysis/passes/language-sources-pass.js.map +1 -1
- package/dist/analysis/passes/sink-filter-pass.d.ts.map +1 -1
- package/dist/analysis/passes/sink-filter-pass.js +68 -1
- package/dist/analysis/passes/sink-filter-pass.js.map +1 -1
- package/dist/analysis/passes/taint-matcher-pass.d.ts.map +1 -1
- package/dist/analysis/passes/taint-matcher-pass.js.map +1 -1
- package/dist/analysis/rules.d.ts.map +1 -1
- package/dist/analysis/rules.js +42 -0
- package/dist/analysis/rules.js.map +1 -1
- package/dist/browser/circle-ir.js +362 -4
- package/dist/languages/types.d.ts +3 -3
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +13 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +37 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -25850,6 +25850,9 @@ var LanguageSourcesPass = class {
|
|
|
25850
25850
|
additionalSanitizers.push(...findPythonRegexAllowlistWrapperSanitizers(code));
|
|
25851
25851
|
additionalSanitizers.push(...findPythonSetMembershipXssGuardSanitizers(code));
|
|
25852
25852
|
additionalSanitizers.push(...findPythonTraversalRejectGuardSanitizers(code));
|
|
25853
|
+
additionalSanitizers.push(...findPythonStringLiteralGuardSanitizers(code));
|
|
25854
|
+
additionalSanitizers.push(...findPythonDefaultSaxParserXxeSanitizers(code));
|
|
25855
|
+
additionalSanitizers.push(...findPythonUrlAllowlistRedirectSanitizers(code));
|
|
25853
25856
|
additionalSanitizers.push(...findPythonDefusedXmlSanitizers(code));
|
|
25854
25857
|
additionalSanitizers.push(...findPythonJinjaAutoescapeSanitizers(code));
|
|
25855
25858
|
const pyMisconfigFindings = findPythonPatternFindings(code, graph.ir.meta.file);
|
|
@@ -26464,13 +26467,138 @@ function findPythonAssignmentSources(sourceCode, language) {
|
|
|
26464
26467
|
}
|
|
26465
26468
|
return sources;
|
|
26466
26469
|
}
|
|
26470
|
+
function evaluatePythonConstExpression(expr, consts) {
|
|
26471
|
+
const COMPARISON = /(<=|>=|==|!=|<|>)/;
|
|
26472
|
+
const parts2 = expr.split(COMPARISON);
|
|
26473
|
+
if (parts2.length === 3) {
|
|
26474
|
+
const left = evaluatePythonConstExpression(parts2[0], consts);
|
|
26475
|
+
const right = evaluatePythonConstExpression(parts2[2], consts);
|
|
26476
|
+
if (typeof left !== "number" || typeof right !== "number") return void 0;
|
|
26477
|
+
switch (parts2[1]) {
|
|
26478
|
+
case "<":
|
|
26479
|
+
return left < right;
|
|
26480
|
+
case ">":
|
|
26481
|
+
return left > right;
|
|
26482
|
+
case "<=":
|
|
26483
|
+
return left <= right;
|
|
26484
|
+
case ">=":
|
|
26485
|
+
return left >= right;
|
|
26486
|
+
case "==":
|
|
26487
|
+
return left === right;
|
|
26488
|
+
case "!=":
|
|
26489
|
+
return left !== right;
|
|
26490
|
+
default:
|
|
26491
|
+
return void 0;
|
|
26492
|
+
}
|
|
26493
|
+
}
|
|
26494
|
+
if (parts2.length !== 1) return void 0;
|
|
26495
|
+
const matched = expr.match(/\d+|[A-Za-z_][A-Za-z0-9_]*|\/\/|[-+*/%()]|\S/g);
|
|
26496
|
+
if (!matched) return void 0;
|
|
26497
|
+
const tokens = matched;
|
|
26498
|
+
let pos = 0;
|
|
26499
|
+
const peek = () => tokens[pos];
|
|
26500
|
+
const parseFactor = () => {
|
|
26501
|
+
const tok = tokens[pos++];
|
|
26502
|
+
if (tok === void 0) return void 0;
|
|
26503
|
+
if (tok === "(") {
|
|
26504
|
+
const inner = parseSum();
|
|
26505
|
+
if (tokens[pos++] !== ")") return void 0;
|
|
26506
|
+
return inner;
|
|
26507
|
+
}
|
|
26508
|
+
if (tok === "-") {
|
|
26509
|
+
const operand = parseFactor();
|
|
26510
|
+
return operand === void 0 ? void 0 : -operand;
|
|
26511
|
+
}
|
|
26512
|
+
if (/^\d+$/.test(tok)) return Number(tok);
|
|
26513
|
+
if (/^[A-Za-z_]/.test(tok)) return consts.get(tok);
|
|
26514
|
+
return void 0;
|
|
26515
|
+
};
|
|
26516
|
+
const parseTerm = () => {
|
|
26517
|
+
let value = parseFactor();
|
|
26518
|
+
if (value === void 0) return void 0;
|
|
26519
|
+
while (peek() === "*" || peek() === "/" || peek() === "//" || peek() === "%") {
|
|
26520
|
+
const op = tokens[pos++];
|
|
26521
|
+
const rhs = parseFactor();
|
|
26522
|
+
if (rhs === void 0) return void 0;
|
|
26523
|
+
if ((op === "/" || op === "//" || op === "%") && rhs === 0) return void 0;
|
|
26524
|
+
if (op === "*") value *= rhs;
|
|
26525
|
+
else if (op === "/") value /= rhs;
|
|
26526
|
+
else if (op === "//") value = Math.floor(value / rhs);
|
|
26527
|
+
else value = (value % rhs + rhs) % rhs;
|
|
26528
|
+
}
|
|
26529
|
+
return value;
|
|
26530
|
+
};
|
|
26531
|
+
function parseSum() {
|
|
26532
|
+
let value = parseTerm();
|
|
26533
|
+
if (value === void 0) return void 0;
|
|
26534
|
+
while (peek() === "+" || peek() === "-") {
|
|
26535
|
+
const op = tokens[pos++];
|
|
26536
|
+
const rhs = parseTerm();
|
|
26537
|
+
if (rhs === void 0) return void 0;
|
|
26538
|
+
value = op === "+" ? value + rhs : value - rhs;
|
|
26539
|
+
}
|
|
26540
|
+
return value;
|
|
26541
|
+
}
|
|
26542
|
+
const result = parseSum();
|
|
26543
|
+
return pos === tokens.length ? result : void 0;
|
|
26544
|
+
}
|
|
26545
|
+
function normalizeListIndex(index, length) {
|
|
26546
|
+
const resolved = index < 0 ? length + index : index;
|
|
26547
|
+
return resolved >= 0 && resolved < length ? resolved : void 0;
|
|
26548
|
+
}
|
|
26549
|
+
function computeDeadPythonBranchLines(lines) {
|
|
26550
|
+
const dead = /* @__PURE__ */ new Set();
|
|
26551
|
+
const consts = /* @__PURE__ */ new Map();
|
|
26552
|
+
const indentOf = (line) => line.length - line.trimStart().length;
|
|
26553
|
+
for (let i2 = 0; i2 < lines.length; i2++) {
|
|
26554
|
+
const line = lines[i2];
|
|
26555
|
+
const assign = line.match(/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=(?!=)\s*(.+)$/);
|
|
26556
|
+
if (assign) {
|
|
26557
|
+
const value = evaluatePythonConstExpression(assign[2].trim(), consts);
|
|
26558
|
+
if (typeof value === "number") consts.set(assign[1], value);
|
|
26559
|
+
else consts.delete(assign[1]);
|
|
26560
|
+
}
|
|
26561
|
+
const ifMatch = line.match(/^(\s*)if\s+(.+?)\s*:\s*$/);
|
|
26562
|
+
if (!ifMatch) continue;
|
|
26563
|
+
const indent = ifMatch[1].length;
|
|
26564
|
+
const decided = evaluatePythonConstExpression(ifMatch[2].trim(), consts);
|
|
26565
|
+
if (decided !== true && decided !== false) continue;
|
|
26566
|
+
const thenStart = i2 + 1;
|
|
26567
|
+
let cursor = thenStart;
|
|
26568
|
+
while (cursor < lines.length && (lines[cursor].trim() === "" || indentOf(lines[cursor]) > indent)) {
|
|
26569
|
+
cursor++;
|
|
26570
|
+
}
|
|
26571
|
+
const thenEnd = cursor - 1;
|
|
26572
|
+
let elseStart = -1;
|
|
26573
|
+
let elseEnd = -1;
|
|
26574
|
+
if (cursor < lines.length && indentOf(lines[cursor]) === indent) {
|
|
26575
|
+
if (/^\s*elif\b/.test(lines[cursor])) continue;
|
|
26576
|
+
if (/^\s*else\s*:\s*$/.test(lines[cursor])) {
|
|
26577
|
+
elseStart = cursor + 1;
|
|
26578
|
+
let k = elseStart;
|
|
26579
|
+
while (k < lines.length && (lines[k].trim() === "" || indentOf(lines[k]) > indent)) k++;
|
|
26580
|
+
elseEnd = k - 1;
|
|
26581
|
+
}
|
|
26582
|
+
}
|
|
26583
|
+
if (decided === true) {
|
|
26584
|
+
for (let l = elseStart; l >= 0 && l <= elseEnd; l++) dead.add(l);
|
|
26585
|
+
} else {
|
|
26586
|
+
for (let l = thenStart; l <= thenEnd; l++) dead.add(l);
|
|
26587
|
+
}
|
|
26588
|
+
}
|
|
26589
|
+
return dead;
|
|
26590
|
+
}
|
|
26467
26591
|
function buildPythonTaintedVars(sourceCode) {
|
|
26468
26592
|
const tainted = /* @__PURE__ */ new Map();
|
|
26469
26593
|
const containerTainted = /* @__PURE__ */ new Map();
|
|
26470
26594
|
const lines = sourceCode.split("\n");
|
|
26595
|
+
const deadBranchLines = computeDeadPythonBranchLines(lines);
|
|
26596
|
+
const listElems = /* @__PURE__ */ new Map();
|
|
26597
|
+
const intConsts = /* @__PURE__ */ new Map();
|
|
26471
26598
|
for (let i2 = 0; i2 < lines.length; i2++) {
|
|
26472
26599
|
const line = lines[i2];
|
|
26473
26600
|
if (line.trimStart().startsWith("#")) continue;
|
|
26601
|
+
if (deadBranchLines.has(i2)) continue;
|
|
26474
26602
|
const subscriptAssign = line.match(/^\s*([\p{L}\p{N}_]+)\[(['"])([^'"]+)\2\]\s*=\s*(.+)$/u);
|
|
26475
26603
|
if (subscriptAssign) {
|
|
26476
26604
|
const [, container, , key, rhs2] = subscriptAssign;
|
|
@@ -26487,10 +26615,48 @@ function buildPythonTaintedVars(sourceCode) {
|
|
|
26487
26615
|
}
|
|
26488
26616
|
const containerAppendMatch = line.match(/^\s*([\p{L}\p{N}_]+)\.(append|extend|insert|add|push|put|appendleft)\s*\(\s*(.+?)\s*\)\s*$/u);
|
|
26489
26617
|
if (containerAppendMatch) {
|
|
26490
|
-
const [, receiver, , argExpr] = containerAppendMatch;
|
|
26618
|
+
const [, receiver, method, argExpr] = containerAppendMatch;
|
|
26491
26619
|
const argIsTainted = [...tainted.keys()].some((v) => new RegExp(`(?<![\\p{L}\\p{N}_])${v}(?![\\p{L}\\p{N}_])`, "u").test(argExpr));
|
|
26492
26620
|
const argIsDirectSource = PYTHON_TAINTED_PATTERNS2.some((p) => p.pattern.test(argExpr));
|
|
26493
26621
|
if (argIsTainted || argIsDirectSource) tainted.set(receiver, tainted.get(receiver) ?? i2 + 1);
|
|
26622
|
+
const elems = listElems.get(receiver);
|
|
26623
|
+
if (elems) {
|
|
26624
|
+
if (method === "append") {
|
|
26625
|
+
elems.push(argIsTainted || argIsDirectSource);
|
|
26626
|
+
} else if (method === "insert") {
|
|
26627
|
+
const insertAt = argExpr.match(/^(-?\d+)\s*,\s*(.+)$/);
|
|
26628
|
+
if (insertAt) {
|
|
26629
|
+
const idx = normalizeListIndex(Number(insertAt[1]), elems.length);
|
|
26630
|
+
const valueExpr = insertAt[2];
|
|
26631
|
+
const valueTainted = [...tainted.keys()].some((v) => new RegExp(`(?<![\\p{L}\\p{N}_])${v}(?![\\p{L}\\p{N}_])`, "u").test(valueExpr)) || PYTHON_TAINTED_PATTERNS2.some((p) => p.pattern.test(valueExpr));
|
|
26632
|
+
if (idx !== void 0) elems.splice(idx, 0, valueTainted);
|
|
26633
|
+
else listElems.delete(receiver);
|
|
26634
|
+
} else {
|
|
26635
|
+
listElems.delete(receiver);
|
|
26636
|
+
}
|
|
26637
|
+
} else {
|
|
26638
|
+
listElems.delete(receiver);
|
|
26639
|
+
}
|
|
26640
|
+
}
|
|
26641
|
+
continue;
|
|
26642
|
+
}
|
|
26643
|
+
const popMatch = line.match(/^\s*(?:([\p{L}\p{N}_]+)\s*=\s*)?([\p{L}\p{N}_]+)\.pop\s*\(\s*(-?\d+)?\s*\)\s*$/u);
|
|
26644
|
+
const delMatch = line.match(/^\s*del\s+([\p{L}\p{N}_]+)\s*\[\s*(-?\d+)\s*\]\s*$/u);
|
|
26645
|
+
if (popMatch || delMatch) {
|
|
26646
|
+
const receiver = popMatch ? popMatch[2] : delMatch[1];
|
|
26647
|
+
const rawIndex = popMatch ? popMatch[3] !== void 0 ? Number(popMatch[3]) : -1 : Number(delMatch[2]);
|
|
26648
|
+
const elems = listElems.get(receiver);
|
|
26649
|
+
if (elems) {
|
|
26650
|
+
const idx = normalizeListIndex(rawIndex, elems.length);
|
|
26651
|
+
if (idx === void 0) listElems.delete(receiver);
|
|
26652
|
+
else {
|
|
26653
|
+
const [removed] = elems.splice(idx, 1);
|
|
26654
|
+
if (popMatch && popMatch[1]) {
|
|
26655
|
+
if (removed) tainted.set(popMatch[1], i2 + 1);
|
|
26656
|
+
else tainted.delete(popMatch[1]);
|
|
26657
|
+
}
|
|
26658
|
+
}
|
|
26659
|
+
}
|
|
26494
26660
|
continue;
|
|
26495
26661
|
}
|
|
26496
26662
|
const augAssign = line.match(/^\s*([\p{L}\p{N}_]+)\s*\+=\s*(.+)$/u);
|
|
@@ -26510,7 +26676,48 @@ function buildPythonTaintedVars(sourceCode) {
|
|
|
26510
26676
|
}
|
|
26511
26677
|
const assignMatch = line.match(/^\s*([\p{L}\p{N}_]+)\s*=\s*(.+)$/u);
|
|
26512
26678
|
if (!assignMatch) continue;
|
|
26513
|
-
const [, lhs,
|
|
26679
|
+
const [, lhs, rhsRaw] = assignMatch;
|
|
26680
|
+
const constValue = evaluatePythonConstExpression(rhsRaw.trim(), intConsts);
|
|
26681
|
+
if (typeof constValue === "number") intConsts.set(lhs, constValue);
|
|
26682
|
+
else intConsts.delete(lhs);
|
|
26683
|
+
let rhs = rhsRaw;
|
|
26684
|
+
const ternary = rhsRaw.match(/^(.+?)\s+if\s+(.+?)\s+else\s+(.+)$/);
|
|
26685
|
+
if (ternary) {
|
|
26686
|
+
const decided = evaluatePythonConstExpression(ternary[2].trim(), intConsts);
|
|
26687
|
+
if (decided === true) rhs = ternary[1].trim();
|
|
26688
|
+
else if (decided === false) rhs = ternary[3].trim();
|
|
26689
|
+
}
|
|
26690
|
+
const listLiteral = rhs.trim().match(/^\[\s*(.*?)\s*\]$/);
|
|
26691
|
+
if (listLiteral) {
|
|
26692
|
+
const inner = listLiteral[1];
|
|
26693
|
+
if (inner === "") {
|
|
26694
|
+
listElems.set(lhs, []);
|
|
26695
|
+
} else if (!inner.includes("[") && !inner.includes("(")) {
|
|
26696
|
+
listElems.set(
|
|
26697
|
+
lhs,
|
|
26698
|
+
inner.split(",").map((part) => {
|
|
26699
|
+
const expr = part.trim();
|
|
26700
|
+
return [...tainted.keys()].some((v) => new RegExp(`(?<![\\p{L}\\p{N}_])${v}(?![\\p{L}\\p{N}_])`, "u").test(expr)) || PYTHON_TAINTED_PATTERNS2.some((p) => p.pattern.test(expr));
|
|
26701
|
+
})
|
|
26702
|
+
);
|
|
26703
|
+
} else {
|
|
26704
|
+
listElems.delete(lhs);
|
|
26705
|
+
}
|
|
26706
|
+
} else {
|
|
26707
|
+
listElems.delete(lhs);
|
|
26708
|
+
}
|
|
26709
|
+
const indexRead = rhs.trim().match(/^([\p{L}\p{N}_]+)\s*\[\s*(-?\d+)\s*\]$/u);
|
|
26710
|
+
if (indexRead) {
|
|
26711
|
+
const elems = listElems.get(indexRead[1]);
|
|
26712
|
+
if (elems) {
|
|
26713
|
+
const idx = normalizeListIndex(Number(indexRead[2]), elems.length);
|
|
26714
|
+
if (idx !== void 0) {
|
|
26715
|
+
if (elems[idx]) tainted.set(lhs, i2 + 1);
|
|
26716
|
+
else tainted.delete(lhs);
|
|
26717
|
+
continue;
|
|
26718
|
+
}
|
|
26719
|
+
}
|
|
26720
|
+
}
|
|
26514
26721
|
const isDirectSource = PYTHON_TAINTED_PATTERNS2.some((p) => p.pattern.test(rhs));
|
|
26515
26722
|
let propagatedFrom;
|
|
26516
26723
|
const dictAccessMatch = rhs.trim().match(/^([\p{L}\p{N}_]+)\[(['"])([^'"]+)\2\]$/u);
|
|
@@ -27687,6 +27894,132 @@ function findPythonTraversalRejectGuardSanitizers(code) {
|
|
|
27687
27894
|
}
|
|
27688
27895
|
return sanitizers;
|
|
27689
27896
|
}
|
|
27897
|
+
function findPythonStringLiteralGuardSanitizers(code) {
|
|
27898
|
+
const sanitizers = [];
|
|
27899
|
+
const lines = code.split("\n");
|
|
27900
|
+
const terminator = /\b(return|raise|abort\s*\(|sys\.exit\s*\()/;
|
|
27901
|
+
const Q = `(?:'(?:\\\\')'|"'"|'"'|"(?:\\\\")")`;
|
|
27902
|
+
for (let i2 = 0; i2 < lines.length; i2++) {
|
|
27903
|
+
const guard = lines[i2].match(
|
|
27904
|
+
new RegExp(
|
|
27905
|
+
`^(\\s*)if\\s+not\\s+([A-Za-z_][A-Za-z0-9_]*)\\.startswith\\(\\s*${Q}\\s*\\)\\s+or\\s+not\\s+\\2\\.endswith\\(\\s*${Q}\\s*\\)\\s+or\\s+${Q}\\s+in\\s+\\2\\[1:-1\\]\\s*:\\s*$`
|
|
27906
|
+
)
|
|
27907
|
+
);
|
|
27908
|
+
if (!guard) continue;
|
|
27909
|
+
const guardIndent = guard[1].length;
|
|
27910
|
+
const guardedVar = guard[2];
|
|
27911
|
+
let bodyHasTerminator = false;
|
|
27912
|
+
let blockEnd = -1;
|
|
27913
|
+
const maxScan = Math.min(lines.length, i2 + 26);
|
|
27914
|
+
for (let j = i2 + 1; j < maxScan; j++) {
|
|
27915
|
+
const line = lines[j];
|
|
27916
|
+
if (line.trim() === "") continue;
|
|
27917
|
+
const indent = line.length - line.trimStart().length;
|
|
27918
|
+
if (indent <= guardIndent) {
|
|
27919
|
+
blockEnd = j - 1;
|
|
27920
|
+
break;
|
|
27921
|
+
}
|
|
27922
|
+
if (terminator.test(line)) bodyHasTerminator = true;
|
|
27923
|
+
}
|
|
27924
|
+
if (blockEnd === -1) blockEnd = Math.min(lines.length - 1, i2 + 25);
|
|
27925
|
+
if (!bodyHasTerminator) continue;
|
|
27926
|
+
const varRe = new RegExp(`\\b${guardedVar}\\b`);
|
|
27927
|
+
for (let l = blockEnd + 2; l <= lines.length; l++) {
|
|
27928
|
+
if (!varRe.test(lines[l - 1])) continue;
|
|
27929
|
+
sanitizers.push({
|
|
27930
|
+
type: "python_string_literal_guard",
|
|
27931
|
+
method: "if",
|
|
27932
|
+
line: l,
|
|
27933
|
+
sanitizes: ["code_injection"]
|
|
27934
|
+
});
|
|
27935
|
+
}
|
|
27936
|
+
}
|
|
27937
|
+
return sanitizers;
|
|
27938
|
+
}
|
|
27939
|
+
function findPythonDefaultSaxParserXxeSanitizers(code) {
|
|
27940
|
+
const sanitizers = [];
|
|
27941
|
+
const lines = code.split("\n");
|
|
27942
|
+
const parserVars = /* @__PURE__ */ new Set();
|
|
27943
|
+
for (const line of lines) {
|
|
27944
|
+
const made = line.match(/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(?:xml\.)?sax\.make_parser\s*\(/);
|
|
27945
|
+
if (made) parserVars.add(made[1]);
|
|
27946
|
+
}
|
|
27947
|
+
if (parserVars.size === 0) return sanitizers;
|
|
27948
|
+
for (const line of lines) {
|
|
27949
|
+
for (const parser of [...parserVars]) {
|
|
27950
|
+
const enabled = new RegExp(
|
|
27951
|
+
`\\b${parser}\\.setFeature\\s*\\([^,]*external_(?:ges|pes)[^,]*,\\s*True\\s*\\)`
|
|
27952
|
+
);
|
|
27953
|
+
const resolver = new RegExp(`\\b${parser}\\.setEntityResolver\\s*\\(`);
|
|
27954
|
+
const rebound = new RegExp(`^\\s*${parser}\\s*=(?!=)`);
|
|
27955
|
+
if (enabled.test(line) || resolver.test(line)) parserVars.delete(parser);
|
|
27956
|
+
else if (rebound.test(line) && !/make_parser\s*\(/.test(line)) parserVars.delete(parser);
|
|
27957
|
+
}
|
|
27958
|
+
}
|
|
27959
|
+
if (parserVars.size === 0) return sanitizers;
|
|
27960
|
+
for (let i2 = 0; i2 < lines.length; i2++) {
|
|
27961
|
+
const line = lines[i2];
|
|
27962
|
+
const parseCall = /\b(?:minidom\.)?parseString\s*\(|\b(?:minidom\.)?parse\s*\(|\bsax\.parse(?:String)?\s*\(/;
|
|
27963
|
+
if (!parseCall.test(line)) continue;
|
|
27964
|
+
const usesDefaultParser = [...parserVars].some((p) => new RegExp(`\\b${p}\\b`).test(line));
|
|
27965
|
+
if (!usesDefaultParser) continue;
|
|
27966
|
+
sanitizers.push({
|
|
27967
|
+
type: "python_default_sax_parser",
|
|
27968
|
+
method: "make_parser",
|
|
27969
|
+
line: i2 + 1,
|
|
27970
|
+
sanitizes: ["xxe"]
|
|
27971
|
+
});
|
|
27972
|
+
}
|
|
27973
|
+
return sanitizers;
|
|
27974
|
+
}
|
|
27975
|
+
function findPythonUrlAllowlistRedirectSanitizers(code) {
|
|
27976
|
+
const sanitizers = [];
|
|
27977
|
+
const lines = code.split("\n");
|
|
27978
|
+
const parsedFrom = /* @__PURE__ */ new Map();
|
|
27979
|
+
for (const line of lines) {
|
|
27980
|
+
const m = line.match(
|
|
27981
|
+
/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(?:urllib\.parse\.)?urlparse\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)\s*\)/
|
|
27982
|
+
);
|
|
27983
|
+
if (m) parsedFrom.set(m[1], m[2]);
|
|
27984
|
+
}
|
|
27985
|
+
if (parsedFrom.size === 0) return sanitizers;
|
|
27986
|
+
const terminator = /\b(return|raise|abort\s*\(|sys\.exit\s*\()/;
|
|
27987
|
+
for (let i2 = 0; i2 < lines.length; i2++) {
|
|
27988
|
+
const guard = lines[i2].match(
|
|
27989
|
+
/^(\s*)if\s+([A-Za-z_][A-Za-z0-9_]*)\.netloc\s+not\s+in\s+[[({]/
|
|
27990
|
+
);
|
|
27991
|
+
if (!guard) continue;
|
|
27992
|
+
const guardIndent = guard[1].length;
|
|
27993
|
+
const rawVar = parsedFrom.get(guard[2]);
|
|
27994
|
+
if (!rawVar) continue;
|
|
27995
|
+
let bodyHasTerminator = false;
|
|
27996
|
+
let blockEnd = -1;
|
|
27997
|
+
const maxScan = Math.min(lines.length, i2 + 26);
|
|
27998
|
+
for (let j = i2 + 1; j < maxScan; j++) {
|
|
27999
|
+
const line = lines[j];
|
|
28000
|
+
if (line.trim() === "") continue;
|
|
28001
|
+
const indent = line.length - line.trimStart().length;
|
|
28002
|
+
if (indent <= guardIndent) {
|
|
28003
|
+
blockEnd = j - 1;
|
|
28004
|
+
break;
|
|
28005
|
+
}
|
|
28006
|
+
if (terminator.test(line)) bodyHasTerminator = true;
|
|
28007
|
+
}
|
|
28008
|
+
if (blockEnd === -1) blockEnd = Math.min(lines.length - 1, i2 + 25);
|
|
28009
|
+
if (!bodyHasTerminator) continue;
|
|
28010
|
+
const varRe = new RegExp(`\\b${rawVar}\\b`);
|
|
28011
|
+
for (let l = blockEnd + 2; l <= lines.length; l++) {
|
|
28012
|
+
if (!varRe.test(lines[l - 1])) continue;
|
|
28013
|
+
sanitizers.push({
|
|
28014
|
+
type: "python_url_allowlist_guard",
|
|
28015
|
+
method: "if",
|
|
28016
|
+
line: l,
|
|
28017
|
+
sanitizes: ["open_redirect"]
|
|
28018
|
+
});
|
|
28019
|
+
}
|
|
28020
|
+
}
|
|
28021
|
+
return sanitizers;
|
|
28022
|
+
}
|
|
27690
28023
|
function findPythonDefusedXmlSanitizers(code) {
|
|
27691
28024
|
const sanitizers = [];
|
|
27692
28025
|
const lines = code.split("\n");
|
|
@@ -32208,15 +32541,19 @@ var SinkFilterPass = class {
|
|
|
32208
32541
|
filtered = filtered.filter((sink) => {
|
|
32209
32542
|
if (sink.type !== "xpath_injection") return true;
|
|
32210
32543
|
const sinkLineText = sourceLines[sink.line - 1] ?? "";
|
|
32211
|
-
const
|
|
32212
|
-
(v) => new RegExp(
|
|
32544
|
+
const taintedValueVars = [...pyTaintedVars.keys()].filter(
|
|
32545
|
+
(v) => new RegExp(`(?<![\\w.])${v}\\b(?!\\s*=(?!=))`).test(sinkLineText)
|
|
32213
32546
|
);
|
|
32547
|
+
const taintedVarOnLine = taintedValueVars[0];
|
|
32214
32548
|
const oopVarOnLine = [...oopFieldVars].find(
|
|
32215
32549
|
(v) => sinkLineText.includes(v)
|
|
32216
32550
|
);
|
|
32217
32551
|
if (oopVarOnLine) return true;
|
|
32218
32552
|
if (!taintedVarOnLine) return false;
|
|
32553
|
+
const neutralised = (v) => pySanitizedVars.has(v) || new RegExp(`\\.xpath\\s*\\([^)]*\\b\\w+\\s*=\\s*\\b${v}\\b`).test(sinkLineText) || isXPathQuoteEscapedOnLine(sinkLineText, v);
|
|
32554
|
+
if (taintedValueVars.every(neutralised)) return false;
|
|
32219
32555
|
if (pySanitizedVars.has(taintedVarOnLine)) return false;
|
|
32556
|
+
if (isXPathQuoteEscapedOnLine(sinkLineText, taintedVarOnLine)) return false;
|
|
32220
32557
|
if (new RegExp(`\\.xpath\\s*\\([^)]*\\b\\w+\\s*=\\s*\\b${taintedVarOnLine}\\b`).test(sinkLineText)) return false;
|
|
32221
32558
|
return true;
|
|
32222
32559
|
});
|
|
@@ -33192,6 +33529,27 @@ function filterSanitizedSinks(sinks, sanitizers, calls) {
|
|
|
33192
33529
|
return true;
|
|
33193
33530
|
});
|
|
33194
33531
|
}
|
|
33532
|
+
function isXPathQuoteEscapedOnLine(lineText, varName) {
|
|
33533
|
+
const STRING_LITERAL = `'(?:[^'\\\\]|\\\\.)*'|"(?:[^"\\\\]|\\\\.)*"`;
|
|
33534
|
+
const replaceCall = new RegExp(
|
|
33535
|
+
`^${varName}\\.replace\\s*\\(\\s*(${STRING_LITERAL})\\s*,\\s*(${STRING_LITERAL})\\s*\\)`
|
|
33536
|
+
);
|
|
33537
|
+
const decode = (literal) => literal.slice(1, -1).replace(/\\(.)/g, "$1");
|
|
33538
|
+
const occurrence = new RegExp(`(?<![\\w.])${varName}\\b`, "g");
|
|
33539
|
+
let match;
|
|
33540
|
+
let seen = 0;
|
|
33541
|
+
while ((match = occurrence.exec(lineText)) !== null) {
|
|
33542
|
+
seen++;
|
|
33543
|
+
const rest = lineText.slice(match.index);
|
|
33544
|
+
const call = replaceCall.exec(rest);
|
|
33545
|
+
if (!call) return false;
|
|
33546
|
+
const searched = decode(call[1]);
|
|
33547
|
+
const replacement = decode(call[2]);
|
|
33548
|
+
if (searched !== "'" && searched !== '"') return false;
|
|
33549
|
+
if (replacement.includes("'") || replacement.includes('"')) return false;
|
|
33550
|
+
}
|
|
33551
|
+
return seen > 0;
|
|
33552
|
+
}
|
|
33195
33553
|
|
|
33196
33554
|
// src/analysis/passes/sink-semantics-pass.ts
|
|
33197
33555
|
function buildRegistry(entries) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Each language (Java, JavaScript, Python, Rust, Bash, HTML) implements this interface.
|
|
6
6
|
*/
|
|
7
7
|
import type { Parser, Node as SyntaxNode, Tree } from 'web-tree-sitter';
|
|
8
|
-
import type { TypeInfo, CallInfo, ImportInfo } from '../types/index.js';
|
|
8
|
+
import type { TypeInfo, CallInfo, ImportInfo, SourceType, SinkType } from '../types/index.js';
|
|
9
9
|
/**
|
|
10
10
|
* Supported languages for analysis
|
|
11
11
|
*/
|
|
@@ -139,7 +139,7 @@ export interface TaintSourcePattern {
|
|
|
139
139
|
class?: string;
|
|
140
140
|
annotation?: string;
|
|
141
141
|
parameterPattern?: RegExp;
|
|
142
|
-
type:
|
|
142
|
+
type: SourceType;
|
|
143
143
|
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
144
144
|
confidence: number;
|
|
145
145
|
returnTainted?: boolean;
|
|
@@ -151,7 +151,7 @@ export interface TaintSourcePattern {
|
|
|
151
151
|
export interface TaintSinkPattern {
|
|
152
152
|
method: string;
|
|
153
153
|
class?: string;
|
|
154
|
-
type:
|
|
154
|
+
type: SinkType;
|
|
155
155
|
cwe: string;
|
|
156
156
|
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
157
157
|
argPositions: number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/languages/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EACV,QAAQ,EAER,QAAQ,EACR,UAAU,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/languages/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -179,8 +179,19 @@ export interface TaintFlowStep {
|
|
|
179
179
|
line: number;
|
|
180
180
|
type: 'source' | 'assignment' | 'use' | 'return' | 'field' | 'sink';
|
|
181
181
|
}
|
|
182
|
-
|
|
183
|
-
|
|
182
|
+
/**
|
|
183
|
+
* Every taint-source category the engine can emit.
|
|
184
|
+
*
|
|
185
|
+
* Exported as a runtime array, not just a type, for two reasons: the
|
|
186
|
+
* conformance test needs to check emitted values against it, and consumers
|
|
187
|
+
* switching on `TaintSource.type` can build an exhaustive map from it instead
|
|
188
|
+
* of hand-copying the list. An unmatched source type is a *silent* failure
|
|
189
|
+
* downstream — it falls through to a default branch rather than throwing —
|
|
190
|
+
* so having the set available at runtime is what makes that checkable.
|
|
191
|
+
*/
|
|
192
|
+
export declare const SOURCE_TYPES: readonly ["http_param", "http_body", "http_header", "http_cookie", "http_path", "http_query", "io_input", "env_input", "db_input", "network_input", "file_input", "dom_input", "config_param", "interprocedural_param", "plugin_param", "constructor_field", "cli_arg", "file_upload", "http_response", "message_input", "navigation_param", "storage_input", "url_param", "user_input", "env_var"];
|
|
193
|
+
export type SourceType = (typeof SOURCE_TYPES)[number];
|
|
194
|
+
export type SinkType = "sql_injection" | "nosql_injection" | "command_injection" | "path_traversal" | "xss" | "xxe" | "deserialization" | "ldap_injection" | "xpath_injection" | "ssrf" | "open_redirect" | "code_injection" | "log_injection" | "redos" | "format_string" | "crlf" | "mass_assignment" | "mybatis_mapper_call" | "weak_random" | "weak_hash" | "weak_crypto" | "insecure_cookie" | "trust_boundary" | "prompt_injection" | "insecure_storage" | "prototype_pollution" | "regex_dos" | "unsafe_memory" | "external_taint_escape";
|
|
184
195
|
export type Severity = "critical" | "high" | "medium" | "low";
|
|
185
196
|
/**
|
|
186
197
|
* Project shape axis of the project-profile model (added in 3.106.0).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js
CHANGED
|
@@ -3,5 +3,41 @@
|
|
|
3
3
|
*
|
|
4
4
|
* These types conform to docs/SPEC.md
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Every taint-source category the engine can emit.
|
|
8
|
+
*
|
|
9
|
+
* Exported as a runtime array, not just a type, for two reasons: the
|
|
10
|
+
* conformance test needs to check emitted values against it, and consumers
|
|
11
|
+
* switching on `TaintSource.type` can build an exhaustive map from it instead
|
|
12
|
+
* of hand-copying the list. An unmatched source type is a *silent* failure
|
|
13
|
+
* downstream — it falls through to a default branch rather than throwing —
|
|
14
|
+
* so having the set available at runtime is what makes that checkable.
|
|
15
|
+
*/
|
|
16
|
+
export const SOURCE_TYPES = [
|
|
17
|
+
"http_param",
|
|
18
|
+
"http_body",
|
|
19
|
+
"http_header",
|
|
20
|
+
"http_cookie",
|
|
21
|
+
"http_path",
|
|
22
|
+
"http_query",
|
|
23
|
+
"io_input",
|
|
24
|
+
"env_input",
|
|
25
|
+
"db_input",
|
|
26
|
+
"network_input",
|
|
27
|
+
"file_input",
|
|
28
|
+
"dom_input",
|
|
29
|
+
"config_param",
|
|
30
|
+
"interprocedural_param",
|
|
31
|
+
"plugin_param",
|
|
32
|
+
"constructor_field",
|
|
33
|
+
"cli_arg",
|
|
34
|
+
"file_upload",
|
|
35
|
+
"http_response",
|
|
36
|
+
"message_input",
|
|
37
|
+
"navigation_param",
|
|
38
|
+
"storage_input",
|
|
39
|
+
"url_param",
|
|
40
|
+
"user_input",
|
|
41
|
+
"env_var",
|
|
42
|
+
];
|
|
7
43
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiOH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,YAAY;IACZ,WAAW;IACX,aAAa;IACb,aAAa;IACb,WAAW;IACX,YAAY;IACZ,UAAU;IACV,WAAW;IACX,UAAU;IACV,eAAe;IACf,YAAY;IACZ,WAAW;IACX,cAAc;IACd,uBAAuB;IACvB,cAAc;IACd,mBAAmB;IACnB,SAAS;IACT,aAAa;IACb,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,WAAW;IACX,YAAY;IACZ,SAAS;CACD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "circle-ir",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.197.0",
|
|
4
4
|
"description": "High-performance Static Application Security Testing (SAST) library for detecting security vulnerabilities through taint analysis",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|