published Aug 27, 2026, 7:53 AM · updated Aug 27, 2026, 9:52 AM
Sighthound scanned github/gh-aw and found 172 potential issues (130 outside test/testdata). Below are the top 5 highest-severity findings (all "Critical" / Command Injection) selected from actionable.json.
1. pkg/workflow/pip_validation.go:239
- Severity: Critical — Command Injection
- Snippet:
exec.Command(uvPath, "pip", "show", pkgName, "--no-cache") - Remediation: Validate/allowlist
pkgNamebefore use (e.g. restrict to a strict package-name regex) even thoughexec.Commandalready avoids a shell; confirm no untrusted data reachesuvPathor flags either.
2. pkg/workflow/pip_validation.go:88
- Severity: Critical — Command Injection
- Snippet:
exec.Command(pipPath, "index", "versions", pkgName, "--pre") - Remediation: Same as above — validate
pkgNameagainst a strict allowlist/regex before passing toexec.Command, and ensurepipPathresolution isn't influenced by untrusted input.
3. pkg/workflow/dependabot_manifests.go:282
- Severity: Critical — Command Injection
- Snippet:
exec.Command(npmPath, "install", "--package-lock-only", "--ignore-scripts") - Remediation: Confirm
npmPathand working directory are derived from trusted, validated sources; add explicit checks that no manifest-derived values are interpolated into the command.
4. pkg/cli/grype.go:366
- Severity: Critical — Command Injection
- Snippet:
exec.Command(dockerPath, dockerArgs...) - Remediation: Audit how
dockerArgsis constructed — ensure each element is built from a fixed slice of validated values, not concatenated/interpolated from untrusted input (e.g. image names, scan targets).
5. pkg/cli/zizmor.go:193
- Severity: Critical — Command Injection
- Snippet:
exec.Command(dockerPath, dockerArgs...) - Remediation: Same as above — verify
dockerArgselements are constructed safely and validated, with no shell interpretation or unsanitized user/workflow-controlled input.
General guidance for all findings: avoid sh -c/shell string concatenation, always pass arguments as a fixed []string slice to exec.Command, and validate any dynamic values (package names, file paths, docker args) against strict allowlists before use.
Full scan details are available in the workflow run artifacts (Sighthound scan, run ID 33050719353).
Generated by 🛡️ Sighthound Security Scan · copilot · auto · 11.8 AIC · ⌖ 8.38 AIC · ⊞ 6.9K · ◷