首页 -> 安全研究

安全研究

安全漏洞
PHP ZendEngine ECalloc整数溢出漏洞

发布日期:2006-10-05
更新日期:2006-10-30

受影响系统:
PHP PHP <= 5.1.6
RedHat Enterprise Linux WS 2.1
RedHat Enterprise Linux ES 2.1
RedHat Enterprise Linux AS 2.1
描述:
BUGTRAQ  ID: 20349
CVE(CAN) ID: CVE-2006-4812

PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。

PHP内存处理例程_ecalloc函数中存在整数溢出漏洞,远程攻击者可能利用此漏洞在服务器上执行指令。

如果脚本能够导致基于不可信任用户数据的内存分配的话,远程攻击者就可以通过发送特制的请求导致以apache用户的权限执行任意指令。

<*来源:Mark J. Cox
  
  链接:http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=209409
        http://marc.theaimsgroup.com/?l=bugtraq&m=116014645009619&w=2
        http://lwn.net/Alerts/203115/
        http://lwn.net/Alerts/203114/
        http://security.gentoo.org/glsa/glsa-200610-14.xml
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

<?

print_r(unserialize('a:1073741823:{i:0;s:30:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}'));
?>

in function zend_hash_init() int overflow ( ecalloc() )-> heap overflow
here segfault in zend_hash_find() but it's possible to fake the bucket and
exploit a zend_hash_del_index_or_key
i tried a memory dump , just fake the bucked with the pointer of the
$GLOBALS's bucket but segfault before in memory_shutdown...

建议:
厂商补丁:

PHP
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_alloc.c?r1=1.161&r2=1.162

RedHat
------
RedHat已经为此发布了安全公告(RHSA-2006:0708-01,RHSA-2006:0688-01)以及相应补丁:
RHSA-2006:0708-01:Important: php security update
链接:http://lwn.net/Alerts/203115/

RHSA-2006:0688-01:Important: php security update
链接:http://lwn.net/Alerts/203114/

Gentoo
------
Gentoo已经为此发布了一个安全公告(GLSA-200610-14)以及相应补丁:
GLSA-200610-14:PHP: Integer overflow
链接:http://security.gentoo.org/glsa/glsa-200610-14.xml

所有PHP 5.x用户都应升级到最新版本:

    # emerge --sync
    # emerge --ask --oneshot --verbose ">=dev-lang/php-5.1.6-r6"

所有PHP 4.x用户都应升级到最新版本:

    # emerge --sync
    # emerge --ask --oneshot --verbose ">=dev-lang/php-4.4.4-r6"

浏览次数:3615
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障