Skip to content

ci: supply-chain hardening — Dependabot, govulncheck, fuzz targets#70

Open
qiansheng91 wants to merge 1 commit into
mainfrom
codex/stability-supply-chain
Open

ci: supply-chain hardening — Dependabot, govulncheck, fuzz targets#70
qiansheng91 wants to merge 1 commit into
mainfrom
codex/stability-supply-chain

Conversation

@qiansheng91

Copy link
Copy Markdown
Collaborator

Three input/dependency-robustness layers, without changing the CI gate's pass/fail contract.

  • Dependabot: weekly, grouped updates for gomod (root + sdk/go), pip (tools), npm (web + docs), and github-actions. Grouped to keep PR volume low; security alerts are independent of this config, so grouping version updates does not delay security fixes.
  • govulncheck: a make vulncheck target plus a non-blocking CI step. Most current findings are Go std-lib CVEs that track the toolchain version (cleared by bumping Go), not the repo's own deps; the step comment notes to drop continue-on-error once findings are triaged.
  • Fuzz targets on two untrusted-input surfaces: the SPL parser (FuzzParse) and the import-path confinement (FuzzConfineImportPath). Seed corpora run on every go test, doubling as fast regression tests.

Verification: 2M+ fuzz executions per target with no panic or path escape; full suite green.

Adds three input/dependency-robustness layers without changing the CI gate's
pass/fail contract:

- Dependabot (.github/dependabot.yml): weekly, grouped updates for gomod
  (root + sdk/go), pip (tools), npm (web + docs), and github-actions. Grouped
  to keep PR volume low. Security alerts are independent of this config, so
  grouping version updates does not delay security fixes.

- govulncheck: `make vulncheck` target + a non-blocking CI step. Kept
  non-blocking for now because most current findings are Go std-lib CVEs that
  track the toolchain version (cleared by bumping Go), not the repo's own
  deps. The comment notes to drop continue-on-error once findings are triaged.

- Fuzz targets on two untrusted-input surfaces:
  - FuzzParse (internal/query): the SPL parser must never panic on arbitrary
    input. Seed corpus runs on every `go test`.
  - FuzzConfineImportPath (internal/umodel): the import-root confinement must
    never accept a path that escapes the root. Seeds include traversal and
    NUL bytes.
  Both ran 2M+ executions under `-fuzz` with no crash; the seed corpora double
  as fast regression tests in the normal suite.

@Mr-Xzz Mr-Xzz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the Dependabot, govulncheck, and fuzz-target additions. The vulnerability scan is non-blocking and fuzz seeds run under normal go test without changing production behavior. No blocking findings from my pass.

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.

2 participants