安全研究人员已披露了MySQL服务器上一个漏洞的细节,该漏洞有可能会让潜在的攻击者不必输入正确的身份证书便可访问MySQL数据库。
该漏洞被确认为CVE-2012-2122,号漏洞,已经在五月发布的MySQL 5.1.63和5.5.25版本中得以修复。但是很多服务器管理员或许尚未意识到这个漏洞可能带来的影响,因为上述两个新版本中的变更日志关于这一安全漏洞的信息非常之少。
这个漏洞只有在MySQL所运行的系统中,当memcmp()功能可返回超出-128到127范围的值时才能被利用。也就是说,只有在Linux系统使用SSE优化库(GNU C库)的场合下才能被利用。
如果MySQL建立在这样一个系统上,那么源代码会拿用户输入的密码哈希表与数据库中某个特殊账户中存储的哈希表进行比对,有些情形下甚至可以允许输入密码不正确也能通过认证。
成功触发这一漏洞的概率约为1:256,MariaDB项目的安全协调人Sergei Golubchik在周六发给oss-sec邮件列表的一封邮件中称。“做300次攻击企图仅需不到一秒的时间,可以说账户密码保护基本上形同虚设。”
MariaDB是MySQL的一个开发子社区,它也受到了该漏洞的影响。不过在4月发布的MariaDB 5.1.62、5.2.12、5.3.6和5.5.23版本中已经修复了这一漏洞。
利用这一漏洞的软件模块已于上周日添加到了Metasploit渗透测试框架中。在探测到这一漏洞后,该模块便可复制MySQL服务器的主用户表,其中包含了所有的密码哈希表。
攻击者可使用目录攻击破解密码哈希表,并可维持对服务器的非授权访问,即便绕过漏洞的认证后来被修复了也是如此。“如果你从渗透测试者的角度来看这个问题,这可是最有效的MySQL诡计之一了。”Metasploit首席架构师HD Moore称。
Moore还发表了一份Linux发行版列表,旧版的MySQL构建在其中皆可发现可被用来攻击的漏洞。这些系统包括64位的Ubuntu 10.04、10.10、11.04、11.10和12.04,64位的OpenSuSE 12.1,64位版本的Debian不稳定版,64位的Fedora 16和Arch Linux的未指明版本。
大多数Linux厂商的发行版会通过他们自己的函数库预编译MySQL构建,经过补丁的构建对于大多数流行的发行版来说已经可用。用户应尽可能快地升级到没有漏洞的MySQL构建,尤其是因为这段漏洞代码已经公开了。
目前尚没有用于MySQL 5.0x的官方补丁,因为这一版本Oracle已不再支持。不过,有些Linux厂商可能会从MySQL 5.1或5.5向下移植这一补丁。