漏洞信息详情
PHP ZVAL引用计数器整数溢出漏洞
漏洞简介
PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。 PHP的ZVAL结构中引用计数实现上存在整数溢出漏洞,远程攻击者可能利用此漏洞在服务器上执行任意指令。 在PHP 4中内部描述变量的ZVAL结构类似于: struct _zval_struct { /* Variable information */ zvalue_value value; /* value */ zend_uchar type; /* active type */ zend_uchar is_ref; zend_ushort refcount; }; 在设计这个结构时引用计数器为16位宽,这样在32位系统上整个结构为8个字节长;在PHP 5中这个字段为32位宽,因为16位太容易溢出,PHP对引用计数器的溢出也没有内部的防范措施。但对于PHP 4这意味着以下代码会溢出计数器,在脚本端触发变量的双重释放: $var = \"POC\"; for ($i = 0; $i < 0x10001; $i++) { $arr[] = &$var; } 攻击者可以利用这个漏洞破坏内存,可能执行任意指令,从而绕过disable_functions之类的安全限制。 此外由于很多老版本PHP应用程序仍对用户提供的数据使用unserialize(),因此也可能远程触发这个漏洞。Unserialize()函数以不安全的方式使用已还原序列化的__wakeup()方式,可能导致远程执行任意指令。
漏洞公告
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.php.net
参考网址
来源: BID 名称: 22765 链接:http://www.securityfocus.com/bid/22765 来源: MISC 链接:http://www.php-security.org/MOPB/MOPB-01-2007.html 来源: OSVDB 名称: 32770 链接:http://www.osvdb.org/32770 来源: SUSE 名称: SUSE-SA:2007:032 链接:http://www.novell.com/linux/security/advisories/2007_32_php.html 来源: GENTOO 名称: GLSA-200703-21 链接:http://security.gentoo.org/glsa/glsa-200703-21.xml 来源: SECUNIA 名称: 25056 链接:http://secunia.com/advisories/25056 来源: SECUNIA 名称: 24606 链接:http://secunia.com/advisories/24606
受影响实体
- Php Php:4.0<!--2000-1-1-->
补丁
暂无
还没有评论,来说两句吧...