Linux内核中存在发送UDP数据包导致崩溃的漏洞

在Linux内核中 已确定 漏洞(CVE-2019-11683),它允许您通过发送专门设计的 UDP 数据包(死亡数据包)来远程导致拒绝服务。 该问题是由实现 GRO(通用接收卸载)技术的 udp_gro_receive_segment 处理程序 (net/ipv4/udp_offload.c) 中的错误引起的,并且在使用零填充处理 UDP 数据包时可能会导致内核内存区域内容损坏(空有效负载)。

该问题仅影响内核 5.0因为 GRO 对 UDP 套接字的支持是 实施的 去年 XNUMX 月,只成功进入最新的稳定内核版本。 GRO 技术允许您通过将多个数据包聚合成更大的块来加速大量传入数据包的处理,而无需单独处理每个数据包。
对于 TCP,不会出现此问题,因为该协议不支持无负载的数据包聚合。

到目前为止,该漏洞仅以以下形式得到修复: 修补,修正更新尚未发布(昨天更新5.0.11修复 不包含)。 从分发包中,内核 5.0 成功地包含在 Fedora 30, Ubuntu的19.04, Arch Linux, Gentoo的 以及其他不断更新的发行版。 Debian, Ubuntu 18.10 及更早版本, 瑞尔/中央操作系统 и SUSE/开放SUSE 问题不影响。

结果发现问题 使用 Google 创建的自动模糊测试系统 西兹机器人 和分析仪 卡桑 (KernelAddressSanitizer),旨在识别使用内存时的错误以及不正确的内存访问事实,例如访问已释放的内存区域以及将代码放置在不适合此类操作的内存区域中。

来源: opennet.ru

添加评论