Repair on Linux TCP "SACK PANIC" Remote Denial of Service Vulnerability

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:

  1. FreeBSD 12 (used to RACK TCP Stack)
  2. CentOS 5 (Redhat official support has been stopped, no longer provides patches)
  3. CentOS 6
  4. CentOS 7
  5. Ubuntu 18.04 LTS
  6. Ubuntu 16.04 LTS
  7. Ubuntu 19.04
  8. Ubuntu 18.10

Security version

Major Linux distribution vendor has released kernel fixes, no loopholes kernel version is as follows:

  1. CentOS 6: 2.6.32-754.15.3
  2. CentOS 7: 3.10.0-957.21.3
  3. Ubuntu 18.04 LTS:4.15.0-52.56
  4. 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]

  1. yum clean all && yum makecache, The software update source;
  2. yum update kernel -y, Update the current kernel version;
  3. reboot, Restart the system after the update to take effect;
  4. 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]

  1. sudo apt-get update && sudo apt-get install linux-image-generic, Software source update and install the latest version of the kernel;
  2. sudo reboot, Restart the system after the update to take effect;
  3. 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:

  1. echo 'net.ipv4.tcp_sack = 0' >> /etc/sysctl.confDisable SACK configuration;
  2. sysctl -p , Reload configuration to take effect.

reference

  1. Official announcement: https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001.md
  2. Community Reference: https://www.openwall.com/lists/oss-security/2019/06/17/5
  3. Red Hat announcement: https://access.redhat.com/security/vulnerabilities/tcpsack
  4. 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

Guess you like

Origin www.cnblogs.com/dunitian/p/11111358.html