Repository navigation
fix: clear the six OSV advisories behind Scorecard alert 62 - #1262
Merged
Merged
Conversation
Scorecard's Vulnerabilities check scored 4 on six advisories. Five are cleared by upgrading: - golang.org/x/crypto v0.53.0 -> v0.56.0 (root module) clears the x/crypto/ssh source-address bypass (GO-2026-6303, CVE-2026-56854) and both deadlocked-channel DoS advisories (GO-2026-6354/CVE-2026-78662, GO-2026-6355/CVE-2026-56855), pulling x/net v0.56.0 -> v0.57.0 and x/sys v0.46.0 -> v0.47.0 with it. - golang.org/x/mod v0.35.0 -> v0.40.0 (ci-tools) clears the sumdb tile verification bypass (GO-2026-6179, CVE-2026-56865) and the unauthenticated-hash Lookup issue (GO-2026-6180, CVE-2026-56864), bringing x/sync, x/sys, x/telemetry and x/tools along. Both modules stay tidy; no GLX code changed. The sixth, GO-2026-5932, has no fixed version -- it marks golang.org/x/crypto/openpgp unmaintained rather than patching a defect -- and does not apply. x/crypto is reached only through go-git, which uses x/crypto/hkdf and gets OpenPGP from ProtonMail/go-crypto/openpgp, so `go list -deps ./...` shows no x/crypto/openpgp package and govulncheck reports it as present-but-uncalled. Scorecard's check is version-matched rather than reachability-based, so a new root osv-scanner.toml ignores that one ID with the reasoning and re-verification command inline, and SECURITY-POSTURE.md gains a "Vulnerability suppression" subsection stating the rule the file operates under. Verified with `osv-scanner scan source -r .` (no issues found), `govulncheck` (0 called), `make tidy-check`, `make ci-tools-tidy-check`, markdownlint and `reuse lint`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015KHE6GoBoSwQwQ3mSDMaM7 Signed-off-by: isaacschepp <isaac.schepp@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015KHE6GoBoSwQwQ3mSDMaM7 Signed-off-by: isaacschepp <isaac.schepp@gmail.com>
Deploying genealogix with
|
| Latest commit: |
98e42a1
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://6b214eb9.genealogix.pages.dev |
| Branch Preview URL: | https://fix-osv-vulns-62.genealogix.pages.dev |
noahbjohnson
previously approved these changes
Sep 18, 2026
Resolves two SECURITY-POSTURE.md conflicts against #1264, which SHA-pinned first-party actions/* and reversed the #1022 convention: - The "GitHub Actions pinned per a documented convention" row takes main's universal-SHA text; this branch's stale pre-#1264 wording is dropped. - The "Continuous security posture scoring" row keeps main's text plus this branch's pointer to the new Vulnerability suppression section. - The Action pinning section keeps main's syft-installer paragraph, followed by this branch's new "Vulnerability suppression" subsection. #1264 removed the accepted Pinned-Dependencies score ceiling, so the suppression section's and changelog entry's cross-reference to it now points at Action pinning's accepted consequence and known limits instead. Signed-off-by: Isaac Schepp <isaac.schepp@gmail.com> Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015KHE6GoBoSwQwQ3mSDMaM7
Contributor
Dependency ReviewThe following issues were found:
License Issuesci-tools/go.mod
go.mod
OpenSSF Scorecard
Scanned Files
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
The x/crypto and x/mod bumps in this PR fail Dependency Review's license check: GitHub resolves the bumped golang.org/x/* versions as `BSD-3-Clause AND LicenseRef-scancode-google-patent-license-golang`, and the allow-licenses list from #340 carries `BSD-3-Clause` alone, so the compound expression does not match. The LicenseRef is the Go PATENTS file that ships beside the BSD-3-Clause LICENSE in every golang.org/x module -- an additional patent grant for implementations of Go, terminating only if the user sues over Go patents. It adds a right on top of the copyright license and imposes no obligation on GLX or on downstream consumers, so there is nothing for a review decision to weigh, which is the same reasoning the list already applies to 0BSD and Unlicense. The rationale is recorded inline beside the entry, matching the convention every other license in that list follows. Signed-off-by: Isaac Schepp <isaac.schepp@gmail.com> Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015KHE6GoBoSwQwQ3mSDMaM7
noahbjohnson
approved these changes
Sep 18, 2026
noahbjohnson
added a commit
that referenced
this pull request
Oct 4, 2026
… SARIF (#1341) * ci: Hash-pin PyYAML and apply osv-scanner suppressions to govulncheck SARIF Clears code-scanning alerts 205 and 247. Alert 205 (Scorecard Pinned-Dependencies): issue-templates-drift.yml ran a bare `pip install pyyaml`. It now installs from .github/requirements/issue-templates-drift.txt, which pins pyyaml==6.0.3 to its published sha256 hashes, with `pip install --require-hashes --no-deps`. A Dependabot pip entry for /.github/requirements keeps it current, with the same cooldown as the other ecosystems, and the requirements file joins the workflow's path triggers. Alert 247 (govulncheck GO-2026-5932): the advisory marks golang.org/x/crypto/openpgp unmaintained and has no fixed version, so no x/crypto bump can clear it. GLX does not import the package; osv-scanner.toml already suppresses it for osv-scanner and Scorecard (#1262), but govulncheck has no ignore mechanism and its SARIF still carried it as a module-level note. scripts/filter-govulncheck-sarif.py now drops a SARIF result only when its ID is in osv-scanner.toml AND its level is "note", so one reviewed list governs both scanners, and a suppressed advisory that becomes imported or called is reported again. SECURITY-POSTURE.md documents the filter. Also adds the OpenSSF Best Practices badge (project 15136) to the README, toward alert 59, and removes a truncated duplicate of the #1262 CHANGELOG entry. Signed-off-by: Isaac Schepp <isaac.schepp@gmail.com> * docs: Reference PR #1341 in its CHANGELOG entry Signed-off-by: Isaac Schepp <isaac.schepp@gmail.com> --------- Signed-off-by: Isaac Schepp <isaac.schepp@gmail.com> Signed-off-by: Noah B Johnson <noah@noahbjohnson.net> Co-authored-by: genealogix-ci-bot[bot] <266433663+genealogix-ci-bot[bot]@users.noreply.github.com> Co-authored-by: Noah B Johnson <noah@noahbjohnson.net>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Clears code-scanning alert 62 — the OpenSSF Scorecard Vulnerabilities check, scored
4on six open OSV advisories.Five cleared by upgrading
GO-2026-6303golang.org/x/crypto/ssh— source-address critical option not enforced for non-public-key auth callbacksx/cryptov0.53.0 → v0.56.0GO-2026-6354golang.org/x/crypto/ssh— DoS on deadlocked undecided channelGO-2026-6355golang.org/x/crypto/ssh— DoS on deadlocked established channelGO-2026-6179golang.org/x/mod/sumdb/tlog— transparency-log tile verification bypassx/modv0.35.0 → v0.40.0 (ci-tools)GO-2026-6180golang.org/x/mod/sumdb— unrelated unauthenticated hashes honored inLookupThe
x/cryptobump pullsx/netv0.56.0 → v0.57.0 andx/sysv0.46.0 → v0.47.0 into the root module; thex/modbump bringsx/sync,x/sys,x/telemetryandx/toolsalong inci-tools. Both modules stay tidy. No GLX code changed — these are dependency-graph and CI-tooling bumps only.The sixth:
GO-2026-5932, suppressed with reasoningGO-2026-5932marksgolang.org/x/crypto/openpgpunmaintained. It has no fixed version — it is an unmaintained-package advisory, not a patched defect — so no upgrade clears it, and it does not apply to GLX:golang.org/x/cryptois an indirect dependency reached only throughgithub.com/go-git/go-git/v5, which usesgolang.org/x/crypto/hkdf.github.com/ProtonMail/go-crypto/openpgp, the maintained replacement.go list -deps ./... | grep golang.org/x/crypto/openpgpreturns nothing — the package is not in the build graph.govulncheckagrees: "1 vulnerability in modules you require, but your code doesn't appear to call these vulnerabilities."Scorecard's check is version-matched rather than reachability-based, so it reports the advisory regardless. A new root
osv-scanner.tomlignores that one ID, with the reasoning and the re-verification command recorded inline.To keep that from being a silent mask,
SECURITY-POSTURE.mdgains a Vulnerability suppression subsection stating the rule the file operates under — suppress only what upgrading cannot clear and what is provably outside the build graph, every entry carrying its reason and its re-verification command — and the Level 2 Scorecard row now links to it. This matches the document's existing stance on the Pinned-Dependencies ceiling ("no allowlist config masks it").osv-scanner.tomlis added to.reuse/dep5alongside the other root config files, soreuse lintstays green.Verification
go build ./...passes.go test ./...has two pre-existing Windows-only failures on this machine (TestSafeWriteMultiFileArchive/refuses_to_wipe_stale_backup_with_unrecovered_media_binariesasserts a forward-slash path;TestPreflightFileOps_ReportsUnexpectedStatErrorneeds POSIX permissions). Both fail identically on unmodifiedmainata31becc9, so they are unrelated to this change — CI runs onubuntu-latest, where they pass.Scorecard has no
pull_requesttrigger by design, so the alert closes on the nextmainrun after merge rather than on this PR.🤖 Generated with Claude Code
https://claude.ai/code/session_015KHE6GoBoSwQwQ3mSDMaM7