PHP msg_receive()内存分配整数溢出漏洞 CVE-2007-1890 CNNVD-200704-100

7.5 AV AC AU C I A
发布: 2007-04-06
修订: 2018-10-30

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的话,就可能导致缓冲区溢出。

0%
当前有2条漏洞利用/PoC
当前有64条受影响产品信息