且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

MySQL管理员须知的两大漏洞与修复方法

更新时间:2022-09-21 18:22:27

上月末,一位名叫Dawid Golunski的波兰黑客发现了MySQL中存在的两个关键漏洞:远程root代码执行漏洞和权限升级漏洞。MySQL,MariaDB和Percona Server的管理员需要检查其数据库版本了,因为攻击者可以通过链接这两个关键漏洞,完全接管数据库服务器。

根据Dawid Golunski的观点,这两个关键漏洞可以导致任意代码执行,root权限升级和服务器损坏影响MySQL和其衍生版本,如Percona Server,Percona XtraDB Cluster和MariaDB。管理员应尽快安装更新,以免无法进行修复,临时解决方案是在数据库服务器配置中禁用符号链接支持,在my.cnf中设置symbolic-links = 0。

竞争条件缺陷

第一个漏洞,特权升级/竞争条件缺陷(CVE-2016-6663),这为本地系统用户访问数据库提供了特权,并允许用户作为数据库系统用户执行任意代码。它能够让一个低权限账号(拥有CREATE/INSERT/SELECT权限)提升权限并且以系统用户身份执行任意代码。

本地系统用户只需具有本地选择,插入和创建特权即可利用此漏洞,这与由REPAIR TABLE SQL语句创建临时文件的不安全操作相关。在基于MySQL的数据库中,具有create特权的用户可以指定新表存储目录的磁盘路径。在表修复过程中,如果攻击者设法取消链接临时表,并在它被锁定之前将其替换为系统目录(/ var / lib / mysql)的符号链接,攻击者将能应用任意权限目录。例如,对临时表设置权限,由于符号链接可以使数据目录可读写。

此时,攻击者可以访问mysql shell并运行任意代码。以特权系统用户身份(mysql)运行mysql shell,攻击者可以创建具有特定权限的另一个目录,并在该路径中创建表。

受影响的数据库软件版本包括MySQL 5.5.51及更早版本,5.6.32及更早版本以及5.7.14及更早版本; Percona Server 5.5.51-38.2及更早版本,5.6.32-78-1及更早版本以及5.7.14-8及更早版本; Percona XtraDB群集5.6.32-25.17及更早版本,5.7.14-26.17及更早版本,以及5.5.41-37.0及更早版本; 和MariaDB 5.5.52和更早版本,10.1.18和更早版本以及10.0.28和更早版本。

Root特权升级漏洞

特权升级/竞争条件缺陷可以与另一个关键漏洞(root特权升级漏洞(CVE-2016-6664))链接,导致这个问题的原因其实是因为MySQL对错误日志以及其他文件的处理不够安全,这些文件可以被替换成任意的系统文件,从而被利用获取root权限。大多数默认安装的MySQL,Percona Server for MySQL和MariaDB的error.log文件存储在/ var/ log/ mysql或/ var/ lib/ mysql中。

“两个漏洞结合将有效允许低特权本地数据库用户升级系统特权到root帐户,这增加了问题的严重性,”Golunski写道。

在共享环境中,属于不同组织和应用程序的多个数据库托管在同一服务器上,该组合允许攻击者访问系统,作为较低层用户对机器可以实现完全控制。竞争条件缺陷可以与不同的特权升级漏洞(如9月份在MySQL中报告的漏洞)组合,以在服务器上获得root权限。攻击者可以利用常见的Web应用程序漏洞在服务器上找到立足点,并破坏服务器的工作方式。所有当前版本的MariaDB都将受到此缺陷的影响。

了解和应用更新

Oracle修复了MySQL中的漏洞,Percona修复了Server和XtaDB Cluster中的问题。 MySQL修复可能有点混乱,因为在Oracle的Critical Patch Tuesday中为这些漏洞分配了不同的CVE标识符。在上个月的Oracle CPU中,竞争条件缺陷被标识为CVE-2016-5616,而root权限升级漏洞被标识为CVE-2016-5617。Oracle CPU更新已具有最新的MySQL修补程序。

MariaDB修复了竞争条件漏洞,并将在以后的版本中关闭root权限升级漏洞。由于无法直接利用root权限升级漏洞,因此严重性低于竞争条件缺陷。虽然同样需要修复,但需要另一个漏洞才能使数据库可用,团队可能需要一些时间来处理补丁。

服务器(尤其是生产数据库)的更新应用不像在台式机和笔记本电脑上下载和安装更新一样简单。补丁必须彻底测试,管理员必须找出更新窗口,这将导致最少的中断。这就是为什么许多漏洞在补丁发布后很长时间又会被攻击,像这样的漏洞可能会在共享环境中涉及其他数据库和应用程序,需要一个积极的修补计划,以避免日后被再次攻击。

本文转自d1net(转载)