Linux 12年漏洞可让黑客以根权限执行程序代码,影响所有发行版

安全厂商Qualys本周披露一项存在Linux系统管理组件长达12年的漏洞,可让本地攻击者以根权限在几乎所有发行版平台上执行程序代码。研究人员警告该漏洞开采容易,是攻击者的美梦成真。

这个编号CVE-2021-4034的漏洞,存在于Linux的Polkit(前称PolicyKit),因而漏洞又被称为PwnKit。Polkit是管理Unix、Linux等OS全系统准许权限的组件,让一般权限的行程(process)可和高权限行程交互。而Polkit中一项setuid程序pkexec,则可让用户以root权限执行指令。

根据Red Hat的说明,现有版本pkexec未正确处理调用参数,使其试图依指令执行环境变项。这让攻击者可操弄变项让pkexec执行任意程序代码,其结果是让原本没有特殊权限的本机用户得以取得在目标机器上的root权限。CVE-2021-4034 CVSS风险值被列为7.8。

例如研究人员在环境参数中注入GCONV_PATH,即可以root权限执行共享函数库。

Qualys强调此弱点是攻击者的“美梦成真”。一来Qualys验证后证实这项漏洞影响Ubuntu、Debian、Fedora和CentOS,也可能存在其他Linux发行版或Unix环境,包括Solaris及BSD,除了OpenBSD之外。而且这项漏洞最早可追溯到2009年5月发布的第一版pkexec,因此所有版本pkexec都受影响。其次,开采该漏洞相当容易,任何无特殊权限的本机用户都能开采而取得完整root权限。研究人员补充,虽然这项漏洞技术上只是内存毁损漏洞,但能产生立即而稳定效果。另外,polkit精灵程序(daemon)未执行下依然能开采该漏洞。

Qualys去年11月通报Linux厂商及社群,后续Red Hat、SUSE、Ubuntu、Oracle等皆已发布更新版本。

研究人员并且警告,由于CVE-2021-4034漏洞开采非常容易,且别的研究人员可能会在修补程序发布后发布攻击程序。如果用户的Linux发行版尚未获得修补,可以移除pkexec中的SUID-bit(例如# chmod 0755 /usr/bin/pkexec)暂时缓解攻击风险。