几天前,为了备注,2019年的6月17号吧,一个Linux/FreeBSD系统的漏洞爆出,就是CVE-2019-11477,Netflix的公告为:
https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001.md
Redhat的链接为:
https://access.redhat.com/security/vulnerabilities/tcpsack
在当日得到了消息,然后呼哈大笑,忽然想起奇书名著《黑客大曝光》的调调,知道这这么回事,简单的一个POC说明,却没有EXP,呵呵了。
没意思。
其实这个公告只是一个POC说明,证明了 代码那么写确实是有问题的! 具体如何来触发问题,却至今还未知。(文末有好玩的packetdrill脚本哦…)
POC的证明如下:
- gso_segs是一个u16类型的数字,其最大值为65535;
- gso_segs的计算方法为 l e n g t h m s s \dfrac{length}{mss} msslength;
- l e n g t h length length由所有skb的片段总长构成,总片段最大17个,每一个片段最长32KB;
- mss最小值为48,减去TCP选项头40字节,raw data的最小值为8;
- 根据gso_segs的计算方法, 17 × 32 × 1024 8 \dfrac{17\times32\times1024}{8} 817×32×1024会溢出。
确实是会溢出,然而想要制造这么个溢出,却是另一回事。POC和EXP是两回事,很多人往往混淆。
先说结论, CVE-2019-11477漏洞的危害并没有那么严重,不必惊慌。
【本来此处的内容已被要求隐藏,待漏洞被完全修复后,重新开放】