PHP 5 PHP_Stream_Filter_Create()函数缓冲区溢出漏洞

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

PHP是一款广泛使用的WEB开发脚本语言。 PHP php_stream_filter_create()存在缓冲区溢出,远程攻击者可利用此漏洞以应用程序进程权限执行任意指令。 当一个过滤器通过php_stream_filter_create()函数建立时,会首先在HASH表中通过名字搜索过滤器,如果不成功会检查是否有通用过滤器支持请求的过滤器,这通过如下代码执行: if (SUCCESS == zend_hash_find(filter_hash, (char*)filtername, n, (void**)&factory)) { filter = factory->create_filter(filtername, filterparams, persistent TSRMLS_CC); } else if ((period = strrchr(filtername, '.'))) { /* try a wildcard */ char *wildname; wildname = estrdup(filtername); period = wildname + (period - filtername); while (period && !filter) { *period = '\0'; strcat(wildname, ".*"); if (SUCCESS == zend_hash_find(filter_hash, wildname, strlen(wildname), (void**)&factory)) { filter = factory->create_filter(filtername, filterparams, persistent TSRMLS_CC); } *period = '\0'; period = strrchr(wildname, '.'); } efree(wildname); } 很显然这个函数假定字符串结尾不会包含点,因为没有为此保留额外的内存字节,因此尝试建立过滤器以点结尾的名字,可导致单字节溢出。 PHP PHP 5.1.6 PHP PHP 5.1.5 PHP PHP 5.1.4 PHP PHP 5.1.3 PHP PHP 5.1.3 PHP...

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