chore(deps): bump github.com/moby/spdystream to v0.5.1 (CVE-2026-35469)#135
chore(deps): bump github.com/moby/spdystream to v0.5.1 (CVE-2026-35469)#135
Conversation
Patches CVE-2026-35469 (GHSA-pc3f-x583-g7j2): the SPDY/3 frame parser in spdystream <= v0.5.0 allocates memory based on attacker-controlled counts and lengths from SETTINGS and header frames, allowing a remote peer to crash the process with a single crafted frame. v0.5.1 adds bounds checks and configurable per-field/header limits. Pulled in transitively via k8s.io/apimachinery's spdy httpstream support. Assisted-By: Claude <noreply@anthropic.com> Signed-off-by: Aleksei Sviridkin <f@lex.la>
|
Warning Rate limit exceeded
To continue reviewing without waiting, purchase usage credits in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request updates the github.com/moby/spdystream dependency from v0.5.0 to v0.5.1 to address a security vulnerability (CVE-2024-45336). The reviewer suggests evaluating whether direct dependencies, such as k8s.io/client-go, expose the new configuration options introduced in this version—like WithMaxControlFramePayloadSize—to further harden the application against memory amplification attacks.
| github.com/mitchellh/reflectwalk v1.0.2 // indirect | ||
| github.com/moby/moby/api v1.54.1 // indirect | ||
| github.com/moby/spdystream v0.5.0 // indirect | ||
| github.com/moby/spdystream v0.5.1 // indirect |
There was a problem hiding this comment.
While bumping the version to v0.5.1 addresses the immediate vulnerability (CVE-2024-45336, incorrectly referenced as CVE-2026-35469 in the PR title) through new internal bounds checks, the new version also introduces configurable limits (WithMaxControlFramePayloadSize, WithMaxHeaderFieldSize, etc.) to prevent similar memory amplification attacks. Although this is an indirect dependency, it is recommended to evaluate if any direct dependencies (like k8s.io/client-go) expose these new configuration options to further harden the application against OOM attacks in high-load scenarios.
kvaps
left a comment
There was a problem hiding this comment.
LGTM. Clean transitive bump.
The go mod why chain (talm → siderolabs/talos → hydrophone → k8s.io/client-go → k8s.io/apimachinery → moby/spdystream) is correctly identified, MVS picks v0.5.1 without replace, no breaking API change in the patch release. Diff is exactly two lines in go.mod plus the matching go.sum hashes — nothing else moved. Build/vet/test all pass per PR description.
Ship it.
Bumps the transitive dependency
github.com/moby/spdystreamfrom v0.5.0 to v0.5.1 to patch CVE-2026-35469 (HIGH).What
The SPDY/3 frame parser in spdystream <= v0.5.0 allocates memory based on attacker-controlled counts and lengths from SETTINGS and header frames. A remote peer that can send SPDY frames to a service can crash the process with a single crafted control frame (memory amplification → OOM). v0.5.1 adds bounds checks on
numSettings, header counts, and per-field sizes, plus configurable limits via new functional options.Why this is a clean bump
talm → siderolabs/talos → hydrophone → k8s.io/client-go → k8s.io/apimachinery → moby/spdystream(go mod why).NewConnectionWithOptions,WithMaxControlFramePayloadSize,WithMaxHeaderFieldSize,WithMaxHeaderCount). No breaking API changes.replace; no parent dep requires a different version.go.mod+ the matchinggo.sumhashes.Verification
go build ./...— OKgo vet ./...— OKgo test ./...— all packages passCloses Dependabot alert #45.