漏洞预警MySQL/MariaDB/PerconaDB-提权/条件竞争漏洞(附POC)
Posted 安全客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了漏洞预警MySQL/MariaDB/PerconaDB-提权/条件竞争漏洞(附POC)相关的知识,希望对你有一定的参考价值。
Dawid Golunski在 mysql, MariaDB 和 PerconaDB 数据库中发现条件竞争漏洞,该漏洞允许本地用户使用低权限(CREATE/INSERT/SELECT权限)账号提升权限到数据库系统用户(通常是'mysql')执行任意代码。成功利用此漏洞,允许攻击者完全访问数据库。也有潜在风险通过(CVE-2016-6662 和 CVE-2016-6664漏洞)获取操作系统root权限。
基于MYSQL的数据库允许用户新建数据库,并且指定存储目录。例如:
可以通过data directory参数指定存储目录为/tmp/disktable/
执行完成后,查看下目录权限,变为mysql
低权限(SELECT/CREATE/INSERT权限)的MYSQL账户,在执行表修复过程中,执行了不安全的临时文件创建。
通过查看系统调用,可以看到
第一个系统调用是
我们可以看到,在检验poctab1.MYD表文件权限的时候,也会复制在创建repaired表时的临时文件chmod()权限。因此在
和
系统调用之间,产生了条件竞争漏洞。
如果攻击者删除临时表poctab1.TMD,然后通过符号链接在chmod()操作前替换/var/lib/mysql,则能够完全控制MYSQL的data目录权限。
攻击者可以预设置poctab1.MYD权限为04777(suid),然后通过有漏洞的chmod()调用有效的复制一个bash shell来执行命令。这里会有一个问题,suid shell将只会保留攻击者的UID,而不是'mysql'用户。因此攻击者需要复制bash shell到mysql用户用户的表文件,然而mysql表文件又不具有写权限。
可以通过新建一个具有组粘帖位(group sticky bit)的目录来绕过这个限制
新建/tmp/disktable/目录,并赋予组粘帖位(group sticky bit)
通过data directory参数指定存储目录为/tmp/disktable/
再次查看/tmp/disktable/权限
我们可以看到poctab2.MYD表已经是'mysql'权限了,但是属于'attacker'组。这样'attacker'就能够复制/bin/bash到poctab2.MYD文件了。
http://legalhackers.com/videos/MySQL-MariaDB-PerconaDB-PrivEsc-Race-CVE-2016-6663-5616-6664-5617-Exploits.html
在my.cnf中添加
http://legalhackers.com/advisories/MySQL-Maria-Percona-PrivEscRace-CVE-2016-6663-5616-Exploit.html
以上是关于漏洞预警MySQL/MariaDB/PerconaDB-提权/条件竞争漏洞(附POC)的主要内容,如果未能解决你的问题,请参考以下文章
预警通报关于Apache Tomcat WebSocket拒绝服务 漏洞的预警通报