fix(server): disable Multipath TCP on listeners
Merged
SA
4d ago+31+31+01234567890123456789-0-0-0123456789
Sets godebug multipathtcp=0 in go.mod, so GoModel's Linux listeners no longer use MPTCP. This blocks the known exploit path for the Linux kernel use-after-free CVE-2026-98432 (Go advisory, go.dev/issue/82717).
This is a mitigation, not a fix: the kernel bug isn't specific to MPTCP, so hosts still need a patched kernel.
User impact
- MPTCP clients fall back to regular TCP. Outbound provider connections don't change, since Go already leaves MPTCP off for them.
GODEBUG=multipathtcp=2turns it back on for listeners.- Custom binaries built from the
runpackage don't inherit this setting, so they need//go:debug multipathtcp=0directly beforepackage main. The docs now say so. Ago.modline would be ignored in workspace mode, but this works in both. - Images and binaries already released stay exposed until upgraded. They can set
GODEBUG=multipathtcp=0in the environment without a rebuild.
Testing
go test ./...passes.- The builder stages of
DockerfileandDockerfile.pluginsboth produce a binary withDefaultGODEBUG=multipathtcp=0. - Not observed at runtime, because the Docker Desktop kernel has no MPTCP support.
Summary by CodeRabbit
- Security
- Multipath TCP is disabled for GoModel’s Go binary. A patched Linux kernel is still required to address CVE-2026-98432.
- Documentation
- Guidance in English, German, Polish, and Chinese clarifies that custom binaries must set this option independently; GoModel’s setting does not carry over to other modules.