上周,一位名叫Dawid Golunski的波兰黑客发现了存在于MySQL中的漏洞:一个远程root代码执行漏洞和一个权限提升漏洞。当时,Golunski只提供了第一个漏洞的poc,但是承诺之后会透露第二个漏洞(CVE-2016-6663)的更多细节。
本周二,Golunski公布了针对两个漏洞的PoC:第一个PoC针对的是之前的高危权限提升漏洞,而另一个PoC针对的则是一个新的root权限提升漏洞,利用这个漏洞,攻击者能够获取到整个数据库的权限。
漏洞编号
CVE-2016-6663
CVE-2016-6664
漏洞影响
MySQL版本
MySQL衍生版本:Percona Server、MariaDB
漏洞介绍
权限提升/竞争条件漏洞(CVE-2016-6663)
本周发布的两个漏洞中较为严重的是竞争条件(race condition)漏洞,它能够让一个低权限账号(拥有CREATE/INSERT/SELECT权限)提升权限并且以系统用户身份执行任意代码。
一旦漏洞被利用,黑客就能够成功获取到数据库服务器内的所有数据库。
Root权限提升(CVE-2016-6664)
另一个漏洞则是root权限提升漏洞,这个漏洞可以让拥有MySQL系统用户权限的攻击者提升权限至root,以便进一步攻击整个系统。
导致这个问题的原因其实是因为MySQL对错误日志以及其他文件的处理不够安全,这些文件可以被替换成任意的系统文件,从而被利用来获取root权限。
这个漏洞与前面提到的权限提升漏洞配合使用风味更佳——黑客先使用权限提升漏洞(CVE-2016-6663)把普通用户提升为系统用户,之后再利用root权限提升漏洞(CVE-2016-6664)进一步提升为root用户。
所有的这些漏洞都可以在共享环境中使用。在共享环境中,用户能够访问各自独立的数据库。而通过这些漏洞,黑客可以获取到所有数据库的权限。
漏洞PoC
Golunski已经发布了两个漏洞的PoC代码:漏洞1、漏洞2。
MySQL已经修复了这两个漏洞,并且在上个月的季度更新中发布了补丁。
修复方案
我们强烈建议站长们尽快安装补丁,如果无法立即安装补丁,也可以采用临时的解决方案——关闭数据库服务器配置中的符号链接支持(在my.cnf中设置symbolic-links = 0)。