systemd是Linux下的init软件,主要用于减少系统引导时间和计算开销。
systemd 的systemd-resolved服务用于处理DNS请求并为本地应用提供域名解析。该服务的dns_packet_new函数中存在缓冲区溢出漏洞,“页对齐数 - sizeof(DnsPacket) sizeof(iphdr) sizeof(udphdr)”就可以触发这个溢出,在x86系统上就是“页对齐数 - 80”,也就是说,在x86系统上以4016字节调用dns_packet_new函数会导致分配4096 字节,但其中108字节是分配给DnsPacket struct的。
漏洞详情xxxxxxxxxxxxxxx
漏洞编号:
CVE-2017-9445
利用方式:
恶意的DNS服务器可以通过返回包含有特制TCP攻击负载的响应从而触发该漏洞,导致在Linux系统上执行任意代码。每次在恶意DNS服务器上查询主机名时都可能触发该漏洞。
受影响版本:
systemd 233及之前版本。目前已知Ubuntu 17.04和16.10版本,Debian Stretch (Debian 9)、Buster (Debian 10)和Sid (Debian Unstable)版本均使用了受影响的systemd。
修复方式:
目前已有一些Linux版本厂商发布了官方补丁修复这个漏洞。
Ubuntu:
https://www.ubuntu.com/usn/usn-3341-1/
Fedora:
https://bodhi.fedoraproject.org/updates/FEDORA-2017-29d909f5ec
其他Linux版本请关注厂商的官方升级公告。
参考链接:
http://securityaffairs.co/wordpress/60520/hacking/linux-hacking-dns-response.html
https://threatpost.com/linux-systemd-bug-could-have-led-to-crash-code-execution/126605/
- END -