@oddessentials/odd-ai-reviewers 1.7.4 → 1.8.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/agents/ai_semantic_review.d.ts.map +1 -1
- package/dist/agents/ai_semantic_review.js +4 -1
- package/dist/agents/ai_semantic_review.js.map +1 -1
- package/dist/agents/control_flow/safe-source-detector.d.ts +48 -0
- package/dist/agents/control_flow/safe-source-detector.d.ts.map +1 -0
- package/dist/agents/control_flow/safe-source-detector.js +424 -0
- package/dist/agents/control_flow/safe-source-detector.js.map +1 -0
- package/dist/agents/control_flow/safe-source-patterns.d.ts +61 -0
- package/dist/agents/control_flow/safe-source-patterns.d.ts.map +1 -0
- package/dist/agents/control_flow/safe-source-patterns.js +137 -0
- package/dist/agents/control_flow/safe-source-patterns.js.map +1 -0
- package/dist/agents/control_flow/scope-stack.d.ts +113 -0
- package/dist/agents/control_flow/scope-stack.d.ts.map +1 -0
- package/dist/agents/control_flow/scope-stack.js +320 -0
- package/dist/agents/control_flow/scope-stack.js.map +1 -0
- package/dist/agents/control_flow/vulnerability-detector.d.ts +13 -0
- package/dist/agents/control_flow/vulnerability-detector.d.ts.map +1 -1
- package/dist/agents/control_flow/vulnerability-detector.js +252 -35
- package/dist/agents/control_flow/vulnerability-detector.js.map +1 -1
- package/dist/agents/opencode.d.ts.map +1 -1
- package/dist/agents/opencode.js +4 -1
- package/dist/agents/opencode.js.map +1 -1
- package/dist/agents/pr_agent.d.ts.map +1 -1
- package/dist/agents/pr_agent.js +5 -2
- package/dist/agents/pr_agent.js.map +1 -1
- package/dist/agents/security.d.ts.map +1 -1
- package/dist/agents/security.js +1 -0
- package/dist/agents/security.js.map +1 -1
- package/dist/agents/types.d.ts +6 -0
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/benchmark/adapter.d.ts +39 -0
- package/dist/benchmark/adapter.d.ts.map +1 -0
- package/dist/benchmark/adapter.js +217 -0
- package/dist/benchmark/adapter.js.map +1 -0
- package/dist/benchmark/scoring.d.ts +100 -0
- package/dist/benchmark/scoring.d.ts.map +1 -0
- package/dist/benchmark/scoring.js +195 -0
- package/dist/benchmark/scoring.js.map +1 -0
- package/dist/context-loader.d.ts +80 -0
- package/dist/context-loader.d.ts.map +1 -0
- package/dist/context-loader.js +202 -0
- package/dist/context-loader.js.map +1 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +131 -4
- package/dist/main.js.map +1 -1
- package/dist/phases/index.d.ts +1 -1
- package/dist/phases/index.d.ts.map +1 -1
- package/dist/phases/index.js +1 -1
- package/dist/phases/index.js.map +1 -1
- package/dist/phases/report.d.ts +8 -1
- package/dist/phases/report.d.ts.map +1 -1
- package/dist/phases/report.js +27 -5
- package/dist/phases/report.js.map +1 -1
- package/dist/report/ado.d.ts +2 -0
- package/dist/report/ado.d.ts.map +1 -1
- package/dist/report/ado.js +9 -23
- package/dist/report/ado.js.map +1 -1
- package/dist/report/finding-validator.d.ts +104 -0
- package/dist/report/finding-validator.d.ts.map +1 -0
- package/dist/report/finding-validator.js +273 -0
- package/dist/report/finding-validator.js.map +1 -0
- package/dist/report/github.d.ts +2 -0
- package/dist/report/github.d.ts.map +1 -1
- package/dist/report/github.js +9 -23
- package/dist/report/github.js.map +1 -1
- package/dist/trust.d.ts +6 -0
- package/dist/trust.d.ts.map +1 -1
- package/dist/trust.js +2 -0
- package/dist/trust.js.map +1 -1
- package/package.json +5 -5
|
@@ -8,6 +8,22 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import ts from 'typescript';
|
|
10
10
|
import { getLogger } from './logger.js';
|
|
11
|
+
import { detectSafeSources, filterSafeSources } from './safe-source-detector.js';
|
|
12
|
+
import { ScopeStack, isScopeNode, nodeIdentityKey, registerNodeDeclarations, } from './scope-stack.js';
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// Assignment operator detection — includes compound assignments (+=, ??=, etc.)
|
|
15
|
+
// that can propagate taint from the RHS to the LHS variable.
|
|
16
|
+
// =============================================================================
|
|
17
|
+
const ASSIGNMENT_OPERATORS = new Set([
|
|
18
|
+
ts.SyntaxKind.EqualsToken, // =
|
|
19
|
+
ts.SyntaxKind.PlusEqualsToken, // +=
|
|
20
|
+
ts.SyntaxKind.BarBarEqualsToken, // ||=
|
|
21
|
+
ts.SyntaxKind.QuestionQuestionEqualsToken, // ??=
|
|
22
|
+
ts.SyntaxKind.AmpersandAmpersandEqualsToken, // &&=
|
|
23
|
+
]);
|
|
24
|
+
function isAssignmentOperator(kind) {
|
|
25
|
+
return ASSIGNMENT_OPERATORS.has(kind);
|
|
26
|
+
}
|
|
11
27
|
/**
|
|
12
28
|
* Built-in sink patterns for common vulnerability types.
|
|
13
29
|
*/
|
|
@@ -136,9 +152,19 @@ export class VulnerabilityDetector {
|
|
|
136
152
|
this.findSinks(sourceFile, filePath, detectedSinks);
|
|
137
153
|
// Step 2: Find all sources (user input)
|
|
138
154
|
this.findSources(sourceFile, filePath, detectedSources);
|
|
139
|
-
// Step 3:
|
|
140
|
-
|
|
141
|
-
|
|
155
|
+
// Step 3: Detect safe sources and filter them out (prevents false positives)
|
|
156
|
+
const safeSources = detectSafeSources(sourceFile, filePath);
|
|
157
|
+
const filteredSources = filterSafeSources(detectedSources, safeSources);
|
|
158
|
+
for (const ss of safeSources) {
|
|
159
|
+
this.logger.log('debug', 'vulnerability', 'Safe source detected', {
|
|
160
|
+
patternId: ss.patternId,
|
|
161
|
+
variableName: ss.variableName,
|
|
162
|
+
file: filePath,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
// Step 4: Track taint propagation
|
|
166
|
+
this.trackTaint(sourceFile, filePath, filteredSources, taintedVariables);
|
|
167
|
+
// Step 5: Match sinks to tainted data
|
|
142
168
|
for (const sink of detectedSinks) {
|
|
143
169
|
const affectedVariable = this.findAffectedVariable(sink, taintedVariables, sourceFile);
|
|
144
170
|
if (affectedVariable) {
|
|
@@ -150,6 +176,7 @@ export class VulnerabilityDetector {
|
|
|
150
176
|
file: filePath,
|
|
151
177
|
sinksFound: detectedSinks.length,
|
|
152
178
|
sourcesFound: detectedSources.length,
|
|
179
|
+
safeSourcesDetected: safeSources.length,
|
|
153
180
|
taintedVars: taintedVariables.length,
|
|
154
181
|
vulnerabilities: vulnerabilities.length,
|
|
155
182
|
});
|
|
@@ -268,23 +295,30 @@ export class VulnerabilityDetector {
|
|
|
268
295
|
* Find user input sources in the source file.
|
|
269
296
|
*/
|
|
270
297
|
findSources(sourceFile, filePath, sources) {
|
|
298
|
+
const scope = new ScopeStack();
|
|
271
299
|
const visit = (node) => {
|
|
300
|
+
const isScope = isScopeNode(node);
|
|
301
|
+
if (isScope)
|
|
302
|
+
scope.enterScope(node);
|
|
303
|
+
registerNodeDeclarations(node, scope);
|
|
272
304
|
// Check property access for source patterns
|
|
273
305
|
if (ts.isPropertyAccessExpression(node)) {
|
|
274
|
-
this.checkPropertyAccessForSource(node, sourceFile, filePath, sources);
|
|
306
|
+
this.checkPropertyAccessForSource(node, sourceFile, filePath, sources, scope);
|
|
275
307
|
}
|
|
276
308
|
// Check element access (e.g., req['body'])
|
|
277
309
|
if (ts.isElementAccessExpression(node)) {
|
|
278
|
-
this.checkElementAccessForSource(node, sourceFile, filePath, sources);
|
|
310
|
+
this.checkElementAccessForSource(node, sourceFile, filePath, sources, scope);
|
|
279
311
|
}
|
|
280
312
|
ts.forEachChild(node, visit);
|
|
313
|
+
if (isScope)
|
|
314
|
+
scope.leaveScope();
|
|
281
315
|
};
|
|
282
316
|
visit(sourceFile);
|
|
283
317
|
}
|
|
284
318
|
/**
|
|
285
319
|
* Check if property access is a taint source.
|
|
286
320
|
*/
|
|
287
|
-
checkPropertyAccessForSource(node, sourceFile, filePath, sources) {
|
|
321
|
+
checkPropertyAccessForSource(node, sourceFile, filePath, sources, scope) {
|
|
288
322
|
const propName = node.name.text;
|
|
289
323
|
let objectName = '';
|
|
290
324
|
if (ts.isIdentifier(node.expression)) {
|
|
@@ -295,15 +329,12 @@ export class VulnerabilityDetector {
|
|
|
295
329
|
const objectMatches = !pattern.objects ||
|
|
296
330
|
pattern.objects.some((obj) => objectName.toLowerCase() === obj.toLowerCase());
|
|
297
331
|
if (nameMatches && objectMatches) {
|
|
298
|
-
const
|
|
332
|
+
const binding = this.findAssignedBinding(node, sourceFile, filePath, scope);
|
|
299
333
|
sources.push({
|
|
300
|
-
location:
|
|
301
|
-
file: filePath,
|
|
302
|
-
line: line + 1,
|
|
303
|
-
column: character,
|
|
304
|
-
},
|
|
334
|
+
location: binding?.location ?? this.nodeLocation(node, sourceFile, filePath),
|
|
305
335
|
expression: node.getText(sourceFile),
|
|
306
|
-
variableName: this.findAssignedVariable(node, sourceFile) || propName,
|
|
336
|
+
variableName: binding?.variableName ?? (this.findAssignedVariable(node, sourceFile) || propName),
|
|
337
|
+
declarationKey: binding?.declarationKey ?? null,
|
|
307
338
|
});
|
|
308
339
|
break;
|
|
309
340
|
}
|
|
@@ -312,7 +343,7 @@ export class VulnerabilityDetector {
|
|
|
312
343
|
/**
|
|
313
344
|
* Check element access for source patterns (e.g., req['body']).
|
|
314
345
|
*/
|
|
315
|
-
checkElementAccessForSource(node, sourceFile, filePath, sources) {
|
|
346
|
+
checkElementAccessForSource(node, sourceFile, filePath, sources, scope) {
|
|
316
347
|
if (!ts.isStringLiteral(node.argumentExpression))
|
|
317
348
|
return;
|
|
318
349
|
const propName = node.argumentExpression.text;
|
|
@@ -325,15 +356,12 @@ export class VulnerabilityDetector {
|
|
|
325
356
|
const objectMatches = !pattern.objects ||
|
|
326
357
|
pattern.objects.some((obj) => objectName.toLowerCase() === obj.toLowerCase());
|
|
327
358
|
if (nameMatches && objectMatches) {
|
|
328
|
-
const
|
|
359
|
+
const binding = this.findAssignedBinding(node, sourceFile, filePath, scope);
|
|
329
360
|
sources.push({
|
|
330
|
-
location:
|
|
331
|
-
file: filePath,
|
|
332
|
-
line: line + 1,
|
|
333
|
-
column: character,
|
|
334
|
-
},
|
|
361
|
+
location: binding?.location ?? this.nodeLocation(node, sourceFile, filePath),
|
|
335
362
|
expression: node.getText(sourceFile),
|
|
336
|
-
variableName: this.findAssignedVariable(node, sourceFile) || propName,
|
|
363
|
+
variableName: binding?.variableName ?? (this.findAssignedVariable(node, sourceFile) || propName),
|
|
364
|
+
declarationKey: binding?.declarationKey ?? null,
|
|
337
365
|
});
|
|
338
366
|
break;
|
|
339
367
|
}
|
|
@@ -357,84 +385,273 @@ export class VulnerabilityDetector {
|
|
|
357
385
|
}
|
|
358
386
|
return null;
|
|
359
387
|
}
|
|
388
|
+
findAssignedBinding(node, sourceFile, filePath, scope) {
|
|
389
|
+
let current = node.parent;
|
|
390
|
+
while (current) {
|
|
391
|
+
if (ts.isVariableDeclaration(current) && ts.isIdentifier(current.name)) {
|
|
392
|
+
return {
|
|
393
|
+
variableName: current.name.text,
|
|
394
|
+
declarationKey: nodeIdentityKey(current, sourceFile),
|
|
395
|
+
location: this.nodeLocation(current, sourceFile, filePath),
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
if (ts.isBinaryExpression(current) &&
|
|
399
|
+
isAssignmentOperator(current.operatorToken.kind) &&
|
|
400
|
+
ts.isIdentifier(current.left)) {
|
|
401
|
+
const decl = scope.resolveDeclaration(current.left.text);
|
|
402
|
+
return {
|
|
403
|
+
variableName: current.left.text,
|
|
404
|
+
declarationKey: decl ? nodeIdentityKey(decl, sourceFile) : null,
|
|
405
|
+
location: decl
|
|
406
|
+
? this.nodeLocation(decl, sourceFile, filePath)
|
|
407
|
+
: this.nodeLocation(current.left, sourceFile, filePath),
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
current = current.parent;
|
|
411
|
+
}
|
|
412
|
+
return null;
|
|
413
|
+
}
|
|
414
|
+
nodeLocation(node, sourceFile, filePath) {
|
|
415
|
+
const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));
|
|
416
|
+
return {
|
|
417
|
+
file: filePath,
|
|
418
|
+
line: line + 1,
|
|
419
|
+
column: character,
|
|
420
|
+
};
|
|
421
|
+
}
|
|
360
422
|
/**
|
|
361
423
|
* Track taint propagation through variable assignments.
|
|
424
|
+
* Uses a scope stack to resolve identifiers to their declaring nodes,
|
|
425
|
+
* keying taint entries by declaration identity instead of raw name.
|
|
362
426
|
*/
|
|
363
427
|
trackTaint(sourceFile, filePath, sources, tainted) {
|
|
364
428
|
// Initialize tainted variables from sources
|
|
429
|
+
// Sources don't have declaration keys yet — they'll be resolved during the walk
|
|
365
430
|
for (const source of sources) {
|
|
366
431
|
tainted.push({
|
|
367
432
|
name: source.variableName,
|
|
433
|
+
declarationKey: source.declarationKey,
|
|
368
434
|
sourceLocation: source.location,
|
|
369
435
|
taintedAt: source.location,
|
|
370
436
|
});
|
|
371
437
|
}
|
|
438
|
+
const scope = new ScopeStack();
|
|
372
439
|
// Track taint through assignments
|
|
373
440
|
const visit = (node) => {
|
|
441
|
+
const isScope = isScopeNode(node);
|
|
442
|
+
if (isScope)
|
|
443
|
+
scope.enterScope(node);
|
|
444
|
+
// Register all declaration types (var/let/const, destructuring, params, catch)
|
|
445
|
+
registerNodeDeclarations(node, scope);
|
|
446
|
+
// Resolve declaration keys for initial source entries when we encounter
|
|
447
|
+
// their declaring variable. This ensures taint entries for `const userInput = req.body.data`
|
|
448
|
+
// get a proper declarationKey so scope-based matching works in findTaintInExpression.
|
|
449
|
+
// Match by BOTH name AND source location to avoid assigning the wrong key when
|
|
450
|
+
// the same variable name is declared in multiple scopes (e.g., two handlers each
|
|
451
|
+
// doing `const data = req.body.data`).
|
|
452
|
+
if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {
|
|
453
|
+
const varName = node.name.text;
|
|
454
|
+
const declKey = nodeIdentityKey(node, sourceFile);
|
|
455
|
+
const declStart = node.getStart();
|
|
456
|
+
const declEnd = node.getEnd();
|
|
457
|
+
const { line: declStartLine } = sourceFile.getLineAndCharacterOfPosition(declStart);
|
|
458
|
+
const { line: declEndLine } = sourceFile.getLineAndCharacterOfPosition(declEnd);
|
|
459
|
+
for (const entry of tainted) {
|
|
460
|
+
if (entry.name === varName &&
|
|
461
|
+
entry.declarationKey === null &&
|
|
462
|
+
entry.taintedAt.file === filePath) {
|
|
463
|
+
// Check the source falls within the declaration's line range
|
|
464
|
+
// (handles multi-line initializers like `const x =\n req.body.y`)
|
|
465
|
+
const srcLine = entry.taintedAt.line - 1; // zero-based
|
|
466
|
+
if (srcLine < declStartLine || srcLine > declEndLine) {
|
|
467
|
+
continue;
|
|
468
|
+
}
|
|
469
|
+
// When column data is available, verify via absolute position
|
|
470
|
+
// to prevent mismatches when two same-named variables share a line
|
|
471
|
+
if (entry.taintedAt.column !== undefined) {
|
|
472
|
+
const sourceAbsPos = ts.getPositionOfLineAndCharacter(sourceFile, srcLine, entry.taintedAt.column);
|
|
473
|
+
if (sourceAbsPos < declStart || sourceAbsPos >= declEnd) {
|
|
474
|
+
continue;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
entry.declarationKey = declKey;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
// Resolve declaration keys for taint entries created by assignment expressions
|
|
482
|
+
// (e.g., `let q; q = req.body.query;` or `q += req.body.query;`).
|
|
483
|
+
// The taint source line falls within the BinaryExpression span, not within
|
|
484
|
+
// a VariableDeclaration, so the block above won't match.
|
|
485
|
+
// We resolve the LHS identifier via the scope stack.
|
|
486
|
+
if (ts.isBinaryExpression(node) &&
|
|
487
|
+
isAssignmentOperator(node.operatorToken.kind) &&
|
|
488
|
+
ts.isIdentifier(node.left)) {
|
|
489
|
+
const varName = node.left.text;
|
|
490
|
+
const assignStart = node.getStart();
|
|
491
|
+
const assignEnd = node.getEnd();
|
|
492
|
+
const { line: assignStartLine } = sourceFile.getLineAndCharacterOfPosition(assignStart);
|
|
493
|
+
const { line: assignEndLine } = sourceFile.getLineAndCharacterOfPosition(assignEnd);
|
|
494
|
+
for (const entry of tainted) {
|
|
495
|
+
if (entry.name === varName &&
|
|
496
|
+
entry.declarationKey === null &&
|
|
497
|
+
entry.taintedAt.file === filePath) {
|
|
498
|
+
const srcLine = entry.taintedAt.line - 1; // zero-based
|
|
499
|
+
if (srcLine < assignStartLine || srcLine > assignEndLine)
|
|
500
|
+
continue;
|
|
501
|
+
const decl = scope.resolveDeclaration(varName);
|
|
502
|
+
if (decl) {
|
|
503
|
+
entry.declarationKey = nodeIdentityKey(decl, sourceFile);
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|
|
374
508
|
if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && node.initializer) {
|
|
375
509
|
const varName = node.name.text;
|
|
376
|
-
const taintSource = this.findTaintInExpression(node.initializer, tainted, sourceFile);
|
|
510
|
+
const taintSource = this.findTaintInExpression(node.initializer, tainted, sourceFile, scope);
|
|
377
511
|
if (taintSource) {
|
|
378
512
|
const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
|
|
513
|
+
const declKey = nodeIdentityKey(node, sourceFile);
|
|
379
514
|
tainted.push({
|
|
380
515
|
name: varName,
|
|
516
|
+
declarationKey: declKey,
|
|
381
517
|
sourceLocation: taintSource.sourceLocation,
|
|
382
518
|
taintedAt: { file: filePath, line: line + 1, column: character },
|
|
383
519
|
});
|
|
384
520
|
}
|
|
385
521
|
}
|
|
386
522
|
if (ts.isBinaryExpression(node) &&
|
|
387
|
-
node.operatorToken.kind
|
|
523
|
+
isAssignmentOperator(node.operatorToken.kind) &&
|
|
388
524
|
ts.isIdentifier(node.left)) {
|
|
389
525
|
const varName = node.left.text;
|
|
390
|
-
const taintSource = this.findTaintInExpression(node.right, tainted, sourceFile);
|
|
526
|
+
const taintSource = this.findTaintInExpression(node.right, tainted, sourceFile, scope);
|
|
391
527
|
if (taintSource) {
|
|
392
528
|
const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
|
|
529
|
+
// Resolve the LHS to its declaration
|
|
530
|
+
const decl = scope.resolveDeclaration(varName);
|
|
531
|
+
const declKey = decl ? nodeIdentityKey(decl, sourceFile) : null;
|
|
393
532
|
tainted.push({
|
|
394
533
|
name: varName,
|
|
534
|
+
declarationKey: declKey,
|
|
395
535
|
sourceLocation: taintSource.sourceLocation,
|
|
396
536
|
taintedAt: { file: filePath, line: line + 1, column: character },
|
|
397
537
|
});
|
|
398
538
|
}
|
|
399
539
|
}
|
|
400
540
|
ts.forEachChild(node, visit);
|
|
541
|
+
if (isScope)
|
|
542
|
+
scope.leaveScope();
|
|
401
543
|
};
|
|
402
544
|
visit(sourceFile);
|
|
403
545
|
}
|
|
404
546
|
/**
|
|
405
547
|
* Find if an expression uses a tainted variable.
|
|
548
|
+
* Resolves identifiers to their declaring nodes via the scope stack,
|
|
549
|
+
* then matches by declaration identity key rather than raw name.
|
|
550
|
+
* Falls back to name-based matching for taint entries without a declaration key
|
|
551
|
+
* (e.g., initial source entries that weren't resolved during the walk).
|
|
406
552
|
*/
|
|
407
|
-
findTaintInExpression(node, tainted,
|
|
553
|
+
findTaintInExpression(node, tainted, sourceFile, scope) {
|
|
408
554
|
if (ts.isIdentifier(node)) {
|
|
409
|
-
|
|
555
|
+
if (scope) {
|
|
556
|
+
const decl = scope.resolveDeclaration(node.text);
|
|
557
|
+
if (decl) {
|
|
558
|
+
// Scope resolved the identifier to a specific declaration.
|
|
559
|
+
// Only check taint entries that match this exact declaration.
|
|
560
|
+
// Do NOT fall back to name-based matching — scope resolution is authoritative.
|
|
561
|
+
const declKey = nodeIdentityKey(decl, sourceFile);
|
|
562
|
+
return tainted.find((t) => t.declarationKey === declKey) || null;
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
// Fallback: name-based match ONLY when scope could not resolve the identifier
|
|
566
|
+
// (undeclared global, no scope stack available, or identifier not found in any scope)
|
|
567
|
+
return tainted.find((t) => t.declarationKey === null && t.name === node.text) || null;
|
|
410
568
|
}
|
|
411
569
|
let found = null;
|
|
412
570
|
node.forEachChild((child) => {
|
|
413
571
|
if (!found) {
|
|
414
|
-
found = this.findTaintInExpression(child, tainted,
|
|
572
|
+
found = this.findTaintInExpression(child, tainted, sourceFile, scope);
|
|
415
573
|
}
|
|
416
574
|
});
|
|
417
575
|
return found;
|
|
418
576
|
}
|
|
419
577
|
/**
|
|
420
578
|
* Find the affected variable for a sink.
|
|
579
|
+
*
|
|
580
|
+
* Parses the sink's AST sub-tree to find identifiers, resolves each to its
|
|
581
|
+
* declaration via the scope stack, and matches against tainted entries by
|
|
582
|
+
* declaration identity key. Falls back to name-based matching for taint
|
|
583
|
+
* entries without a declaration key.
|
|
421
584
|
*/
|
|
422
585
|
findAffectedVariable(sink, tainted, sourceFile) {
|
|
423
|
-
//
|
|
586
|
+
// Build a scope stack to resolve identifiers in the sink
|
|
587
|
+
const scope = new ScopeStack();
|
|
588
|
+
const sinkLine = sink.location.line; // 1-based
|
|
589
|
+
// Collect all identifier names referenced in the sink expression text.
|
|
590
|
+
// We need to find the AST node for the sink and walk its identifiers.
|
|
591
|
+
let sinkNode = null;
|
|
592
|
+
const findSinkNode = (node) => {
|
|
593
|
+
const isScope = isScopeNode(node);
|
|
594
|
+
if (isScope)
|
|
595
|
+
scope.enterScope(node);
|
|
596
|
+
// Register all declaration types
|
|
597
|
+
registerNodeDeclarations(node, scope);
|
|
598
|
+
// Check if this node matches the sink location
|
|
599
|
+
const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));
|
|
600
|
+
if (line + 1 === sinkLine && node.getText(sourceFile) === sink.expression) {
|
|
601
|
+
sinkNode = node;
|
|
602
|
+
}
|
|
603
|
+
ts.forEachChild(node, findSinkNode);
|
|
604
|
+
if (isScope)
|
|
605
|
+
scope.leaveScope();
|
|
606
|
+
};
|
|
607
|
+
findSinkNode(sourceFile);
|
|
608
|
+
// Walk identifiers in the sink node and match against tainted declarations
|
|
609
|
+
if (sinkNode) {
|
|
610
|
+
// Re-walk up to and including the sink node to have scope in correct state
|
|
611
|
+
const scope2 = new ScopeStack();
|
|
612
|
+
let result = null;
|
|
613
|
+
const walkForMatch = (node) => {
|
|
614
|
+
const isScope = isScopeNode(node);
|
|
615
|
+
if (isScope)
|
|
616
|
+
scope2.enterScope(node);
|
|
617
|
+
registerNodeDeclarations(node, scope2);
|
|
618
|
+
// If we found the sink node, search its identifiers
|
|
619
|
+
if (node === sinkNode) {
|
|
620
|
+
const match = this.findTaintInExpression(node, tainted, sourceFile, scope2);
|
|
621
|
+
if (match) {
|
|
622
|
+
result = match;
|
|
623
|
+
if (isScope)
|
|
624
|
+
scope2.leaveScope();
|
|
625
|
+
return true;
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
let found = false;
|
|
629
|
+
node.forEachChild((child) => {
|
|
630
|
+
if (!found) {
|
|
631
|
+
found = walkForMatch(child);
|
|
632
|
+
}
|
|
633
|
+
});
|
|
634
|
+
if (isScope)
|
|
635
|
+
scope2.leaveScope();
|
|
636
|
+
return found;
|
|
637
|
+
};
|
|
638
|
+
walkForMatch(sourceFile);
|
|
639
|
+
// Scope-based resolution is authoritative when the sink node was found.
|
|
640
|
+
// Return the result (which may be null) without falling through to text-based matching.
|
|
641
|
+
return result;
|
|
642
|
+
}
|
|
643
|
+
// Fallback: text-based matching ONLY for cases where AST node wasn't found.
|
|
644
|
+
// Uses escaped name to prevent regex metacharacter injection.
|
|
424
645
|
const sinkText = sink.expression;
|
|
425
646
|
for (const taintedVar of tainted) {
|
|
426
|
-
|
|
427
|
-
//
|
|
428
|
-
|
|
429
|
-
// See docs/security/regex-threat-model.md
|
|
430
|
-
// eslint-disable-next-line security/detect-non-literal-regexp -- Analyzed code identifier
|
|
431
|
-
const varPattern = new RegExp(`\\b${taintedVar.name}\\b`);
|
|
647
|
+
const escaped = taintedVar.name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
648
|
+
// eslint-disable-next-line security/detect-non-literal-regexp -- Escaped analyzed code identifier
|
|
649
|
+
const varPattern = new RegExp(`\\b${escaped}\\b`);
|
|
432
650
|
if (varPattern.test(sinkText)) {
|
|
433
651
|
return taintedVar;
|
|
434
652
|
}
|
|
435
653
|
}
|
|
436
654
|
// Also check for common patterns where taint flows through function params
|
|
437
|
-
// This is a simplified check - full taint tracking would be more complex
|
|
438
655
|
const functionParams = this.extractFunctionParams(sourceFile, sink.location.line);
|
|
439
656
|
for (const param of functionParams) {
|
|
440
657
|
const taintedParam = tainted.find((t) => t.name === param);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vulnerability-detector.js","sourceRoot":"","sources":["../../../src/agents/control_flow/vulnerability-detector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vulnerability-detector.js","sourceRoot":"","sources":["../../../src/agents/control_flow/vulnerability-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/agents/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAgD,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/agents/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAgD,MAAM,YAAY,CAAC;AAwY5F,eAAO,MAAM,aAAa,EAAE,WAmE3B,CAAC"}
|
package/dist/agents/opencode.js
CHANGED
|
@@ -72,6 +72,9 @@ Focus on:
|
|
|
72
72
|
- Performance issues
|
|
73
73
|
- Code quality problems
|
|
74
74
|
|
|
75
|
+
### Framework & Language Conventions
|
|
76
|
+
Do NOT flag: (1) Express 4-param error middleware unused _next, (2) identical query keys as double-fetching (React Query dedup), (3) Promise.allSettled iteration as "wrong order", (4) TypeScript _prefix unused params, (5) assertNever/exhaustive switch as missing error handling, (6) constants adjacent to their only usage as needing externalization.
|
|
77
|
+
|
|
75
78
|
Return your findings as a JSON object. Do NOT include any text before or after the JSON.`;
|
|
76
79
|
if (existsSync(PROMPT_PATH)) {
|
|
77
80
|
try {
|
|
@@ -85,7 +88,7 @@ Return your findings as a JSON object. Do NOT include any text before or after t
|
|
|
85
88
|
systemPrompt = `Current date (UTC): ${currentDate}\n\n${systemPrompt}`;
|
|
86
89
|
const userPrompt = `## Files Changed
|
|
87
90
|
${files}
|
|
88
|
-
|
|
91
|
+
${context.projectRules ? `\n## Project Rules\n\nThe following project rules/conventions apply:\n\n${context.projectRules}\n` : ''}${context.prDescription ? `\n## PR Description\n\nThe author describes this PR as:\n\n${context.prDescription}\n` : ''}
|
|
89
92
|
## Diff
|
|
90
93
|
\`\`\`diff
|
|
91
94
|
${context.diffContent}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/agents/opencode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/agents/opencode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr_agent.d.ts","sourceRoot":"","sources":["../../src/agents/pr_agent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAgD,MAAM,YAAY,CAAC;AAkK5F,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"pr_agent.d.ts","sourceRoot":"","sources":["../../src/agents/pr_agent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAgD,MAAM,YAAY,CAAC;AAkK5F,eAAO,MAAM,YAAY,EAAE,WA6N1B,CAAC"}
|
package/dist/agents/pr_agent.js
CHANGED
|
@@ -153,7 +153,10 @@ export const prAgentAgent = {
|
|
|
153
153
|
1. ALWAYS verify data flow before flagging a security sink. Only flag innerHTML, eval, dangerouslySetInnerHTML, or similar when user-controlled data actually flows into them. Hardcoded strings, template literals with internal variables, and caught Error objects are NOT security vulnerabilities.
|
|
154
154
|
2. ALWAYS quote the exact code construct you are flagging — name the specific selector, function call, variable assignment, or element. If you cannot point to a specific line in the diff, do not report the finding.
|
|
155
155
|
3. NEVER flag a pattern based on generic rules without verifying it applies to the specific context. Read the surrounding code, types, and comments before concluding something is an issue.
|
|
156
|
-
4. When uncertain about data flow or context (e.g., a function's return value is not visible in the diff), report at "info" severity with an explicit uncertainty qualifier: "Potential issue — verify that [specific concern]."
|
|
156
|
+
4. When uncertain about data flow or context (e.g., a function's return value is not visible in the diff), report at "info" severity with an explicit uncertainty qualifier: "Potential issue — verify that [specific concern]."
|
|
157
|
+
|
|
158
|
+
### Framework & Language Conventions
|
|
159
|
+
Do NOT flag: (1) Express 4-param error middleware unused _next, (2) identical query keys as double-fetching (React Query dedup), (3) Promise.allSettled iteration as "wrong order", (4) TypeScript _prefix unused params, (5) assertNever/exhaustive switch as missing error handling, (6) constants adjacent to their only usage as needing externalization.`;
|
|
157
160
|
if (existsSync(PROMPT_PATH)) {
|
|
158
161
|
try {
|
|
159
162
|
systemPrompt = await readFile(PROMPT_PATH, 'utf-8');
|
|
@@ -171,7 +174,7 @@ export const prAgentAgent = {
|
|
|
171
174
|
.join('\n');
|
|
172
175
|
const userPrompt = `## Files Changed
|
|
173
176
|
${fileSummary}
|
|
174
|
-
|
|
177
|
+
${context.projectRules ? `\n## Project Rules\n\nThe following project rules/conventions apply:\n\n${context.projectRules}\n` : ''}${context.prDescription ? `\n## PR Description\n\nThe author describes this PR as:\n\n${context.prDescription}\n` : ''}
|
|
175
178
|
## Diff Content
|
|
176
179
|
\`\`\`diff
|
|
177
180
|
${context.diffContent}
|