Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
container-cve-2021-22555 — 用于 CVE-2021-22555 Linux 权限提升的容器化复现工具,附带 seccomp 缓解配置文件以及 Kubernetes 和 OpenShift 集群的部署指南。 | Kitploit
工具/GitHubGitHub/cgwalters/container-cve-2021-22555
权限提升容器安全漏洞分析漏洞利用云安全学习与教育
GitHubcgwalters/container-cve-2021-22555

container-cve-2021-22555

用于 CVE-2021-22555 Linux 权限提升的容器化复现工具,附带 seccomp 缓解配置文件以及 Kubernetes 和 OpenShift 集群的部署指南。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
4335年前尚未审核

用于 CVE-2021-22555 的复现器(以容器形式)

首先,这里整合了来自以下地址的漏洞利用代码,并将其打包成一个便捷的预构建容器: https://github.com/google/security-research/tree/master/pocs/linux/cve-2021-22555

预构建容器:quay.io/cgwalters/cve-2021-22555

缓解措施:seccomp 配置文件

一项强有力的缓解措施是启用 seccomp,并禁止 clone(CLONE_NEWUSER) 系统调用。上游 Kubernetes 文档 中提供了一些相关信息,但如何将策略部署到节点则留给了用户。在 OpenShift 4 中,我们拥有 machine-config-operator 来处理这项工作。

seccomp 在 官方文档 中并未得到充分讨论。不过,安全指南 至少提及了其中一部分,这篇博客 也是如此。

注意:crio/podman 的 runtime/default 策略与 docker 的差异

cri-o 在 4.7 版本中附带了一个默认的 seccomp 策略,但默认并未启用。 podman 和 docker 也都附带了一个策略,并且默认是启用的(但两者有所不同,详见下文)。

cri-o 的策略默认不会禁止 clone(CLONE_NEWUSER)——podman 的策略也是如此。然而,docker 的默认策略 确实禁止了 clone(CLONE_NEWUSER):

root@kitploit:~
[root@cosa-devsh ~]# rpm -q podman moby-engine
podman-3.1.2-1.fc33.x86_64
moby-engine-19.03.13-1.ce.git4484c46.fc33.x86_64
[root@cosa-devsh ~]# podman run --rm -ti registry.fedoraproject.org/fedora:34 /bin/sh -c 'unshare -U --keep-caps true'
[root@cosa-devsh ~]# echo $?
0
[root@cosa-devsh ~]# docker run --rm -ti registry.fedoraproject.org/fedora:34 /bin/sh -c 'unshare -U --keep-caps true'
unshare: unshare failed: Operation not permitted
errchan: json: cannot unmarshal array into Go struct field systemdEventMessage.MESSAGE of type string
[root@cosa-devsh ~]# echo $?
1
[root@cosa-devsh ~]# 

换句话说:docker 默认不会受此漏洞影响,但 podman 和 cri-o 会。(待办:检查 containerd)

查找并部署更严格的 seccomp 策略

openshift/seccomp-for-fun-and-profit 博客条目讨论了其中的一些内容,并给出了作者生成的一个配置文件链接。该策略确实禁止了 clone(CLONE_NEWUSER)。

为方便起见,本仓库在 more-restricted.json 中包含了该配置文件的一个副本,以及一个 Butane 文件,该文件可生成一个 MachineConfig 对象,用于将该配置文件部署到工作节点。

使用 示例 pod 文件,其中包含:

root@kitploit:~
securityContext:
  seccompProfile:
    type: Localhost
    localhostProfile: more-restricted.json

我们得到:

root@kitploit:~
$ oc logs pod/cve-2021-22555
[+] Linux Privilege Escalation by theflow@ - 2021

[+] STAGE 0: Initialization
[*] Setting up namespace sandbox...
[-] unshare(CLONE_NEWUSER): Operation not permitted

这应该能使漏洞利用无法进行。

然而,这需要 pod 主动选择加入。仍然待办:探索是否可以通过 SecurityContextConstraint 强制要求 seccomp 策略,或者是否需要使用一个可变准入 Webhook。

下载工具