这几天安全圈和科技博主全在疯传一条核弹级预警:任何暴露了 TCP 端口的 Linux 服务器,只要用 Go 写的 Web 服务就会被黑客远程完全接管。

评论区瞬间哀鸿遍野,无数公司的后端运维连夜爬起来打内核补丁。但只要你把 Go 标准库的 net 包源码和 Linux 内核的 socket 机制看一遍,就知道这是最典型的概念移花接木。

这个漏洞(CVE 涉及的内核多路径 TCP 模块)确实存在,严重级别也确实高,但攻击的前提条件被自媒体故意掐掉了。

Go 语言的 net.Listen("tcp", ":8080"),底层调用的是操作系统最原始的 AF_INET、SOCK_STREAM 和 IPPROTO_TCP。
它走的是规规矩矩的单路径普通 TCP 协议栈,根本不会主动去协商 MPTCP。

MPTCP(MultiPath TCP,RFC 8684)在 Linux 5.6 之后确实合入了主线内核,但它是一个必须显式声明的特异协议。
除非你在代码里显式写了 IPPROTO_MPTCP,或者服务器管理员手动在 sysctl 里开启了 net.mptcp.enabled 并且配置了强制路由代理,否则内核根本不会把进来的普通 TCP 握手包扔给 MPTCP 状态机处理。

真正受影响的,是那些跑在移动回传网络、跨多网卡聚合或者特定 CDN 边缘节点上、主动启用了 MPTCP 的特定网关。

普通跑在内网或者反向代理后面的 Go 业务服务,被这波恐慌吓得睡不着觉,纯粹是替概念炒作买了单。
https://x.com/fishjar/status/2116949442754728233?a=SjgK0gHsJGrfyLt1ii0&s=35

Comments

Be the first to add a comment