Linux kernel traced to the presence of TCP "SACK PANIC" Remote Denial of Service Vulnerability (vulnerability ID: CVE-2019-11477, CVE-2019-11478, CVE-2019-11479), an attacker could exploit the vulnerability remote target server, leading to system crashes or unable to provide services
Vulnerability Details
Recently, Tencent cloud security center intelligence platform monitoring to Netflix information security team researcher Jonathan Looney found serious remote DoS vulnerability on Linux and FreeBSD, etc. system kernel, an attacker could exploit the vulnerability to construct and send special SACK sequence request to the target server causes the server crash or denial of service.
Affects Version
Known affected versions are as follows:
- FreeBSD 12 (used to RACK TCP Stack)
- CentOS 5 (Redhat official support has been stopped, no longer provides patches)
- CentOS 6
- CentOS 7
- Ubuntu 18.04 LTS
- Ubuntu 16.04 LTS
- Ubuntu 19.04
- Ubuntu 18.10
Security version
Major Linux distribution vendor has released kernel fixes, no loopholes kernel version is as follows:
- 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
Repair method
Please refer to the above [security] upgrade your version of Linux server kernel, refer to the operation as follows:
CentOS
Recommendation: [CentOS 6/7 Series User]
yum clean all && yum makecache
, The software update source;yum update kernel -y
, Update the current kernel version;reboot
, Restart the system after the update to take effect;uname -a
, Check the current version is a secure version of the above [], and if so, then the repair is successful.
Ubuntu
Recommendation: [Ubuntu 16.04 / 18.04 LTS Series User]
sudo apt-get update && sudo apt-get install linux-image-generic
, Software source update and install the latest version of the kernel;sudo reboot
, Restart the system after the update to take effect;uname -a
, Check the current version is the version [security], and if so, then the repair is successful.
Temp
Temporary mitigation programs: such as inconvenient for the user to restart the kernel patch updates, you can choose to disable the kernel as follows SACK configured to prevent exploits (may have a certain impact on network performance), run the following command:
echo 'net.ipv4.tcp_sack = 0' >> /etc/sysctl.conf
Disable SACK configuration;sysctl -p
, Reload configuration to take effect.
reference
- Official announcement: https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001.md
- Community Reference: https://www.openwall.com/lists/oss-security/2019/06/17/5
- Red Hat announcement: https://access.redhat.com/security/vulnerabilities/tcpsack
- Tencent Notice: https://cloud.tencent.com/announce/detail/622
appendix
My server is CentOS, so its an example:
# 进行软件源更新
[root@VM_0_3_centos ~]# yum clean all && yum makecache
Loaded plugins: fastestmirror, langpacks
Cleaning repos: epel extras librehat-shadowsocks os updates
Cleaning up list of fastest mirrors
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
epel | 5.3 kB 00:00:00
extras | 3.4 kB 00:00:00
librehat-shadowsocks | 3.0 kB 00:00:00
os | 3.6 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/22): epel/7/x86_64/group_gz | 88 kB 00:00:01
(2/22): epel/7/x86_64/updateinfo | 978 kB 00:00:01
(3/22): epel/7/x86_64/prestodelta | 717 B 00:00:00
(4/22): epel/7/x86_64/filelists_db | 11 MB 00:00:06
(5/22): epel/7/x86_64/primary_db | 6.8 MB 00:00:15
(6/22): epel/7/x86_64/updateinfo_zck | 1.4 MB 00:00:00
(6/22): epel/7/x86_64/updateinfo_zck | 1.4 MB 00:00:00
(6/22): epel/7/x86_64/updateinfo_zck | 1.4 MB 00:00:00
(6/22): epel/7/x86_64/updateinfo_zck | 1.4 MB 00:00:00
(6/22): epel/7/x86_64/updateinfo_zck | 1.4 MB 00:00:00
(7/22): extras/7/x86_64/prestodelta | 65 kB 00:00:01
(8/22): extras/7/x86_64/primary_db | 205 kB 00:00:01
(9/22): extras/7/x86_64/other_db | 127 kB 00:00:00
(10/22): librehat-shadowsocks/x86_64/filelists_db | 17 kB 00:00:00
(11/22): librehat-shadowsocks/x86_64/primary_db | 23 kB 00:00:00
(12/22): librehat-shadowsocks/x86_64/other_db | 10 kB 00:00:00
(13/22): os/7/x86_64/group_gz | 166 kB 00:00:00
(14/22): os/7/x86_64/primary_db | 6.0 MB 00:00:03
(15/22): os/7/x86_64/filelists_db | 7.1 MB 00:00:05
(16/22): os/7/x86_64/other_db | 2.6 MB 00:00:00
(17/22): updates/7/x86_64/prestodelta | 797 kB 00:00:00
(18/22): updates/7/x86_64/primary_db | 6.4 MB 00:00:01
(19/22): updates/7/x86_64/other_db | 641 kB 00:00:00
(20/22): updates/7/x86_64/filelists_db | 4.4 MB 00:00:05
epel/7/x86_64/other_db
http://mirrors.tencentyun.com/epel/7/x86_64/repodata/24838144a5b86bb0cd90b22255258aeed11691115ae3c35463e471cbae0f2ab9-other.sqlite.bz2: [Errno 12] Timeout on http://mirrors.tencentyun.com/epel/7/x86_64/repodata/24838144a5b86bb0cd90b22255258aeed11691115ae3c35463e471cbae0f2ab9-other.sqlite.bz2: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
Trying other mirror.
(21/22): extras/7/x86_64/filelists_db | 246 kB 00:00:26
(22/22): epel/7/x86_64/other_db | 3.2 MB 00:00:12
Metadata Cache Created
# 更新内核
[root@VM_0_3_centos ~]# yum update kernel -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package kernel.x86_64 0:3.10.0-957.21.3.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================================================================
Installing:
kernel x86_64 3.10.0-957.21.3.el7 updates 48 M
Transaction Summary
=======================================================================================================================================================================
Install 1 Package
Total download size: 48 M
Installed size: 63 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
kernel-3.10.0-957.21.3.el7.x86_64.rpm | 48 MB 00:00:11
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : kernel-3.10.0-957.21.3.el7.x86_64 1/1
Verifying : kernel-3.10.0-957.21.3.el7.x86_64 1/1
Installed:
kernel.x86_64 0:3.10.0-957.21.3.el7
Complete!
# 重启
[root@VM_0_3_centos ~]# reboot
# 查看内核版本是否为最新的`3.10.0-957.21.3`
[root@VM_0_3_centos ~]# uname -a
Linux VM_0_3_centos 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux