Skip to content

Add dependency risk review report under docs/security [S2BMQ4R] - #25

Merged
cameronnewman merged 2 commits into
mainfrom
ergates/task/06G3EKQ8AZC7MTAD3KNS2BMQ4R
Aug 25, 2026
Merged

Add dependency risk review report under docs/security [S2BMQ4R]#25
cameronnewman merged 2 commits into
mainfrom
ergates/task/06G3EKQ8AZC7MTAD3KNS2BMQ4R

Conversation

@cameronnewman

@cameronnewman cameronnewman commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

The whole branch diff against main is one added file. Work is complete and pushed.

Summary

Adds docs/security/DEPENDENCY-RISK.md, a dependency risk review covering every manifest in the repo. go.mod is the only conventional manifest, so the review also inventories the third-party code declared inline in .github/workflows/ci.yml, action.yml, and .goreleaser.yaml — Go tools, GitHub Actions, an npm package, and a container image — because those execute with repository credentials. 12 direct dependencies are rated: 0 Critical, 1 High, 3 Medium, 8 Low. Three findings are called out at the top of the report.

Urgent findings

  • The GoReleaser CLI is the one unpinned third-party executable (version: "~> v2", .github/workflows/ci.yml:179 and :245), floating to the latest v2.x in the two jobs holding contents: write that publish consumer-downloaded binaries. Everything else in the repo is SHA-, tag-, or digest-pinned. Rated High.
  • markdownlint-cli2@0.18.1 hard-pins js-yaml 4.1.0 and markdown-it 14.1.0 as exact versions, so npm cannot resolve away six advisories (2 High, CVSS 7.5). Bumping to 0.23.2 clears all six — verified by auditing a resolved 0.23.2 tree.
  • go 1.26.0 admits a toolchain with six symbol-reachable stdlib advisories (4× html/template XSS via render.HTML, encoding/xml recursion via both parsers). Not a CI or release exposure — every build path floats go-version: "1.26" to go1.26.7 — so it's rated Medium, not High.

Two checks de-escalated rather than escalated: all four GitHub Actions SHA pins were verified against their upstream tag objects (all match, all latest), and the aquasec/trivy digest matches the official 0.72.0 manifest in the registry, which bounds the open GO-2026-4919 supply-chain advisory that OSV matches to that version.

Changes

  • docs/security/DEPENDENCY-RISK.md — new. Summary (per-ecosystem totals, risk counts, tools and versions, date), a seven-column table per ecosystem, a subsection per Medium-and-above dependency with reasoning, call sites, and a recommended action, plus full evidence for the Low-rated ones and a method/limitations note. Reachability is marked verified only for Go and unverified everywhere else.

Validation

  • govulncheck ./... (v1.7.0, DB 2026-08-21) — 6 symbol-reachable, 5 imported-not-called, 22 required-not-imported, all stdlib.
  • npm audit on a --package-lock-only tree for markdownlint-cli2@0.18.1 — 1 high, 2 moderate groups; the same for 0.23.2 — zero.
  • npx --yes markdownlint-cli2@0.18.1 (the repo's own pinned linter) — Summary: 0 error(s) across 16 files.
  • Every cited file:line was checked against the file with sed -n; six citations had drifted and were corrected.
  • git diff --name-status main...HEAD — a single A entry.

Not verified: CI was not waited on. I expect build, security-scan, lint, and release to run; nothing is known red.


Ergates task: 06G3EKQ8AZC7MTAD3KNS2BMQ4R

ergates-agent added 2 commits August 25, 2026 05:07
Inventories the direct dependencies of every manifest across all five
ecosystems present, rating each on version age, advisories, project health
and the API surface this repo actually calls.

Three findings drove the ratings:

- The GoReleaser CLI is the one unpinned third-party executable, floating
  on "~> v2" in the two jobs that hold contents: write.
- markdownlint-cli2 0.18.1 declares js-yaml and markdown-it as exact
  versions, so npm cannot resolve away six transitive advisories.
- The go 1.26.0 directive admits a toolchain with six symbol-reachable
  stdlib advisories; CI floats past it, local builds do not.

Report only — no manifest, lockfile, source file or CI config is touched.
@cameronnewman cameronnewman changed the title [WIP] Add dependency risk review report under docs/security [S2BMQ4R] Add dependency risk review report under docs/security [S2BMQ4R] Aug 25, 2026
@cameronnewman
cameronnewman marked this pull request as ready for review August 25, 2026 05:19
@greptile-apps

greptile-apps Bot commented Aug 25, 2026

Copy link
Copy Markdown

Greptile Summary

The PR adds a comprehensive dependency-risk report covering repository-managed Go, npm, GitHub Actions, CI tools, and container dependencies.

  • Inventories 12 direct dependencies and their API or CLI usage.
  • Documents version age, vulnerabilities, maintenance signals, reachability limitations, and risk ratings.
  • Prioritizes exact GoReleaser pinning, a markdownlint-cli2 upgrade, and a higher Go toolchain patch floor.

Confidence Score: 5/5

The documentation-only PR appears safe to merge, with no concrete inaccuracies or CI failures identified.

The report accurately reflects the repository-managed dependency declarations and relevant code paths, explicitly distinguishes verified from unverified reachability, and complies with the applicable Markdown lint configuration.

Reviews (1): Last reviewed commit: "docs(deps): dependency risk review for t..." | Re-trigger Greptile

@cameronnewman
cameronnewman merged commit 11fc7e7 into main Aug 25, 2026
7 checks passed
@cameronnewman
cameronnewman deleted the ergates/task/06G3EKQ8AZC7MTAD3KNS2BMQ4R branch August 25, 2026 05:35
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