Skip to content

docs(security): report security findings for the repo [PB9R0VC] - #24

Merged
cameronnewman merged 4 commits into
mainfrom
ergates/task/06G3EKMR4ZJ9ZN8F86WPB9R0VC
Aug 25, 2026
Merged

docs(security): report security findings for the repo [PB9R0VC]#24
cameronnewman merged 4 commits into
mainfrom
ergates/task/06G3EKMR4ZJ9ZN8F86WPB9R0VC

Conversation

@cameronnewman

@cameronnewman cameronnewman commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Report is on the branch as a single-file commit. Final verification: git diff --stat main...HEAD shows only docs/security/SECURITY-FINDINGS.md, and markdownlint reports zero errors on it.

Summary

Scanned every stack present in this repository — Go module, GitHub Actions workflows, the published composite Action, the scaffold/example workflows it emits, the embedded render templates, and the GoReleaser pipeline — and wrote the results to docs/security/SECURITY-FINDINGS.md. Eleven findings: 0 Critical, 1 High, 4 Medium, 6 Low. Nothing was fixed; the deliverable is a triage document and the report file is the only file the PR changes.

The High is a template-injection sink in action.yml:151-156, where ${{ inputs.* }} is pasted into a bash run: block — GitHub substitutes before bash parses, so the quoting there does not protect it. Because this Action runs in consumers' repositories, the exposure lands on their runners. The correct pattern is already present two steps earlier at action.yml:66-67.

Changes

  • docs/security/SECURITY-FINDINGS.md (new, only file changed) — summary table with per-severity counts, the stacks detected vs. scanned, tools with versions, and the date; an explicit coverage-gaps section; a table walking every manual-review class the task named with its conclusion; then one section per finding, Critical→Low, each with a stable ID, file:line, source, attacker impact, and remediation. No exploit code.

Three findings sit below their scanner default, with the reasoning stated so a reviewer can argue with the argument: the five html/template XSS advisories (no JS, URL, or <meta content> context exists in the embedded template), and both gosec clusters (G304 paths all come from the operator's own flags; G302/G306 files are public by intent).

Worth flagging for triage beyond the findings themselves: the repo's only automated security gate covers go.mod deps and secrets only — Trivy reported Detected config files num=0, and nothing scans action.yml.

Validation

  • go vet ./... — exit 0. staticcheck ./... — exit 0. actionlint -no-color -oneline — exit 0.
  • govulncheck ./... — exit 3, six called stdlib advisories. gosec -fmt=text ./... — exit 1, nine issues. Trivy 0.72.0 filesystem scan — 0/0/0.
  • npx markdownlint-cli2@0.18.1 — zero errors on the report (the repo's own lint config).
  • Not verified: CI was not waited on. zizmor and shellcheck could not be installed here, so their coverage is absent and is called out in the report rather than silently omitted.

Ergates task: 06G3EKMR4ZJ9ZN8F86WPB9R0VC

ergates-agent added 2 commits August 25, 2026 05:07
A triage document, not a change: eleven findings across the Go module, the
CI workflows and the composite Action, rated by exploitability in this
codebase rather than by scanner default. Each records the exact command
and tool version that produced it, so a reviewer can reproduce or refute
it without re-deriving the setup.

Three ratings move off their scanner default, each with the reasoning
stated inline: the html/template advisories and both gosec CWE-276 and
CWE-22 clusters are Low here, because the vulnerable contexts do not
exist in the embedded templates and no untrusted path or secret reaches
the flagged writers.

The scan is recorded as incomplete where it is: zizmor and shellcheck
could not be installed, and no tool in this repository or in the scan
environment inspects action.yml at all.
@cameronnewman
cameronnewman force-pushed the ergates/task/06G3EKMR4ZJ9ZN8F86WPB9R0VC branch from 5c1914a to 039824b Compare August 25, 2026 05:16
@cameronnewman cameronnewman changed the title [WIP] docs(security): report security findings for the repo [PB9R0VC] docs(security): report security findings for the repo [PB9R0VC] Aug 25, 2026
@cameronnewman
cameronnewman marked this pull request as ready for review August 25, 2026 05:17
@greptile-apps

greptile-apps Bot commented Aug 25, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds a security-triage report covering the repository’s Go code, GitHub Actions, templates, generated workflows, and release pipeline.

  • Documents eleven findings with severity, impact, evidence, and remediation.
  • Records scanner coverage, validation results, and known coverage gaps.
  • Corrects both previously reported documentation inconsistencies.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Reviews (3): Last reviewed commit: "docs(security): correct input count on S..." | Re-trigger Greptile

Comment thread docs/security/SECURITY-FINDINGS.md Outdated
Comment thread docs/security/SECURITY-FINDINGS.md Outdated
cameronnewman and others added 2 commits August 25, 2026 15:32
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Report body listed the seven inputs interpolated into the vulnerable
script step but described them as "six", contradicting the enumeration.
Also clarifies that go-version (used only by the earlier setup-go step)
is out of scope for this finding.

Addresses greptile review on #24.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@cameronnewman
cameronnewman merged commit 858922a into main Aug 25, 2026
7 checks passed
@cameronnewman
cameronnewman deleted the ergates/task/06G3EKMR4ZJ9ZN8F86WPB9R0VC branch August 25, 2026 05:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant