PHP mbstring扩展堆溢出漏洞 CVE-2008-5557 CNVD-2009-12765 CNNVD-200812-427

10.0 AV AC AU C I A
发布: 2008-12-23
修订: 2018-10-11

QEMU和KVM都是开放源码的模拟器软件。 Qemu和KVM的VNC服务器在处理特制的报文时可能出现死循环,导致拒绝服务的情况。 PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。 PHP的mbstring扩展的ext/mbstring/libmbfl/filters/mbfilter_htmlent.c文件中存在堆溢出漏洞,远程攻击者可以通过包含有HTML实体的特制字符串来触发这个溢出,导致执行任意代码。 以下是mbfilter_htmlent.c中有问题的HTML实体解码器,这里解码器实现为一个回调函数,输入字符串中的每个字符都会用包含有解码器状态的结构(mbfl_convert_filter)顺序调用该回调函数。 mbfl_convert_filter中的output_function字段指向一个函数,解码后的数据逐字符的传送给该函数,在出现错误的时候函数应返回负值,但如果参数是没有分配给任何字符的Unicode值时就可能失效。具体来说,由于output_function的符号是int(*)(int, void *)而缓冲区是无符字符数组,因此任何大于127的字符代码都会在将其值取反后传送给该函数,导致无条件的失效。 ------------------------------------------------------------------------------ #define CK(statement) do { if ((statement) > 0) return (-1); } while (0) ... int mbfl_filt_conv_html_dec(int c, mbfl_convert_filter *filter) { if (!filter-<status) { ... } else { if (c == ';') { ... } else { /* add character */ buffer[filter-<status++] = c; /* add character and check */ if (!strchr(html_entity_chars, c) || filter-<status+1==html_enc_buffer_size || (c=='#' &&...

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