对于使用 Debian 或 Moxa Industrial Linux (MIL)的固件,请按照以下步骤将 policykit-1 软件包升级到 CVE-2021-4034 的最新版本。
第 1 步 检查 Moxa Debian 存储库是否在 apt 源列表中。
在 vi 编辑器中打开 moxa.source.list。
root@Linux:~$ sudo vi /etc/apt/sources.list.d/moxa.sources.list
或
root@Linux:~$ sudo vi /etc/apt/sources.list
如果不在,则将以下行添加到moxa.source.list,
对于 Debian 9.x,
deb http://deb.debian.com/debian stretch main contrib non-free
对于 Debian 10.x
deb http://deb.debian.com/debian buster main contrib non-free
对于 Debian 11.x
deb http://deb.debian.com/debian bulleyes main contrib non-free
第 2 步 更新最新的 apt 信息。
root@Linux:~$ apt-get update
第 3 步 为 CVE-2021-4034 安装最新的 policykit-1 包。
root@Linux:~$ apt-get install policykit-1
第 4 步 对该补丁进行测试。
首先,从 github 上获取漏洞利用脚本。
moxa@Linux:~/$ git clone https://github.com/berdav/CVE-2021-4034.git
接下来,构建程序。
moxa@Linux:~/CVE-2021-4034$ make
cc -Wall --shared -fPIC -o pwnkit.so pwnkit.c
cc -Wall cve-2021-4034.c -o cve-2021-4034
echo "module UTF-8// PWNKIT// pwnkit 1" > gconv-modules
mkdir -p GCONV_PATH=.
cp -f /usr/bin/true GCONV_PATH=./pwnkit.so:.
然后,在未打补丁的系统中运行 CVE-2021-4034 测试程序。测试程序将获得 root 权限。
moxa@Linux:~/CVE-2021-4034$ ./cve-2021-4034
# whoami
root
注意,如果系统已经打过补丁,当您运行测试程序时,会显示该结果。
moxa@Linux:~/CVE-2021-4034$ ./cve-2021-4034
pkexec --version |
--help |
--disable-internal-agent |
[--user username] PROGRAM [ARGUMENTS...]
有关详细信息,请参阅 pkexec 手册页。
第 5 步 无法立即打补丁的人应该使用以下命令从 pkexec 中删除 SUID 位:
root@Linux:~$ chmod 0755 /usr/bin/pkexec
|