CVE:CVE-2007-1890
CNNVD:CNNVD-200704-100
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的话，就可能导致缓冲区溢出。
solution:Upgrade php php to a higher version than 4.0.0,4.0.1,4.0.1:patch1,4.0.1:patch2,4.0.2,4.0.3,4.0.3:patch1,4.0.4,4.0.4:patch1,4.0.5,4.0.6,4.0.7,4.0.7:rc1,4.0.7:rc2,4.0.7:rc3,4.1.0,4.1.1,4.1.2,4.2,4.2.0,4.2.1,4.2.2,4.2.3,4.3.0,4.3.1,4.3.2,4.3.3,4.3.4,4.3.5,4.3.6,4.3.7,4.3.8,4.3.9,4.3.10,4.3.11,4.4.0,4.4.1,4.4.2,4.4.3,4.4.4,5.0:rc1,5.0:rc2,5.0:rc3,5.0.0,5.0.0:beta1,5.0.0:beta2,5.0.0:beta3,5.0.0:beta4,5.0.0:rc1,5.0.0:rc2,5.0.0:rc3,5.0.1,5.0.2,5.0.3,5.0.4,5.0.5,5.1.0,5.1.1,5.1.2,5.1.3,5.1.4,5.1.5,5.1.6,5.2.0,and avoid the version 4.0.0,4.0.1,4.0.1:patch1,4.0.1:patch2,4.0.2,4.0.3,4.0.3:patch1,4.0.4,4.0.4:patch1,4.0.5,4.0.6,4.0.7,4.0.7:rc1,4.0.7:rc2,4.0.7:rc3,4.1.0,4.1.1,4.1.2,4.2,4.2.0,4.2.1,4.2.2,4.2.3,4.3.0,4.3.1,4.3.2,4.3.3,4.3.4,4.3.5,4.3.6,4.3.7,4.3.8,4.3.9,4.3.10,4.3.11,4.4.0,4.4.1,4.4.2,4.4.3,4.4.4,5.0:rc1,5.0:rc2,5.0:rc3,5.0.0,5.0.0:beta1,5.0.0:beta2,5.0.0:beta3,5.0.0:beta4,5.0.0:rc1,5.0.0:rc2,5.0.0:rc3,5.0.1,5.0.2,5.0.3,5.0.4,5.0.5,5.1.0,5.1.1,5.1.2,5.1.3,5.1.4,5.1.5,5.1.6,5.2.0