circle-ir 3.154.0 → 3.155.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/configs/sinks/code_injection.yaml +2 -1
- package/configs/sinks/javascript_dom_xss.yaml +4 -2
- package/configs/sinks/xpath.yaml +40 -0
- package/dist/analysis/config-loader.d.ts.map +1 -1
- package/dist/analysis/config-loader.js +3 -0
- package/dist/analysis/config-loader.js.map +1 -1
- package/dist/analysis/dfg-walk.d.ts +36 -0
- package/dist/analysis/dfg-walk.d.ts.map +1 -0
- package/dist/analysis/dfg-walk.js +59 -0
- package/dist/analysis/dfg-walk.js.map +1 -0
- package/dist/analysis/passes/language-sources-pass.d.ts.map +1 -1
- package/dist/analysis/passes/language-sources-pass.js +22 -0
- package/dist/analysis/passes/language-sources-pass.js.map +1 -1
- package/dist/analysis/passes/weak-crypto-pass.d.ts.map +1 -1
- package/dist/analysis/passes/weak-crypto-pass.js +6 -0
- package/dist/analysis/passes/weak-crypto-pass.js.map +1 -1
- package/dist/analysis/path-classification.d.ts +24 -0
- package/dist/analysis/path-classification.d.ts.map +1 -0
- package/dist/analysis/path-classification.js +69 -0
- package/dist/analysis/path-classification.js.map +1 -0
- package/dist/analysis/taint-propagation.d.ts +17 -1
- package/dist/analysis/taint-propagation.d.ts.map +1 -1
- package/dist/analysis/taint-propagation.js +47 -16
- package/dist/analysis/taint-propagation.js.map +1 -1
- package/dist/browser/circle-ir.js +138 -12
- package/dist/core/circle-ir-core.cjs +93 -12
- package/dist/core/circle-ir-core.js +93 -12
- package/dist/graph/code-graph.d.ts +7 -0
- package/dist/graph/code-graph.d.ts.map +1 -1
- package/dist/graph/code-graph.js +17 -0
- package/dist/graph/code-graph.js.map +1 -1
- package/package.json +1 -1
|
@@ -12297,6 +12297,9 @@ var DEFAULT_SANITIZERS = [
|
|
|
12297
12297
|
{ method: "parseDouble", class: "Double", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12298
12298
|
{ method: "parseShort", class: "Short", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12299
12299
|
{ method: "parseByte", class: "Byte", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12300
|
+
// cognium-dev #238 A.3 — parseBoolean and expanded coercion coverage for XSS/CRLF/log/xpath/ldap/xxe.
|
|
12301
|
+
// A parsed boolean/numeric cannot carry a string-injection payload for any string-based sink.
|
|
12302
|
+
{ method: "parseBoolean", class: "Boolean", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection", "xss", "crlf", "log_injection", "xpath_injection", "ldap_injection", "xxe"] },
|
|
12300
12303
|
// Java UUID parse — UUID.fromString rejects non-UUID strings
|
|
12301
12304
|
{ method: "fromString", class: "UUID", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12302
12305
|
// JavaScript numeric coercion (Number/parseInt/parseFloat already covered above; add path_traversal/code_injection)
|
|
@@ -14046,6 +14049,23 @@ var CodeGraph = class {
|
|
|
14046
14049
|
}
|
|
14047
14050
|
return this._chainsByFromDef;
|
|
14048
14051
|
}
|
|
14052
|
+
/**
|
|
14053
|
+
* Mirror of chainsByFromDef keyed by chain.to_def. Enables backward
|
|
14054
|
+
* walks from a use's reaching def to earlier defs in the chain
|
|
14055
|
+
* (cognium-dev #238 — DFG-walk sanitizer credit).
|
|
14056
|
+
*/
|
|
14057
|
+
_chainsByToDef = null;
|
|
14058
|
+
get chainsByToDef() {
|
|
14059
|
+
if (!this._chainsByToDef) {
|
|
14060
|
+
this._chainsByToDef = /* @__PURE__ */ new Map();
|
|
14061
|
+
for (const chain of this.ir.dfg.chains ?? []) {
|
|
14062
|
+
const arr = this._chainsByToDef.get(chain.to_def) ?? [];
|
|
14063
|
+
arr.push(chain);
|
|
14064
|
+
this._chainsByToDef.set(chain.to_def, arr);
|
|
14065
|
+
}
|
|
14066
|
+
}
|
|
14067
|
+
return this._chainsByToDef;
|
|
14068
|
+
}
|
|
14049
14069
|
// ---------------------------------------------------------------------------
|
|
14050
14070
|
// Call indexes
|
|
14051
14071
|
// ---------------------------------------------------------------------------
|
|
@@ -14216,6 +14236,43 @@ var CodeGraph = class {
|
|
|
14216
14236
|
}
|
|
14217
14237
|
};
|
|
14218
14238
|
|
|
14239
|
+
// src/analysis/dfg-walk.ts
|
|
14240
|
+
function walkBackwardDefs(startDefId, chainsByToDef, defById, options = {}) {
|
|
14241
|
+
const maxHops = options.maxHops ?? 32;
|
|
14242
|
+
const visited = /* @__PURE__ */ new Set();
|
|
14243
|
+
const lines = /* @__PURE__ */ new Set();
|
|
14244
|
+
let hopCapReached = false;
|
|
14245
|
+
const startDef = defById.get(startDefId);
|
|
14246
|
+
if (!startDef) {
|
|
14247
|
+
return { visited, lines, hopCapReached: false };
|
|
14248
|
+
}
|
|
14249
|
+
visited.add(startDefId);
|
|
14250
|
+
lines.add(startDef.line);
|
|
14251
|
+
const queue = [startDefId];
|
|
14252
|
+
let hops = 0;
|
|
14253
|
+
while (queue.length > 0) {
|
|
14254
|
+
if (hops >= maxHops) {
|
|
14255
|
+
hopCapReached = true;
|
|
14256
|
+
break;
|
|
14257
|
+
}
|
|
14258
|
+
hops++;
|
|
14259
|
+
const currentId = queue.shift();
|
|
14260
|
+
const incoming = chainsByToDef.get(currentId);
|
|
14261
|
+
if (!incoming) continue;
|
|
14262
|
+
for (const chain of incoming) {
|
|
14263
|
+
const fromId = chain.from_def;
|
|
14264
|
+
if (visited.has(fromId)) continue;
|
|
14265
|
+
visited.add(fromId);
|
|
14266
|
+
const fromDef = defById.get(fromId);
|
|
14267
|
+
if (fromDef) {
|
|
14268
|
+
lines.add(fromDef.line);
|
|
14269
|
+
}
|
|
14270
|
+
queue.push(fromId);
|
|
14271
|
+
}
|
|
14272
|
+
}
|
|
14273
|
+
return { visited, lines, hopCapReached };
|
|
14274
|
+
}
|
|
14275
|
+
|
|
14219
14276
|
// src/analysis/taint-propagation.ts
|
|
14220
14277
|
function buildSanitizersByLine(sanitizers) {
|
|
14221
14278
|
const out2 = /* @__PURE__ */ new Map();
|
|
@@ -14303,7 +14360,12 @@ function propagateTaint(graphOrDfg, callsOrSources, sourcesOrSinks, sinksOrSanit
|
|
|
14303
14360
|
taintInfo.line,
|
|
14304
14361
|
sink.line,
|
|
14305
14362
|
sink.type,
|
|
14306
|
-
sanitizersByLine
|
|
14363
|
+
sanitizersByLine,
|
|
14364
|
+
{
|
|
14365
|
+
startDefId: use.def_id,
|
|
14366
|
+
chainsByToDef: graph.chainsByToDef,
|
|
14367
|
+
defById
|
|
14368
|
+
}
|
|
14307
14369
|
);
|
|
14308
14370
|
if (!isSanitized.sanitized) {
|
|
14309
14371
|
const source = sources.find((s) => s.line === taintInfo.sourceLine);
|
|
@@ -14441,20 +14503,39 @@ var KNOWN_SINK_TYPES = /* @__PURE__ */ new Set([
|
|
|
14441
14503
|
"crlf",
|
|
14442
14504
|
"mass_assignment"
|
|
14443
14505
|
]);
|
|
14444
|
-
function checkSanitized(_fromLine, toLine, sinkType, sanitizersByLine) {
|
|
14445
|
-
const sanitizersAtTarget = sanitizersByLine.get(toLine);
|
|
14446
|
-
if (!sanitizersAtTarget || sanitizersAtTarget.length === 0) {
|
|
14447
|
-
return { sanitized: false };
|
|
14448
|
-
}
|
|
14506
|
+
function checkSanitized(_fromLine, toLine, sinkType, sanitizersByLine, ctx) {
|
|
14449
14507
|
const isKnownSinkType = KNOWN_SINK_TYPES.has(sinkType);
|
|
14450
|
-
|
|
14451
|
-
|
|
14452
|
-
|
|
14508
|
+
const sanitizersAtTarget = sanitizersByLine.get(toLine);
|
|
14509
|
+
if (sanitizersAtTarget && sanitizersAtTarget.length > 0) {
|
|
14510
|
+
for (const san of sanitizersAtTarget) {
|
|
14511
|
+
if (isKnownSinkType) {
|
|
14512
|
+
if (san.sanitizes.includes(sinkType)) {
|
|
14513
|
+
return { sanitized: true, sanitizer: san };
|
|
14514
|
+
}
|
|
14515
|
+
} else if (san.sanitizes.length > 0) {
|
|
14453
14516
|
return { sanitized: true, sanitizer: san };
|
|
14454
14517
|
}
|
|
14455
|
-
}
|
|
14456
|
-
|
|
14457
|
-
|
|
14518
|
+
}
|
|
14519
|
+
}
|
|
14520
|
+
if (ctx) {
|
|
14521
|
+
const walk = walkBackwardDefs(
|
|
14522
|
+
ctx.startDefId,
|
|
14523
|
+
ctx.chainsByToDef,
|
|
14524
|
+
ctx.defById,
|
|
14525
|
+
{ maxHops: ctx.maxHops ?? 32 }
|
|
14526
|
+
);
|
|
14527
|
+
for (const line of walk.lines) {
|
|
14528
|
+
if (line === toLine) continue;
|
|
14529
|
+
const sansAtLine = sanitizersByLine.get(line);
|
|
14530
|
+
if (!sansAtLine || sansAtLine.length === 0) continue;
|
|
14531
|
+
for (const san of sansAtLine) {
|
|
14532
|
+
if (isKnownSinkType) {
|
|
14533
|
+
if (san.sanitizes.includes(sinkType)) {
|
|
14534
|
+
return { sanitized: true, sanitizer: san };
|
|
14535
|
+
}
|
|
14536
|
+
} else if (san.sanitizes.length > 0) {
|
|
14537
|
+
return { sanitized: true, sanitizer: san };
|
|
14538
|
+
}
|
|
14458
14539
|
}
|
|
14459
14540
|
}
|
|
14460
14541
|
}
|
|
@@ -12231,6 +12231,9 @@ var DEFAULT_SANITIZERS = [
|
|
|
12231
12231
|
{ method: "parseDouble", class: "Double", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12232
12232
|
{ method: "parseShort", class: "Short", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12233
12233
|
{ method: "parseByte", class: "Byte", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12234
|
+
// cognium-dev #238 A.3 — parseBoolean and expanded coercion coverage for XSS/CRLF/log/xpath/ldap/xxe.
|
|
12235
|
+
// A parsed boolean/numeric cannot carry a string-injection payload for any string-based sink.
|
|
12236
|
+
{ method: "parseBoolean", class: "Boolean", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection", "xss", "crlf", "log_injection", "xpath_injection", "ldap_injection", "xxe"] },
|
|
12234
12237
|
// Java UUID parse — UUID.fromString rejects non-UUID strings
|
|
12235
12238
|
{ method: "fromString", class: "UUID", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12236
12239
|
// JavaScript numeric coercion (Number/parseInt/parseFloat already covered above; add path_traversal/code_injection)
|
|
@@ -13980,6 +13983,23 @@ var CodeGraph = class {
|
|
|
13980
13983
|
}
|
|
13981
13984
|
return this._chainsByFromDef;
|
|
13982
13985
|
}
|
|
13986
|
+
/**
|
|
13987
|
+
* Mirror of chainsByFromDef keyed by chain.to_def. Enables backward
|
|
13988
|
+
* walks from a use's reaching def to earlier defs in the chain
|
|
13989
|
+
* (cognium-dev #238 — DFG-walk sanitizer credit).
|
|
13990
|
+
*/
|
|
13991
|
+
_chainsByToDef = null;
|
|
13992
|
+
get chainsByToDef() {
|
|
13993
|
+
if (!this._chainsByToDef) {
|
|
13994
|
+
this._chainsByToDef = /* @__PURE__ */ new Map();
|
|
13995
|
+
for (const chain of this.ir.dfg.chains ?? []) {
|
|
13996
|
+
const arr = this._chainsByToDef.get(chain.to_def) ?? [];
|
|
13997
|
+
arr.push(chain);
|
|
13998
|
+
this._chainsByToDef.set(chain.to_def, arr);
|
|
13999
|
+
}
|
|
14000
|
+
}
|
|
14001
|
+
return this._chainsByToDef;
|
|
14002
|
+
}
|
|
13983
14003
|
// ---------------------------------------------------------------------------
|
|
13984
14004
|
// Call indexes
|
|
13985
14005
|
// ---------------------------------------------------------------------------
|
|
@@ -14150,6 +14170,43 @@ var CodeGraph = class {
|
|
|
14150
14170
|
}
|
|
14151
14171
|
};
|
|
14152
14172
|
|
|
14173
|
+
// src/analysis/dfg-walk.ts
|
|
14174
|
+
function walkBackwardDefs(startDefId, chainsByToDef, defById, options = {}) {
|
|
14175
|
+
const maxHops = options.maxHops ?? 32;
|
|
14176
|
+
const visited = /* @__PURE__ */ new Set();
|
|
14177
|
+
const lines = /* @__PURE__ */ new Set();
|
|
14178
|
+
let hopCapReached = false;
|
|
14179
|
+
const startDef = defById.get(startDefId);
|
|
14180
|
+
if (!startDef) {
|
|
14181
|
+
return { visited, lines, hopCapReached: false };
|
|
14182
|
+
}
|
|
14183
|
+
visited.add(startDefId);
|
|
14184
|
+
lines.add(startDef.line);
|
|
14185
|
+
const queue = [startDefId];
|
|
14186
|
+
let hops = 0;
|
|
14187
|
+
while (queue.length > 0) {
|
|
14188
|
+
if (hops >= maxHops) {
|
|
14189
|
+
hopCapReached = true;
|
|
14190
|
+
break;
|
|
14191
|
+
}
|
|
14192
|
+
hops++;
|
|
14193
|
+
const currentId = queue.shift();
|
|
14194
|
+
const incoming = chainsByToDef.get(currentId);
|
|
14195
|
+
if (!incoming) continue;
|
|
14196
|
+
for (const chain of incoming) {
|
|
14197
|
+
const fromId = chain.from_def;
|
|
14198
|
+
if (visited.has(fromId)) continue;
|
|
14199
|
+
visited.add(fromId);
|
|
14200
|
+
const fromDef = defById.get(fromId);
|
|
14201
|
+
if (fromDef) {
|
|
14202
|
+
lines.add(fromDef.line);
|
|
14203
|
+
}
|
|
14204
|
+
queue.push(fromId);
|
|
14205
|
+
}
|
|
14206
|
+
}
|
|
14207
|
+
return { visited, lines, hopCapReached };
|
|
14208
|
+
}
|
|
14209
|
+
|
|
14153
14210
|
// src/analysis/taint-propagation.ts
|
|
14154
14211
|
function buildSanitizersByLine(sanitizers) {
|
|
14155
14212
|
const out2 = /* @__PURE__ */ new Map();
|
|
@@ -14237,7 +14294,12 @@ function propagateTaint(graphOrDfg, callsOrSources, sourcesOrSinks, sinksOrSanit
|
|
|
14237
14294
|
taintInfo.line,
|
|
14238
14295
|
sink.line,
|
|
14239
14296
|
sink.type,
|
|
14240
|
-
sanitizersByLine
|
|
14297
|
+
sanitizersByLine,
|
|
14298
|
+
{
|
|
14299
|
+
startDefId: use.def_id,
|
|
14300
|
+
chainsByToDef: graph.chainsByToDef,
|
|
14301
|
+
defById
|
|
14302
|
+
}
|
|
14241
14303
|
);
|
|
14242
14304
|
if (!isSanitized.sanitized) {
|
|
14243
14305
|
const source = sources.find((s) => s.line === taintInfo.sourceLine);
|
|
@@ -14375,20 +14437,39 @@ var KNOWN_SINK_TYPES = /* @__PURE__ */ new Set([
|
|
|
14375
14437
|
"crlf",
|
|
14376
14438
|
"mass_assignment"
|
|
14377
14439
|
]);
|
|
14378
|
-
function checkSanitized(_fromLine, toLine, sinkType, sanitizersByLine) {
|
|
14379
|
-
const sanitizersAtTarget = sanitizersByLine.get(toLine);
|
|
14380
|
-
if (!sanitizersAtTarget || sanitizersAtTarget.length === 0) {
|
|
14381
|
-
return { sanitized: false };
|
|
14382
|
-
}
|
|
14440
|
+
function checkSanitized(_fromLine, toLine, sinkType, sanitizersByLine, ctx) {
|
|
14383
14441
|
const isKnownSinkType = KNOWN_SINK_TYPES.has(sinkType);
|
|
14384
|
-
|
|
14385
|
-
|
|
14386
|
-
|
|
14442
|
+
const sanitizersAtTarget = sanitizersByLine.get(toLine);
|
|
14443
|
+
if (sanitizersAtTarget && sanitizersAtTarget.length > 0) {
|
|
14444
|
+
for (const san of sanitizersAtTarget) {
|
|
14445
|
+
if (isKnownSinkType) {
|
|
14446
|
+
if (san.sanitizes.includes(sinkType)) {
|
|
14447
|
+
return { sanitized: true, sanitizer: san };
|
|
14448
|
+
}
|
|
14449
|
+
} else if (san.sanitizes.length > 0) {
|
|
14387
14450
|
return { sanitized: true, sanitizer: san };
|
|
14388
14451
|
}
|
|
14389
|
-
}
|
|
14390
|
-
|
|
14391
|
-
|
|
14452
|
+
}
|
|
14453
|
+
}
|
|
14454
|
+
if (ctx) {
|
|
14455
|
+
const walk = walkBackwardDefs(
|
|
14456
|
+
ctx.startDefId,
|
|
14457
|
+
ctx.chainsByToDef,
|
|
14458
|
+
ctx.defById,
|
|
14459
|
+
{ maxHops: ctx.maxHops ?? 32 }
|
|
14460
|
+
);
|
|
14461
|
+
for (const line of walk.lines) {
|
|
14462
|
+
if (line === toLine) continue;
|
|
14463
|
+
const sansAtLine = sanitizersByLine.get(line);
|
|
14464
|
+
if (!sansAtLine || sansAtLine.length === 0) continue;
|
|
14465
|
+
for (const san of sansAtLine) {
|
|
14466
|
+
if (isKnownSinkType) {
|
|
14467
|
+
if (san.sanitizes.includes(sinkType)) {
|
|
14468
|
+
return { sanitized: true, sanitizer: san };
|
|
14469
|
+
}
|
|
14470
|
+
} else if (san.sanitizes.length > 0) {
|
|
14471
|
+
return { sanitized: true, sanitizer: san };
|
|
14472
|
+
}
|
|
14392
14473
|
}
|
|
14393
14474
|
}
|
|
14394
14475
|
}
|
|
@@ -27,6 +27,13 @@ export declare class CodeGraph {
|
|
|
27
27
|
get usesByDefId(): Map<number, DFGUse[]>;
|
|
28
28
|
private _chainsByFromDef;
|
|
29
29
|
get chainsByFromDef(): Map<number, DFGChain[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Mirror of chainsByFromDef keyed by chain.to_def. Enables backward
|
|
32
|
+
* walks from a use's reaching def to earlier defs in the chain
|
|
33
|
+
* (cognium-dev #238 — DFG-walk sanitizer credit).
|
|
34
|
+
*/
|
|
35
|
+
private _chainsByToDef;
|
|
36
|
+
get chainsByToDef(): Map<number, DFGChain[]>;
|
|
30
37
|
private _callsByLine;
|
|
31
38
|
get callsByLine(): Map<number, CallInfo[]>;
|
|
32
39
|
private _callsByMethod;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-graph.d.ts","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,SAAS;IACpB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;gBAEV,EAAE,EAAE,QAAQ;IAQxB,OAAO,CAAC,QAAQ,CAAoC;IACpD,IAAI,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQjC;IAED,OAAO,CAAC,WAAW,CAAsC;IACzD,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAUtC;IAED,OAAO,CAAC,UAAU,CAAsC;IACxD,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAUrC;IAED,OAAO,CAAC,WAAW,CAAsC;IACzD,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAUtC;IAED,OAAO,CAAC,YAAY,CAAsC;IAC1D,IAAI,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAYvC;IAED,OAAO,CAAC,gBAAgB,CAAwC;IAChE,IAAI,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAU7C;IAMD,OAAO,CAAC,YAAY,CAAwC;IAC5D,IAAI,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAUzC;IAED,OAAO,CAAC,cAAc,CAAwC;IAC9D,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAU3C;IAMD,OAAO,CAAC,cAAc,CAA2E;IACjG,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC,CAY9E;IAED;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI;IAezE,OAAO,CAAC,iBAAiB,CAA8C;IACvE,IAAI,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAUpD;IAMD,uDAAuD;IACvD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlC,uDAAuD;IACvD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlC,2EAA2E;IAC3E,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlC,yDAAyD;IACzD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIrC,mEAAmE;IACnE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIrC;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAU/E,OAAO,CAAC,UAAU,CAAsC;IACxD,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAQrC;IAED;;;;;;;;;;;;OAYG;IACH,UAAU,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAa7D;;;;;;OAMG;IACH,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;CAiBvD"}
|
|
1
|
+
{"version":3,"file":"code-graph.d.ts","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/code-graph.js
CHANGED
|
@@ -90,6 +90,23 @@ export class CodeGraph {
|
|
|
90
90
|
}
|
|
91
91
|
return this._chainsByFromDef;
|
|
92
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Mirror of chainsByFromDef keyed by chain.to_def. Enables backward
|
|
95
|
+
* walks from a use's reaching def to earlier defs in the chain
|
|
96
|
+
* (cognium-dev #238 — DFG-walk sanitizer credit).
|
|
97
|
+
*/
|
|
98
|
+
_chainsByToDef = null;
|
|
99
|
+
get chainsByToDef() {
|
|
100
|
+
if (!this._chainsByToDef) {
|
|
101
|
+
this._chainsByToDef = new Map();
|
|
102
|
+
for (const chain of this.ir.dfg.chains ?? []) {
|
|
103
|
+
const arr = this._chainsByToDef.get(chain.to_def) ?? [];
|
|
104
|
+
arr.push(chain);
|
|
105
|
+
this._chainsByToDef.set(chain.to_def, arr);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return this._chainsByToDef;
|
|
109
|
+
}
|
|
93
110
|
// ---------------------------------------------------------------------------
|
|
94
111
|
// Call indexes
|
|
95
112
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-graph.js","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-graph.js","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "circle-ir",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.155.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",
|