Skip to content

STAC-25556: bump klauspost/compress to v1.18.7 and drop the cleared CVE exceptions - #495

Merged
LouisParkin merged 2 commits into
stackstate-7.78.2from
STAC-25556-bump-klauspost-compress
Aug 24, 2026
Merged

STAC-25556: bump klauspost/compress to v1.18.7 and drop the cleared CVE exceptions#495
LouisParkin merged 2 commits into
stackstate-7.78.2from
STAC-25556-bump-klauspost-compress

Conversation

@LouisParkin

@LouisParkin LouisParkin commented Aug 24, 2026

Copy link
Copy Markdown

Two changes, both closing out STAC-25556.

1. klauspost/compress v1.18.5 -> v1.18.7, clearing GO-2026-5841 (OOB read in the s2 encoder). Applied with go get on the root module then go work sync — the same pair CI's check-mod-tidy reproduces — so the diff is large but mechanical: every changed line in all 87 module files is the version string, and go mod tidy on the root is a no-op afterwards. datadogconnector (v1.18.0) and test/integration/serverless/src (v1.17.11) stay behind on purpose; both sit outside the workspace and outside the root build graph, so they reach no shipped binary.

2. Deletes three now-obsolete exception files. GO-2026-5841 (both images) is cleared by change 1. CVE-2026-69247 and CVE-2026-69249 are cleared by cryptography 50.0.0, which arrives with integrations 7.78.2-5 in #494 — the agent does not pin cryptography itself, so the release tag is the only input. CVE-2026-69248 stays: no upstream fix published.

Merge order does not matter. Both image scans currently run mode: inform, so an unmatched finding reports but cannot fail a build. If this lands before #494, those two CVEs just appear un-excepted in the report until #494 follows. Carried here rather than added to #494 so that green build does not have to rerun.

Reviewer note: we never import compress/s2, so the vulnerable s2.NewDict path was not reachable. Bumping was still cheaper than arguing reachability to a scanner that matches on version.

Validated: pkg/util/compression builds and its tests pass, including impl-zstd-nocgo (the klauspost zstd implementation).

That mode: inform gap is now tracked separately as STAC-25626.

https://stackstate.atlassian.net/browse/STAC-25556

LouisParkin added a commit that referenced this pull request Aug 24, 2026
…7.78.2-5

CVE-2026-69247 (fixed in cryptography 50.0.0) and CVE-2026-69249 (fixed in
49.0.0) are both cleared by the bump to integrations 7.78.2-5, whose
agent_requirements.in moves cryptography 48.0.1 -> 50.0.0. The agent does not
pin cryptography itself; omnibus rebuilds whatever the integrations release
installs, so the release tag is the only input.

That bump is PR #494, so these two files are only obsolete once it merges.
Carried here rather than added to #494 to avoid rerunning its build, which is
already green. Nothing depends on merge order: both image scans currently run
mode: inform, so an unmatched finding reports but cannot fail a build. If #495
lands first, the two CVEs simply appear un-excepted in the report until #494
follows.

CVE-2026-69248 stays. Trivy publishes no fixed version for it, and while its
statement expects the same bump to clear it incidentally, that is a prediction
rather than something to delete an exception on.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@LouisParkin LouisParkin changed the title STAC-25556: bump klauspost/compress to v1.18.7 to clear GO-2026-5841 STAC-25556: bump klauspost/compress to v1.18.7 and drop the cleared CVE exceptions Aug 24, 2026
LouisParkin added a commit that referenced this pull request Aug 24, 2026
…7.78.2-5

CVE-2026-69247 (fixed in cryptography 50.0.0) and CVE-2026-69249 (fixed in
49.0.0) are both cleared by the bump to integrations 7.78.2-5, whose
agent_requirements.in moves cryptography 48.0.1 -> 50.0.0. The agent does not
pin cryptography itself; omnibus rebuilds whatever the integrations release
installs, so the release tag is the only input.

That bump is PR #494, so these two files are only obsolete once it merges.
Carried here rather than added to #494 to avoid rerunning its build, which is
already green. Nothing depends on merge order: both image scans currently run
mode: inform, so an unmatched finding reports but cannot fail a build. If #495
lands first, the two CVEs simply appear un-excepted in the report until #494
follows.

CVE-2026-69248 stays. Trivy publishes no fixed version for it, and while its
statement expects the same bump to clear it incidentally, that is a prediction
rather than something to delete an exception on.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@LouisParkin
LouisParkin force-pushed the STAC-25556-bump-klauspost-compress branch from 4c3694b to 3bd71e7 Compare August 24, 2026 10:23
LouisParkin and others added 2 commits August 24, 2026 14:46
GO-2026-5841 (GHSA-259r-337f-4rfw) is an out-of-bounds read in the s2
encoder, reachable via s2.NewDict with a crafted dictionary. It affects
v1.16.0 up to v1.18.7, which is the fix.

The agent never imports compress/s2 -- only zstd, zlib and flate -- so the
vulnerable symbol is not reachable from our command graph. The bump is still
the right fix rather than a VEX statement: it is a patch release on a direct
dependency, so it costs less than arguing reachability to an SCA scanner that
matches on version.

Applied with `go get` on the root module followed by `go work sync`, which is
what CI's check-mod-tidy reproduces. `go mod tidy` on the root is a no-op
afterwards. Two modules stay behind deliberately: datadogconnector (v1.18.0)
and test/integration/serverless/src (v1.17.11) are outside the workspace and
outside the root build graph, so they reach no shipped binary and tidy would
not upgrade them either.

Drops the two GO-2026-5841 exception files, which pinned the finding at
v1.18.5 and existed only as a bridge until this bump landed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…7.78.2-5

CVE-2026-69247 (fixed in cryptography 50.0.0) and CVE-2026-69249 (fixed in
49.0.0) are both cleared by the bump to integrations 7.78.2-5, whose
agent_requirements.in moves cryptography 48.0.1 -> 50.0.0. The agent does not
pin cryptography itself; omnibus rebuilds whatever the integrations release
installs, so the release tag is the only input.

That bump is PR #494, so these two files are only obsolete once it merges.
Carried here rather than added to #494 to avoid rerunning its build, which is
already green. Nothing depends on merge order: both image scans currently run
mode: inform, so an unmatched finding reports but cannot fail a build. If #495
lands first, the two CVEs simply appear un-excepted in the report until #494
follows.

CVE-2026-69248 stays. Trivy publishes no fixed version for it, and while its
statement expects the same bump to clear it incidentally, that is a prediction
rather than something to delete an exception on.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@LouisParkin
LouisParkin force-pushed the STAC-25556-bump-klauspost-compress branch from 3bd71e7 to 059dc63 Compare August 24, 2026 12:46
@LouisParkin
LouisParkin enabled auto-merge August 24, 2026 13:48
@LouisLotter

Copy link
Copy Markdown

P2: Please delete exceptions/stackstate-k8s-agent/CVE-2026-69248.yaml as part of this cleanup. The upstream pyca advisory marks cryptography 49.0.0 as patched, PR #494 already pins 50.0.0, and the image scan for this head reports the exception as unused. Leaving accepted_pending_upstream_fix / no_upstream_fix_published behind is stale policy.

Upstream advisory: GHSA-m2h6-j472-rp4c

@LouisParkin
LouisParkin merged commit d6fe15a into stackstate-7.78.2 Aug 24, 2026
42 checks passed
@LouisParkin
LouisParkin deleted the STAC-25556-bump-klauspost-compress branch August 24, 2026 14: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.

2 participants