发布日期:2010-05-31
更新日期:2010-06-01
受影响系统:
PHP PHP <= 5.3.2
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 40461
PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。
PHP所使用的MySQLnd扩展用于处理与mysql服务器的通讯和实现mysql协议。该扩展的php_mysqlnd_auth_write()函数中存在栈溢出漏洞:
memset(p, 0, 23); /* filler */
p+= 23;
if (!packet->send_half_packet) {
len = strlen(packet->user);
memcpy(p, packet->user, len);
...
在与mysql服务器创建连接并在客户端上创建认证报文时会执行上述代码。创建认证报文期间没有执行任何安全检查,因此mysql_connect()或mysqli_connect()调用中超长的用户名或数据库名称都会触发栈溢出。
<*来源:Stefan Esser (s.esser@ematters.de)
链接:
*>
建议:
--------------------------------------------------------------------------------
厂商补丁:
PHP
---
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: