漏洞版本: All MariaDB MySQL 5.1.61, 5.2.11, 5.3.5, 5.5.22 之前的版本 漏洞描述:
当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。
也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。按照公告说法大约256次就能够蒙对一次。而且漏洞利用工具已经出现。
不过,MySQL身份认证的时候是采用3元组,username,ip,password。如果client的IP在mysql.user表中找不到对应的,也无法登陆。
http://seclists.org/oss-sec/2012/q2/493
安全建议:
强烈建议升级官方补丁: 目前有mysql5.5.25下载 http://dev.mysql.com/downloads/mysql/
Percona-Server-5.5.24-rel26.0.tar.gz
MariaDB 5.1.62, 5.2.12, 5.3.6, 5.5.23 MySQL 5.1.63, 5.5.24, 5.6.6
临时解决办法: 在防火墙上关闭mysql端口
参考: http://sebug.net/vuldb/ssvid-60198 http://www.chinaz.com/news/2012/0612/256965.shtml http://seclists.org/oss-sec/2012/q2/493
============== 补充说明 ================== 这个 Bug 在官方编译的版本中没有发现。如果你是下载的源码,然后自己编译的就有可能遇到这个问题。 这个问题和 memcmp() 这个函数的返回值有关系。目前知道的情况来看,gcc 自带的 memcmp 是安全的,BSD libc 的 memcmp 是安全的。Linux glibc sse 优化过的 memcmp 会有这个问题。
针对该漏洞 Percona Server 发表了说明如下:
很多人听说了 MySQL 的登录漏洞后纷纷询问 Percona Server 是否受此问题影响,因此我们决定有必要发表一下说明:
该问题存在于 MySQL 5.5.23(5.1.62) 以及之前版本的源码中,因为基于同一个源码库,因此 Percona Server 也有同样的问题。 但是,Percona 提供的二进制安装文件不存在此问题,因为构建过程我们没有使用 sse-optimized glibc memcmp,所有版本的 Percona 都如此,包括 tar.gz, RPM and DEB 包,如果你使用的是从 Percona 下载页 获取的软件并进行安全,那么请不用担心,这个漏洞对你没有任何影响。 如果你使用是你自己或者第三方二进制版,我们没法保证是否安全,你可执行进行测试,测试脚本在这里。 另外你也可以考虑升级到最新的版本。
No Responses (yet)
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.