漏洞信息详情
PHP 'formatted_print.c'整数溢出漏洞
- CNNVD编号:CNNVD-200803-449
- 危害等级: 高危
- CVE编号: CVE-2008-1384
- 漏洞类型: 数字错误
- 发布时间: 2008-03-27
- 威胁类型: 远程
- 更新时间: 2009-02-05
- 厂 商: php
- 漏洞来源: Maksymilian Arciem...
漏洞简介
PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。
PHP formatted_print.c文件的*printf()函数存在整数溢出漏洞,能够执行PHP脚本的攻击者可能利用此漏洞提升权限。
在formatted_print.c文件的php_sprintf_appendstring()函数中:
- ---formatted_print.c-start---
inline static void
php_sprintf_appendstring(char **buffer, int *pos, int *size, char *add,
int min_width, int max_width, char padding,
int alignment, int len, int neg, int expprec, int always_sign)
- ---formatted_print.c-end---
主变量为npad。
- ---formatted_print.c-start---
copy_len = (expprec ? MIN(max_width, len) : len);
npad = min_width - copy_len;
- ---formatted_print.c-end---
这里npad为2147483646。
- ---formatted_print.c-start---
req_size = *pos + MAX(min_width, copy_len) + 1;
- ---formatted_print.c-end---
req_size overflow
- ---formatted_print.c-start---
if (req_size > *size) {
while (req_size > *size) {
*size <<= 1;
}
PRINTF_DEBUG((\"sprintf ereallocing buffer to \\%d bytes\n\", *size));
*buffer = erealloc(*buffer, *size);
}
- ---formatted_print.c-end---
(req_size > *size)为False,(alignment == ALIGN_RIGHT)为True,因此
- ---formatted_print.c-start---
while (npad-- > 0) {
(*buffer)[(*pos)++] = padding;
}
- ---formatted_print.c-end---
gdb调试结果如下:
- --- Debug ---
0x08295ba5 in php_sprintf_appendstring (buffer=0xbfbfd318, pos=0xbfbfd31c,
size=0xbfbfd324, add=0x28f20404 \'\'A\'\' <repeats 200 times>...,
min_width=2147483646, max_width=0, padding=65 \'\'A\'\', alignment=1, len=1,
neg=0, expprec=0, always_sign=0)
...
0x290fff0c: \'\'A\'\' <repeats 200 times>...
0x290fffd4: \'\'A\'\' <repeats 44 times> <Error reading address 0x29100000: Bad \
address>
0x29100000: <Error reading address 0x29100000: Bad address>
- --- Debug ---
脚本会向内存分配大量数据,导致拒绝服务或执行任意指令。
漏洞公告
目前厂商已经发布了升级补丁以修复这个安全问题,补丁下载链接:
http://cvs.php.net/viewvc.cgi/php-src/NEWS?revision=1.2027.2.547.2.1120&view=markup
参考网址
来源: XF
名称: php-phpsprintfappendstring-overflow(41386)
链接:http://xforce.iss.net/xforce/xfdb/41386
来源: UBUNTU
名称: USN-628-1
链接:http://www.ubuntu.com/usn/usn-628-1
来源: BID
名称: 28392
链接:http://www.securityfocus.com/bid/28392
来源: BUGTRAQ
名称: 20080527 rPSA-2008-0178-1 php php-mysql php-pgsql
链接:http://www.securityfocus.com/archive/1/archive/1/492671/100/0/threaded
来源: BUGTRAQ
名称: 20080321 {securityreason.com}PHP 5 *printf() - Integer Overflow
链接:http://www.securityfocus.com/archive/1/archive/1/489962/100/0/threaded
来源: MANDRIVA
名称: MDVSA-2009:023
链接:http://www.mandriva.com/security/advisories?name=MDVSA-2009:023
来源: MANDRIVA
名称: MDVSA-2009:022
链接:http://www.mandriva.com/security/advisories?name=MDVSA-2009:022
来源: DEBIAN
名称: DSA-1572
链接:http://www.debian.org/security/2008/dsa-1572
来源: wiki.rpath.com
链接:http://wiki.rpath.com/wiki/Advisories:rPSA-2008-0178
来源: SREASONRES
名称: 20080320 PHP 5.2.5 and prior : *printf() functions Integer Overflow
链接:http://securityreason.com/achievement_securityalert/52
来源: SECUNIA
名称: 31200
链接:http://secunia.com/advisories/31200
来源: SECUNIA
名称: 30967
链接:http://secunia.com/advisories/30967
来源: SECUNIA
名称: 30411
链接:http://secunia.com/advisories/30411
来源: SECUNIA
名称: 30158
链接:http://secunia.com/advisories/30158
来源: SUSE
名称: SUSE-SR:2008:014
链接:http://lists.opensuse.org/opensuse-security-announce/2008-07/msg00001.HTML
来源: cvs.php.net
链接:http://cvs.php.net/viewvc.cgi/php-src/NEWS?revision=1.2027.2.547.2.1120&view=markup
来源: issues.rpath.com
链接:https://issues.rpath.com/browse/RPL-2503
来源: BUGTRAQ
名称: 20080523 rPSA-2008-0176-1 php php-cgi php-imap php-mcrypt php-mysql php-mysqli php-pgsql php-soap php-xsl php5 php5-cgi php5-imap php5-mcrypt php5-mysql php5-mysqli php5-pear php5-pgsql php5-soap php5-xsl
链接:http://www.securityfocus.com/archive/1/archive/1/492535/100/0/threaded
来源: wiki.rpath.com
链接:http://wiki.rpath.com/wiki/Advisories:rPSA-2008-0176
来源: SECUNIA
名称: 30345
链接:http://secunia.com/advisories/30345
受影响实体
- Php Php:5.2.5
补丁
暂无
评论