Thekelleys Dnsmasq TFTP服务远程堆溢出漏洞 CVE-2009-2957 CNNVD-200909-036 CNVD-2009-4587

6.8 AV AC AU C I A
发布: 2009-09-02
修订: 2017-09-19

Dnsmasq是软件开发者Simon Kelley所研发的一款使用C语言编写的开源轻量级DNS转发和DHCP、TFTP服务器。 dnsmasq在启用了TFTP服务(--enable-tftp命令行选项或在/etc/dnsmasq.conf中启用enable-tftp)的时候存在堆溢出漏洞。如果所配置的tftp-root足够长,且远程用户发送的请求中包含有超长的文件名,dnsmasq就可能崩溃或以dnsmasq服务的权限(通常为非特权的nobody用户)执行任意代码。 tftp_request对daemon->namebuff调用strncat,其预定义大小为MAXDNAME字节(默认1025)。 /----------- else if (filename[0] == \'\'/\'\') daemon->namebuff[0] = 0; strncat(daemon->namebuff, filename, MAXDNAME); - -----------/ 由于daemon->namebuff可能已经包含有数据,也就是通过配置文件传送给守护程序的daemon->tftp_prefix,因此这可能触发堆溢出。 /----------- if (daemon->tftp_prefix) { if (daemon->tftp_prefix[0] == \'\'/\'\') daemon->namebuff[0] = 0; strncat(daemon->namebuff, daemon->tftp_prefix, MAXDNAME) - -----------/ 默认的前缀是/var/tftpd,但如果使用了更长的前缀,就可能执行任意代码。

0%
当前有6条漏洞利用/PoC
当前有76条受影响产品信息