Fix: Upgrade spdystream to v0.5.1 to address DoS vulnerability - #3499
Conversation
Upgraded github.com/moby/spdystream from v0.5.0 to v0.5.1 in both kubernetes-agent/api and kubernetes-agent/kas modules to fix a critical denial of service vulnerability where SPDY/3 frame parser did not validate attacker-controlled counts and lengths before allocating memory. The vulnerability allowed remote peers to exhaust process memory with a single crafted control frame. Version 0.5.1 adds proper bounds checking to prevent this attack. Affected modules: - go/kubernetes-agent/api: Updated go.mod and go.sum - go/kubernetes-agent/kas: Updated go.mod and go.sum Security Advisory: Kubelet, CRI-O, kube-apiserver DoS via SPDY streaming code
There was a problem hiding this comment.
This PR was generated by the claude Plural Agent Runtime. Here's some useful information you might want to know to evaluate the ai's perfomance:
| Name | Details |
|---|---|
| 💬 Prompt | Security scanners have found the following vulnerability in our cluster:... |
| 🔗 Run history | View run history |
Greptile SummaryThis PR upgrades
Confidence Score: 3/5Partially safe — the targeted modules are fixed, but the vulnerable dependency persists in a third module. A P1 finding (incomplete security remediation) prevents a higher score. The two updated modules are correct, but go/helm-test still carries the vulnerable v0.5.0, leaving the fix incomplete. go/helm-test/go.mod and go/helm-test/go.sum need to be updated to spdystream v0.5.1
|
| Filename | Overview |
|---|---|
| go/kubernetes-agent/api/go.mod | Correctly bumps github.com/moby/spdystream from v0.5.0 to v0.5.1 to address the DoS vulnerability |
| go/kubernetes-agent/api/go.sum | Checksums correctly updated for spdystream v0.5.1; go.mod hash matching v0.5.0 is expected if the module's go.mod file was unchanged between releases |
| go/kubernetes-agent/kas/go.mod | Correctly bumps github.com/moby/spdystream from v0.5.0 to v0.5.1 to address the DoS vulnerability |
| go/kubernetes-agent/kas/go.sum | Checksums correctly updated for spdystream v0.5.1 |
Comments Outside Diff (1)
-
go/helm-test/go.mod, line 90 (link)Vulnerable version not updated in
helm-testmodulego/helm-test/go.modstill pinsgithub.com/moby/spdystream v0.5.0, the version with the DoS vulnerability this PR aims to fix. Thego/helm-test/go.sumandgo/tools/go.sumalso still carry v0.5.0 checksums. This module needs the same bump to v0.5.1 to be fully remediated.
Reviews (1): Last reviewed commit: "fix: upgrade moby/spdystream to v0.5.1 t..." | Re-trigger Greptile
Summary
This PR upgrades
github.com/moby/spdystreamfrom v0.5.0 to v0.5.1 in the kubernetes-agent modules (api and kas) to address a critical denial of service vulnerability.Vulnerability Details:
The SPDY/3 frame parser in versions ≤0.5.0 did not validate attacker-controlled counts and lengths before allocating memory. Three allocation paths were affected:
Because SPDY header blocks are zlib-compressed, a small on-the-wire payload can decompress into large attacker-controlled values, allowing memory exhaustion with a single crafted control frame.
Changes
go/kubernetes-agent/api/go.mod: Updated spdystream dependency to v0.5.1go/kubernetes-agent/api/go.sum: Updated checksums for v0.5.1go/kubernetes-agent/kas/go.mod: Updated spdystream dependency to v0.5.1go/kubernetes-agent/kas/go.sum: Updated checksums for v0.5.1Test Plan
Security Impact
This upgrade prevents potential denial of service attacks against the Kubernetes agent components that communicate via SPDY protocol.
🤖 Generated with Claude Code