手机
当前位置:查字典教程网 >网络安全 >漏洞分析 >PHP 5 php_sprintf_appendstring() 整数溢出漏洞
PHP 5 php_sprintf_appendstring() 整数溢出漏洞
摘要:受影响系统:PHPPHP5.2.5描述:PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。PHPformatte...

受影响系统:

PHP PHP 5.2.5

描述:

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 bytesn", *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

【PHP 5 php_sprintf_appendstring() 整数溢出漏洞】相关文章:

php5.2.3远程CGI缓冲溢出漏洞

Common Unix Printing System CGI远程堆溢出漏洞

Adobe Flash Player SWF 文件中的标签堆溢出漏洞

Common Unix Printing System的远程拒绝服务漏洞

Mozilla Thunderbird MIME 含外部主体堆溢出漏洞

Toshiba Surveillix ActiveX 控件远程栈溢出漏洞

PPLive存在ActiveX类型溢出漏洞

Persits Software XUpload.ocx 含远程栈溢出漏洞

PPStream PowerList.OCX SetBkImage ActiveX控件缓冲区溢出漏洞

Cisco UCP CSuserCGI.exe缓冲溢出及跨站脚本漏洞

精品推荐
分类导航