[转帖]预警 | Linux 爆“SACK Panic”远程DoS漏洞,大量主机受影响

Linux爆“SACK Panic”远程DoS漏洞

预警 | Linux 爆“SACK Panic”远程DoS漏洞,大量主机受影响

 
https://cloud.tencent.com/developer/article/1447879

所有的 版本 全部中标  Linux 版本的永恒之蓝吗..

 

近日,腾讯云安全中心监测到Linux 内核被曝存在TCP “SACK Panic” 远程拒绝服务漏洞(漏洞编号:CVE-2019-11477,CVE-2019-11478,CVE-2019-11479),攻击者可利用该漏洞远程攻击目标服务器,导致系统崩溃或无法提供服务。

为避免您的业务受影响,云鼎实验室建议Linux系统用户及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。同时建议云上租户免费开通「安全运营中心」-安全情报,及时获取最新漏洞情报、修复方案及数据泄露情况,感知云上资产风险态势。

【风险等级】

高风险

【漏洞风险】

远程发送特殊构造的攻击包,导致目标 Linux 或 FreeBSD 服务器崩溃或服务不可用。

【漏洞详情】

腾讯云安全中心情报平台监测到 Netflix 信息安全团队研究员Jonathan Looney发现 Linux 以及 FreeBSD 等系统内核上存在严重远程DoS漏洞,攻击者可利用该漏洞构造并发送特定的 SACK 序列请求到目标服务器导致服务器崩溃或拒绝服务。

【影响版本】

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

  • 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

【安全版本】

各大Linux发行厂商已发布内核修复补丁,详细内核修复版本如下:

  • 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 镜像默认不受该漏洞影响,请放心使用。

【修复建议】

升级您的 Linux Server 到上述【安全版本】,详细操作如下:

➤【CentOS 6/7 系列用户】

注:截止文章发布,CentOS官方暂未同步内核修复补丁到软件源,建议用户及时关注补丁更新情况并开展相应升级工作。升级方式如下:

1. yum clean all && yum makecache,进行软件源更新;

2. yum update kernel  -y,更新当前内核版本;

3. reboot,更新后重启系统生效;

4. uname -a,检查当前版本是否为上述【安全版本】,如果是,则说明修复成功。

➤【Ubuntu 16.06/18.04 LTS 系列用户】

1. sudo apt-get update && sudo apt-get install linux-image-generic,进行软件源更新并安装最新内核版本;

2. sudo reboot,更新后重启系统生效;

3. uname -a,检查当前版本是否为【安全版本】,如果是,则说明修复成功。

如果用户不方便重启进行内核补丁更新,可选择临时缓解方案

运行如下命令禁用内核 SACK 配置防范漏洞利用:

sysctl -w net.ipv4.tcp_sack=0

【漏洞参考】

  [1]官方通告:

https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001.md

  [2]社区参考:

https://www.openwall.com/lists/oss-security/2019/06/17/5

  [3]红帽公告:

https://access.redhat.com/security/vulnerabilities/tcpsack

➤推荐阅读

关注腾讯云安全获取更多资讯

点右下角「在看」

开始我们的故事

 

建议云上租户免费开通「安全运营中心」-安全情报,及时获取最新漏洞情报、修复方案及数据泄露情况,感知云上资产风险态势。点击“阅读原文”,即可免费开通。

原文发布于微信公众号 - 腾讯云安全(TencentCloudSecurity)

原文发表时间:2019-06-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

转载于:https://www.cnblogs.com/jinanxiaolaohu/p/11057019.html

<think>我们正在讨论Linux内核中TCP协议栈的接收选项,特别是rx_opt.sack_ok字段。 根据用户的问题,他想理解tcp_sock结构体中rx_opt.sack_ok字段的含义。 首先,我们需要知道rx_opt是tcp_sock结构体中的一个成员,它是一个结构体,用于存储TCP接收选项(即在连接建立过程中协商的选项)。 其中,sack_ok字段表示是否支持SACK(Selective Acknowledgment)选项。 SACK是一种TCP选项,允许接收端通知发送端哪些数据段已经成功接收,从而使得发送端可以只重传丢失的数据段,而不是从第一个丢失的段开始重传所有后续段。这在有多个段丢失的情况下可以提高性能。 在Linux内核中,当建立TCP连接时,在三次握手的过程中,双方会通过TCP选项来协商是否启用SACK。如果对方支持SACK,那么本端就会设置rx_opt.sack_ok为非零值(通常为1),表示可以使用SACK选项。 现在,我们可以查看相关的内核代码来确认这个字段的含义。 根据用户提供的引用(虽然引用是关于tcp_sync_mss函数的,但我们可以忽略它,因为用户的问题是关于sack_ok的),我们需要寻找其他相关代码。 实际上,在Linux内核中,tcp_sock结构体的定义(在include/linux/tcp.h中)包含rx_opt字段,其类型为struct tcp_options_received。而tcp_options_received结构体中包含sack_ok字段。 我们可以参考内核代码(以v5.4为例): 在include/net/tcp.h中,我们可以找到struct tcp_options_received的定义: struct tcp_options_received { ... u8 sack_ok; /* SACK seen on SYN packet */ ... }; 注释说明:sack_ok表示在SYN包中看到了SACK选项(即对端在SYN包中发送了SACK允许选项,表示对端支持SACK)。 在三次握手过程中,当收到SYN包时,内核会解析TCP选项,如果包含SACK允许选项,则设置sack_ok为1。 此外,在建立连接后,发送数据时,如果rx_opt.sack_ok为1,则发送端在发送数据包时可以包含SACK选项(在ACK包中,接收端使用SACK选项来告知发送端已经接收到的数据块)。 因此,rx_opt.sack_ok字段的含义是:表示这个TCP连接是否支持使用SACK选项。 下面,我们可以生成相关问题,以帮助用户更深入地理解。</think>### Linux内核TCP协议栈中`rx_opt.sack_ok`字段详解 在Linux内核TCP协议栈中,`tcp_sock`结构体的`rx_opt.sack_ok`字段表示**当前TCP连接是否支持SACK(Selective Acknowledgment)机制**。其核心含义如下: 1. **SACK功能** - SACK允许接收端在ACK包中**精确报告非连续接收的数据块**(如收到分段1,3,4但丢失2) - 相比传统ACK(仅确认连续数据),SACK显著提升重传效率,尤其在高丢包率网络中[^1] - 字段定义见内核代码: ```c // include/net/tcp.h struct tcp_options_received { u8 sack_ok; /* SACK option allowed? */ ... }; ``` 2. **协商过程** - 在TCP三次握手阶段,双方通过`TCP_SACK`选项协商SACK支持: ```c // net/ipv4/tcp_input.c void tcp_parse_options(...) { if (tcph->syn && option.sack_ok) tp->rx_opt.sack_ok = 1; } ``` - 仅当双方SYN包都携带`TCP_SACK`选项时,`rx_opt.sack_ok`才会置位 3. **运行时作用** - 当SACK启用时(`sack_ok=1`): - 接收端生成包含SACK块的ACK包 - 发送端根据SACK信息**仅重传缺失数据段** - 内核触发快速重传(Fast Retransmit)时依赖SACK信息[^1] - 若SACK禁用(`sack_ok=0`),则退回到传统ACK模式 4. **相关数据结构** ```mermaid graph LR A[tcp_sock] --> B[rx_opt] B --> C[sack_ok] B --> D[mss_clamp] B --> E[ts_recent] ``` 5. **典型应用场景** - 高带宽延迟积(BDP)网络 - 无线网络等易丢包环境 - 需要避免TCP全局超时重传的场景
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值