发布日期:2010-01-28
BUGTRAQ ID:37943
受影响的软件及系统:
====================
MySQL AB MySQL 5.5-ms2
MySQL AB MySQL 5.1.x
MySQL AB MySQL 5.0.x
综述:
======
MySQL是一款使用非常广泛的开放源代码关系数据库系统,拥有各种平台的运行版本。MySQL所捆绑的yaSSL库在解析畸形证书时存在缓冲区溢出漏洞,如果数据库在编译时加入了对SSL的支持并且配置打开了SSL功能,远程攻击者可能利用此漏洞无需认证通过提交畸形的证书内容触发溢出,控制程序流程在服务器上执行任意指令,从而最终控制MySQL服务器。
分析:
======
漏洞存在于MySQL所捆绑的yaSSL库中,其在解析畸形证书内容时存在一个稳定的栈缓冲区溢出,其他使用yaSSL库的网络应用也应该受此漏洞影响。默认MySQL没有打开SSL通信功能,如果MySQL服务器在配置文件中指定了服务器端的证书就打开了对SSL通信的支持,远程攻击者通过在会话中提交畸形的证书内容就能导致执行任意指令,此漏洞存在于通信通道建立的阶段,发生于用户认证之前,因此攻击者无需认证只要能够连接访问MySQL服务器就能利用。
大量Linux发行版所带的MySQL服务器编译时默认就加入了对yaSSL的支持,因此只要在配置时打开了SSL功能就受此漏洞的影响,另外,Windows版本的MySQL也受此漏洞影响。
此漏洞的利用代码已经公开,甚至已经被加入了商业的漏洞利用工具包,利用此漏洞进行的攻击可能趋于活跃,而且数据库服务器一般包含了大量有用信息,所以此漏洞所造成的总体威胁不可忽视。
解决方法:
==========
* 设置防火墙规则,禁止不可信任的IP访问MySQL的服务端口(默认为TCP/3306)。
* 关闭MySQL对SSL通信功能的支持:
在配置文件 mysql.cnf 文件中,找到并注释掉类似如下的指定证书路径的行:
ssl-ca=/etc/mysql/ca.pem
ssl-cert=/etc/mysql/cert.pem
ssl-key=/etc/mysql/key.pem
重启MySQL服务。
厂商状态:
==========
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.mysql.com/
附加信息:
==========
1. http://www.chinesehonker.org/News/Report/2010-01-28/3692.html
2. http://intevydis.blogspot.com/2010/01/mysq-yassl-stack-overflow.html