[sighthound] Security findings in github/gh-aw

Sighthound Security Scan · issue · closed

Filter2mode:review mode:live
All recorded Export JSON
github-actions[bot]

published Aug 25, 2026, 5:29 AM · updated Aug 25, 2026, 6:35 AM

Sighthound Security Scan — Top Findings

Automated static analysis (Sighthound) flagged 123 actionable findings (33 Critical, 13 High, 77 Medium) outside test paths. Below are the 5 highest-severity findings for triage.

1. Command Injection (Critical, CWE-78)

  • File: pkg/workflow/pip_validation.go:230
  • Snippet: exec.Command(uvPath, "pip", "show", pkgName, "--no-cache")
  • Remediation: Confirm pkgName is validated/sanitized before use (e.g., matched against an allowlist regex for valid package name characters) before being passed to exec.Command. Arguments are already passed as a fixed slice, which mitigates shell injection, but untrusted package names should still be validated.

2. Command Injection (Critical, CWE-78)

  • File: pkg/workflow/pip_validation.go:88
  • Snippet: exec.Command(pipPath, "index", "versions", pkgName, "--pre")
  • Remediation: Same as above — validate pkgName against a strict allowlist pattern before invoking pip commands.

3. Command Injection (Critical, CWE-78)

  • File: pkg/workflow/dependabot_manifests.go:282
  • Snippet: exec.Command(npmPath, "install", "--package-lock-only", "--ignore-scripts")
  • Remediation: Arguments here are static; verify npmPath resolution isn't influenced by untrusted PATH manipulation. Consider resolving the binary via an absolute, verified path.

4. Command Injection (Critical, CWE-78)

  • File: pkg/cli/grype.go:337
  • Snippet: exec.Command(dockerPath, dockerArgs...)
  • Remediation: Ensure dockerArgs (image name, flags) are built from validated/sanitized inputs and not directly from unsanitized user-controlled workflow content before being passed to exec.Command.

5. Command Injection (Critical, CWE-78)

  • File: pkg/cli/upgrade_command.go:507
  • Snippet: exec.Command(exe, newArgs...)
  • Remediation: Verify newArgs originates only from the process's own trusted os.Args/relaunch logic, not from any external/untrusted source, before re-exec.

Note: all 5 use fixed argument slices (no shell interpolation), which mitigates classic shell injection; confidence is High per the scanner but manual verification of each pkgName/dockerArgs/newArgs source is recommended to confirm untrusted data cannot reach these calls.

Full scan: 165 findings, 123 actionable (33 Critical, 13 High, 77 Medium).

Generated by 🛡️ Sighthound Security Scan · copilot · auto · 11.3 AIC · ⌖ 6.47 AIC · ⊞ 6.9K ·