← All finding types

cross_file_taint

CWE-20

Cross File Taint — a PullGuard finding type. Findings of this type appear in the PR comment, Step Summary, SARIF (GitHub Security tab / IDE viewers), and the HTML report, each with severity, location, and the remediation guidance below.

How to fix

Sanitize user input at the module boundary where it enters medium effort

// In the module that receives user input:
export function getInput(req: Request) {
  const raw = req.body.query;
  return sanitize(raw); // Sanitize HERE, not downstream
}

Add input validation at the service layer low effort

// In the service that processes the data:
import { z } from 'zod';
const schema = z.object({ query: z.string().max(100) });
export function processQuery(input: unknown) {
  const validated = schema.parse(input);
  return db.query('SELECT * FROM items WHERE name = $1', [validated.query]);
}

Triage

Suppress a confirmed non-issue with a committed .pullguardignore entry (pullguard ignore locally, or comment /pullguard ignore <fingerprint> <reason> on the PR — the fingerprint is printed in the PR comment’s Triage section). Entries support expiresAt for time-boxed snoozes.

Security findings at major or critical severity — and any critical finding — always surface: .pullguardignore cannot hide them. The reviewed paths that keep them visible are acknowledged (reviewed, stays in reports) and, for a confirmed false positive, a reasoned false_positive entry — visible and audited, excluded only from the merge block.