关于Linux TCP "SACK PANIC" 远程拒绝服务漏洞


关于Linux TCP “SACK PANIC” 远程拒绝服务漏洞

Linux 以及 FreeBSD 等系统内核上存在严重远程DoS漏洞,攻击者可利用该漏洞构造并发送特定的 SACK 序列请求到目标服务器导致服务器崩溃或拒绝服务。

目前已知受影响版本如下:

1
2
3
4
5
6
7
8
FreeBSD 12(使用到 RACK TCP 协议栈)
CentOS 5(Redhat 官方已停止支持,不再提供补丁)
CentOS 6
CentOS 7
Ubuntu 18.04 LTS
Ubuntu 16.04 LTS
Ubuntu 19.04
Ubuntu 18.10

详细内核修复版本如下:

1
2
3
4
5
CentOS 6 :2.6.32-754.15.3
CentOS 7 :3.10.0-957.21.3
Ubuntu 18.04 LTS:4.15.0-52.56
Ubuntu 16.04 LTS:4.4.0-151.178
FreeBSD:腾讯云官方提供的 FreeBSD 镜像默认不受该漏洞影响,请放心使用。

推荐方案:【CentOS 6/7 系列用户】

1
2
3
4
1)yum clean all && yum makecache,进行软件源更新;
2)yum update kernel -y,更新当前内核版本;
3)reboot,更新后重启系统生效;
4)uname -a,检查当前版本是否为上述【安全版本】,如果是,则说明修复成功。

推荐方案:【Ubuntu 16.04/18.04 LTS 系列用户】

1
2
3
1)sudo apt-get update && sudo apt-get install linux-image-generic,进行软件源更新并安装最新内核版本;
2)sudo reboot,更新后重启系统生效;
3)uname -a,检查当前版本是否为【安全版本】,如果是,则说明修复成功。

临时缓解方案:如用户不方便重启进行内核补丁更新,可选择如下方式禁用内核 SACK配置防范漏洞利用(可能会对网络性能产生一定影响),运行如下命令即可:

1
2
1)echo 'net.ipv4.tcp_sack = 0' >> /etc/sysctl.conf ,禁用 SACK 配置;
2)sysctl -p ,重载配置,使其生效。