Skip to content
KitploitKITPLOIT
ツールブログ
Log in
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

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クラスター向けのデプロイメントガイドを提供します。

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
43105年前未レビュー

CVE-2021-22555 の再現コードをコンテナとして提供

まず、こちらのエクスプロイトコードを便利なプリビルドコンテナとしてまとめたものです: https://github.com/google/security-research/tree/master/pocs/linux/cve-2021-22555

プリビルドコンテナ: quay.io/cgwalters/cve-2021-22555

緩和策:seccomp プロファイル

強力な緩和策として、clone(CLONE_NEWUSER) を拒否する seccomp を有効にすることが挙げられます。アップストリームの Kubernetes ドキュメント にはその情報がありますが、ノードへのポリシーのデプロイはユーザーに委ねられています。OpenShift 4 では、これを処理できる machine-config-operator があります。

Seccomp は公式ドキュメントではあまり議論されていません。しかし、セキュリティガイド では少なくともその一部に触れられており、このブログ でも同様です。

注記:crio/podman の runtime/default ポリシーと docker の比較

4.7 の cri-o にはデフォルトの seccomp ポリシーが同梱されていますが、デフォルトでは有効ではありません。 podman と docker もどちらもポリシーを同梱しており、デフォルトで有効ですが、両者は異なります(下記参照)。

cri-o のポリシーはデフォルトで clone(CLONE_NEWUSER) を拒否しません。これは podman のポリシーでも同じです。しかし、docker のデフォルトポリシー は clone(CLONE_NEWUSER) を拒否します。

[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 は影響を受けます。(TODO: containerd を確認)

より強力な seccomp ポリシーを見つけてデプロイする

openshift/seccomp-for-fun-and-profit のブログエントリでこの点が議論されており、作成者が生成したプロファイルへのリンクがあります。このポリシーは clone(CLONE_NEWUSER) を拒否します。

便宜上、このリポジトリにはそのプロファイルのコピーを more-restricted.json として、また Butane ファイル として含めています。この Butane ファイルは、そのプロファイルをワーカーにデプロイする MachineConfig オブジェクトを生成します。

サンプル Pod ファイル を使用してください。これには次の記述が含まれています:

securityContext:
  seccompProfile:
    type: Localhost
    localhostProfile: more-restricted.json

すると次のようになります:

$ 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 がオプトインする必要があります。まだ未解決の課題:seccomp ポリシーを SecurityContextConstraint で必須にできるかどうか、またはミューテーティングアドミッション Webhook が必要かどうかを調査する必要があります。

ツールをダウンロード