如果短时间内不会升级Polkit包,可以先使用方法1或方法2,但还是推荐使用方法3从根本上解决。
1. 取消s权限
查看pkexec的权限
ll /usr/bin/pkexec
如果为:
rwsr-xr-x 1 root root 31032 May 26 2021 /usr/bin/pkexec*
取消s权限,则无法提权成功。
操作命令:
sudo usermod u-s /usr/bin/pkexec
如果系统中别的应用使用到了这个命令,建议不要这么操作,否则会导致功能失败。
2. 删除该文件
该漏洞是由于pkexec具有s权限,导致在执行时,可以切换到root权限,所以,该文件不存在时,也就不存在该漏洞了。
如果系统中别的应用使用到了这个命令,建议不要这么操作,否则会导致功能失败。
3. 升级该可执行程序。
查看当前版本命令
/usr/bin/pkexec --version
在ubuntu系统上,可以通过如下命令查看:
dpkg -l | grep policykit
安全版本为:(可能只是部分,实际以各发行版的具体数据为准)
CentOS系列:
CentOS 6:polkit-0.96-11.el6_10.2
CentOS 7:polkit-0.112-26.el7_9.1
CentOS 8.0:polkit-0.115-13.el8_5.1
CentOS 8.2:polkit-0.115-11.el8_2.2
CentOS 8.4:polkit-0.115-11.el8_4.2
Ubuntu系列:
Ubuntu 20.04 LTS:policykit-1 - 0.105-26ubuntu1.2
Ubuntu 18.04 LTS:policykit-1 - 0.105-20ubuntu0.18.04.6
Ubuntu 16.04 ESM:policykit-1 - 0.105-14.1ubuntu0.5+esm1
Ubuntu 14.04 ESM:policykit-1 - 0.105-4ubuntu3.14.04.6+esm1
非安全版本请升级到安全版本即可。
4. 其它安全检查
此外,还要检查整个系统中,该文件是否已被拷贝到别处,且拥有s权限, 查找时,不能以pkexec作为条件,文件名称存在被修改可能。
觉得有用,请点个赞,谢谢。