漏洞分析
Linux内核处理TCP网络数据包时候存在缺陷导致三个漏洞,CVE编号分别为:CVE-2019-11477,CVE-2019-11478和CVE-2019-11479。漏洞仅可以用于DOS拒绝攻击,不涉及信息泄露或者权限提升。
CVE-2019-11477 是最严重的四个缺陷,被称作 “SACK panic”,即Linux内核的TCP选择性确认(TCP SelectiveAcknowledgement 简称SACK)功能。
远程攻击者可以利用这个漏洞来触发可能导致计算机崩溃的内核错误(Kernel panic),进而引起拒绝服务。波及Linux内核版本2.6.29以及高于2.6.29以上版本。
修复方式
使用yum更新内核获取补丁升级:
sudo yum update kernel -y
升级完成后需重启系统生效。
缓解措施
若暂时不方便重启系统,可使用以下方式暂时处理。
第一步:禁用tcp_sack
sudo sysctl -w net.ipv4.tcp_sack=0
第二步:使用系统防火墙过滤阻止与低MSS的连接
- 使用iptables
sudo iptables -A INPUT -p tcp -m tcpmss --mss 1:500 -j DROP
sudo ip6tables -A INPUT -p tcp -m tcpmss --mss 1:500 -j DROP
service iptables save #保存
- 使用firewalld
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --tcp-flags SYN SYN -m tcpmss --mss 1:500 -j DROP
firewall-cmd --permanent --direct --add-rule ipv6 filter INPUT 0 -p tcp --tcp-flags SYN SYN -m tcpmss --mss 1:500 -j DROP
firewall-cmd -reload #保存
使用检测脚本验证修复结果
RedHat提供相应漏洞检测脚本工具 https://access.redhat.com/sites/default/files/cve-2019-11477--2019-06-17-1629.sh
升级内核前:
采用缓解措施后:
升级内核并重启后: