来自波兰的安全研究人员Dawid Golunski刚刚发现了两个MySQL的0-day漏洞,影响到所有版本分支、默认配置的MySQL服务器(5.7、5.6和5.5),包括最新版本。攻击者可以远程和本地利用漏洞。攻击者成功利用漏洞后,可以ROOT权限执行代码,完全控制MySQL数据库。攻击者仅需有FILE权限即可实现ROOT提权,进而控制服务器。
漏洞编号:
CVE-2016-6662与CVE-2016-6663
漏洞影响:
MySQL <= 5.7.15 远程代码执行/ 提权 (0day)
5.6.33
5.5.52
MySQL分支亦受影响,包括:
MariaDB
PerconaDB
漏洞介绍:
CVE-2016-6662漏洞可令来自远程或本地的攻击者,往MySQL设置文件(my.cnf)中注入自定义的数据库设置。该问题仅影响到默认设置下的MySQL服务器,从漏洞利用步骤来看,在数据库重启后即可触发。通常在系统更新、包更新等操作期间,数据库服务器都会重启。
认证访问MySQL数据库(通过网络连接或者如phpMyAdmin一类web界面),以及SQL注入都可作为漏洞利用方式——尤其SQL注入增加了该漏洞的风险。攻击者成功利用漏洞后,就能以root权限执行任意代码,并达到完全控制MySQL服务器的目的。
CVE-2016-6663漏洞尚未公开,实际上这是CVE-2016-6662的一个变体——同样是在root权限下进行远程代码执行(据说甚至不需要有FILE权限)。
修复方案:
MariaDB和PerconaDB已经发布补丁修复漏洞,Oracle方面则需要等到下一波推送的10月关键补丁更新,具体时间是10月18日。
Golunski另外也提供了临时缓解漏洞危害的方法:
“用户应该确保,MySQL配置文件不在mysql用户手中,并建立root权限、不使用的、伪装的my.cnf文件。”
但这仅是变通方案,用户应在补丁发布后立即更新。
POC链接:http://legalhackers.com/advisories/MySQL-Exploit-Remote-Root-Code-Execution-Privesc-CVE-2016-6662.html
有关为何Oracle要到10月修复漏洞的问题:
Oracle应该算是家严格遵守安全更新计划的企业,他们发布安全更新的频率是每3个月1次——上一次Oracle关键补丁更新是在7月19日。Golunski表示,他向Oracle上报这两个漏洞的时间是7月29日,Oracle方面已经了解到该漏洞的存在性,预计将在10月18日发布关键补丁更新。
Golunski表示:“PerconaDB和MariaDB都已经在8月30日修复这两个漏洞…自上报问题以来,已经超过40天时间,补丁也已经公开,所以我决定公开漏洞(带部分PoC),在Oracle发布下一波关键补丁更新之前,也能够起到警示用户有关其风险性的作用。”
不过Golunski也明确表示,这只是缓解方案。MySQL用户应该在厂商发布补丁之后就立刻应用补丁。