受影响系统:
Daniel Stenberg curl <= 7.15.0
不受影响系统:
Daniel Stenberg curl 7.15.1
描述:
cURL是命令行传输文件工具,支持FTP、FTPS、HTTP、HTTPS、GOPHER、TELNET、DICT、FILE和LDAP。libcurl在解析URL时存在溢出漏洞,攻击者可以利用这个漏洞绕过PHP的safe_mode/open_basedir限制,或从apache内存窃取本地SSL证书。libcurl在解析URL时首先会为主机名和路径部分分配特定的缓冲区。如果URL较短的话,会为每个缓冲区至少分配256个字节;如果输入URL超过了256字节限制的话,libcurl就会分配2个缓冲区,大小为输入URL的长度。然后一些sscanf调用会解析URL。畸形的URL会导致sscanf将完整的输入URL拷贝到主机或路径缓冲区。由于最初的分配没有为0字节分配额外的空间,这可能导致大小差一(off-by-one)的情况。尽管这种溢出已经可以控制某些malloc()/free()的实现,攻击者还可以通过有“?”的主机名导致两个字节的溢出。如果libcurl发现主机名中存在“?”的话,就会认定为畸形URL,并未经任何大小检查便在其前面添加路径分隔符“/”。
厂商补丁:Daniel Stenberg---------------目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:http://curl.haxx.se/download/curl-7.15.1.tar.gz
(出处:http://www.sheup.com)