PHP sqlite_udf_decode_binary()函数缓冲区溢出漏洞 CVE-2007-1888 CNNVD-200704-081

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

PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。 PHP的sqlite_udf_decode_binary()函数没有正确地处理对其传送的无效字符串。如果所传送的字符串仅包含有单个\x01字符的话,就会使用空字符串做为参数调用所捆绑sqlite库的sqlite_decode_binary()函数。但API函数并不支持这样的操作,必须使用长度至少为1的字符串调用。 int sqlite_decode_binary(const unsigned char *in, unsigned char *out){ int i, e; unsigned char c; e = *(in++); i = 0; while( (c = *(in++))!=0 ){ if( c==1 ){ c = *(in++) - 1; } out[i++] = c + e; } return i; } 如果使用空字符串调用了sqlite_decode_binary()函数的话,就会跳过ASCIIZ终止符,将之后的字节拷贝到目标,直到遇到另一个ASCIIZ字符。这类似于标准的strcpy()溢出。

0%
暂无可用Exp或PoC
当前有76条受影响产品信息