PHP msg_receive()函数整数溢出漏洞

漏洞信息详情

PHP msg_receive()函数整数溢出漏洞

漏洞简介

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

PHP的msg_receive()函数实现上存在整数溢出漏洞,本地攻击者可能利用此漏洞提升自己的权限。

PHP的msg_receive()函数没有对maxsize参数执行任何检查便直接在内存分配中使用,导致整数溢出。有漏洞的代码如下:

PHP_FUNCTION(msg_receive)

{

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, \”rlzlz|blz\”,

&queue, &desiredmsgtype, &out_msgtype, &maxsize,

&out_message, &do_unserialize, &flags, &zerrcode) == FAILURE) {

return;

}

messagebuffer = (struct php_msgbuf *) emalloc(sizeof(struct php_msgbuf) + maxsize);

result = msgrcv(mq->id, messagebuffer, maxsize, desiredmsgtype, realflags);

如果内部的msgrcv()函数能够接受负数的maxsize的话,就可能导致缓冲区溢出。

漏洞公告

目前厂商已经发布了升级补丁以修复这个安全问题,补丁下载链接:

http://www.php.net

参考网址

来源: MISC

链接:http://www.php-security.org/MOPB/MOPB-43-2007.html

来源: MISC

链接:http://www.php-security.org/MOPB/MOPB-44-2007.html

来源: SUSE

名称: SUSE-SA:2007:032

链接:http://www.novell.com/linux/security/advisories/2007_32_php.html

来源: DEBIAN

名称: DSA-1283

链接:http://www.debian.org/security/2007/dsa-1283

来源: SECUNIA

名称: 25062

链接:http://secunia.com/advisories/25062

来源: SECUNIA

名称: 25056

链接:http://secunia.com/advisories/25056

受影响实体

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享