您的位置:首页 > 编程语言 > PHP开发

PHP5.6被发现存在堆溢出漏洞

2014-07-03 00:00 323 查看
这个漏洞,应该不是Stefan Esser发现的,应该是Stefan Esser看到了github上的commit才随藤摸瓜找到了这个漏洞,看来关注更新的确是一个好习惯啊。



正文
漏洞存在于DNS TXT记录解析这个功能之中。Stefan Esser在github的一个代码提交中发现了这个漏洞。当PHP程序运行dns_get_record()的时候,恶意的服务器或者是进行中间人攻击的黑客可以利用这个漏洞执行任意代码。
产生漏洞的代码存在于ext/standard/dns.c,可以看到代码之中加入了针对于长度的判断。

while (ll < dlen) {  
n = cp[ll];  
+ if ((ll + n) >= dlen) {  
+ // Invalid chunk length, truncate  
+ n = dlen – (ll + 1);  
+ }  
memcpy(tp + ll , cp + ll + 1, n);  
add_next_index_stringl(entries, cp + ll + 1, n, 1);  
ll = ll + n + 1;
Red Hat bug也收录了这个漏洞,但也没有给出具体细节
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: