linux内核远程漏洞,Linux内核远程DoS漏洞 (CVE-2019-11477) 预警分析
報告編號:B6-2019-061801
報告來源:360-CERT
報告作者:360-CERT
更新日期:2019-06-18
0x00 漏洞描述
2019年6月18日,RedHat官網發布報告:安全研究人員在 Linux 內核處理TCP SACK數據包模塊中發現了三個漏洞,CVE編號為CVE-2019-11477、CVE-2019-11478和CVE-2019-11479,其中CVE-2019-11477漏洞能夠降低系統運行效率,并可能被遠程攻擊者用于拒絕服務攻擊,影響程度嚴重。
360CERT 判斷此次漏洞影響面廣,危害嚴重,建議廣大用戶及時更新。
漏洞細節
SACK(Selective ACK)是TCP選項,它使得接收方能告訴發送方哪些報文段丟失,哪些報文段重傳了,哪些報文段已經提前收到等信息。根據這些信息TCP就可以只重傳哪些真正丟失的報文段。需要注意的是只有收到失序的分組時才會可能會發送SACK,TCP的ACK還是建立在累積確認的基礎上的。
Linux SKB 最多可以容納17個片段:
linux/include/linux/skbuff.hdefine MAX_SKB_FRAGS (65536/PAGE_SIZE + 1) => 17
每個片段在x86(PowerPC上為64KB)的數據中最多可容納32KB,當數據包將被發送時,它被放置在發送隊列中,它的詳細信息保存在控制緩沖區結構中:
linux/include/linux/skbuff.hstructtcp_skb_cb {__u32 seq; /* Starting sequence number */__u32 end_seq; /* SEQ + FIN + SYN + datalen */__u32 tcp_tw_isn;struct {u16 tcp_gso_segs;u16 tcp_gso_size;};__u8 tcp_flags; /2* TCP header flags. (tcp[13]) */…}
tcp_gso_segs用于記錄數據包個數,類型為u16,最多記錄65535個。但是SACK機制允許TCP在重傳中合并多個SKB隊列,從而填充17個片段到最大容量, 17 * 32 * 1024 / 8 = 69632,造成tcp_gso_segs整數溢出,進而觸發BUG_ON()調用,導致內核崩潰。
staticbooltcp_shifted_skb (struct sock *sk, …, unsigned int pcount, ...){...tcp_skb_pcount_add(prev, pcount);BUG_ON(tcp_skb_pcount(skb) < pcount); <= SACK panictcp_skb_pcount_add(skb, -pcount);…}
攻擊者可以通過發送一系列特定的SACK包,觸發內核模塊的整數溢出漏洞,進而實行遠程拒絕服務攻擊。
0x01 影響版本
影響Linux 內核2.6.29及以上版本
0x02 修復方案
(1)及時更新補丁
Linux內核版本>=4.14需要打第二個補丁
(2)禁用SACK處理
echo 0 > /proc/sys/net/ipv4/tcp_sack
(3)使用過濾器來阻止攻擊
此緩解需要禁用TCP探測時有效(即在/etc/sysctl.conf文件中將net.ipv4.tcp_mtu_probingsysctl設置為0)
(4)RedHat用戶可以使用以下腳本來檢查系統是否存在漏洞
0x03 時間線
2019-06-17linux內核補丁公布
2019-06-18RedHat公布漏洞信息
2019-06-18360CERT發布漏洞預警
0x04 參考鏈接
聲明:本文來自360CERT,版權歸作者所有。文章內容僅代表作者獨立觀點,不代表安全內參立場,轉載目的在于傳遞更多信息。如有侵權,請聯系 anquanneican@163.com。
總結
以上是生活随笔為你收集整理的linux内核远程漏洞,Linux内核远程DoS漏洞 (CVE-2019-11477) 预警分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ug浩强工具有什么作用_ug浩强工具 v
- 下一篇: nxlog收集linux日志,Nxlog