Dangerous runC flaws could allow hackers to escape Docker containers

DockerとKubernetesで使用されているrunCコンテナランタイムに新たに公開された3つの脆弱性が、隔離制限を回避してホストシステムにアクセスするために悪用される可能性がある。

CVE-2025-31133、CVE-2025-52565、CVE-2025-52881(いずれも)として追跡されているセキュリティ問題は、今週報告され、SUSEソフトウェアエンジニアでOpen Container Initiative(OCI)のボードメンバーであるAleksa Sarai氏によって開示された。

runCはユニバーサル・コンテナ・ランタイムであり、コンテナを実行するためのOCIリファレンス実装である。runCは、コンテナ・プロセスの作成、ネームスペースの設定、マウント、DockerやKubernetesのような上位ツールが呼び出せるcgroupといった低レベルの操作を担当する。

Wiz

脆弱性を悪用する攻撃者は、root 権限で基礎となるコンテナホストへの書き込みアクセス権を取得する可能性があります:

  • CVE-2025-31133– runC は、/dev/null バインドマウントを使用して、機密性の高いホストファイルを「マスク」します。攻撃者がコンテナ init 中に /dev/null をシンボリックリンクで置き換えると、 runc は攻撃者が制御するコンテナへの読み書き可能なターゲットをバインドマウントしてしまい、 /proc への書き込みやコンテナのエスケープが可能になってしまいます。
  • CVE-2025-52565– /dev/console のバインドマウントが、レース/シンボリックリンク経由で リダイレクトされる可能性があり、保護が適用される前に、 runc が予期しないターゲットをコンテナにマウントしてしまいます。これによって、重要な procfs エントリへの書き込み可能なアクセスが暴露され、 ブレイクアウトが可能になります。
  • CVE-2025-52881– runC は、攻撃者が制御するターゲットにリダイレクトされる /proc への書き込みを実行するように騙される可能性があります。また、通常の runc による書き込みを、 /proc/sysrq-trigger のような危険なファイルへの任意の書き込みに変えてしまいます。

CVE-2025-31133 と CVE-2025-52881 は runC の全てのバージョンに影響し、 CVE-2025-52565 は runC のバージョン 1.0.0-rc3 以降に影響します。修正プログラムは runC バージョン1.2.81.3.31.4.0-rc.3 以降で利用可能です。

悪用可能性とリスク

クラウドセキュリティ会社Sysdigの研究者は、3つの脆弱性を悪用するには「カスタムマウント設定でコンテナを起動する能力が必要である」と指摘している

現在のところ、これらの脆弱性が実際に悪用されたという報告はない。

Sysdig社は今週のアドバイザリーで、3つのセキュリティ問題のいずれかを悪用しようとする試みは、不審なシンボリックリンクの動作を監視することで検知できるとしている。

RunCの開発者はまた、ホストのルートユーザーをコンテナのネームスペースにマッピングすることなく、すべてのコンテナのユーザーネームスペースを有効化するなどの緩和策も共有している。

この予防策は、名前空間ユーザーが関連ファイルにアクセスできないようにするUnix DACパーミッションのため、攻撃の最も重要な部分をブロックするはずだ。

Sysdigはまた、脆弱性を悪用することによる潜在的な被害を減らすために、可能であればルートレス・コンテナを使用することを推奨している。

.ia_ad { background-color:#width: 95%; max-width: 800px; margin: 15px auto; border-radius: 8px; border:1px solid #d6ddee; display: flex; align-items: stretch; padding: 0; overflow: hidden; }:0; overflow: hidden; } .ia_lef { flex: 1; max-width: 200px; height: auto; display: flex; align-items: stretch; } .ia_lef a { display: flex; width: 100%; height: 100%; } .ia_lef a img { width: 100%; height: 100%; border-radius: 8px 0 0 8px; margin: 0; display: block; } .ia_rig { flex: 2; padding:display: flex; flex-direction: column; justify-content: center; } .ia_rig h2 { font-size: 17px !important; font-weight: 700; color:#line-height: 1.4; font-family:margin: 0 0 14px 0; } .ia_rig p { font-weight: bold; font-size: 14px; margin: 0 0 clamp(6px, 2vw, 14px) 0; } .ia_button { background-color:#border:1px solid #3b59aa; color: black; text-align: center; text-decoration: none; border-radius: 8px; display: inline-block; font-size: 16px; font-weight: bold; cursor: pointer; padding:width: fit-content; } .ia_button a { text-decoration: none; color: inherit; display: block; } @media (max-width: 600px) { .ia_ad { flex-direction: column; align-items: center; } .ia_lef { max-width: 100%; } .ia_lef a img { border-radius: 8px 8px 0 0; } .ia_rig { padding:15px;
width: 100%;
}

.ia_button {
width: 100%;
margin: 0px auto;
}
}

秘密 セキュリティ・チートシート:スプロールからコントロールへ

古いキーのクリーンアップでも、AIが生成するコードのガードレールの設定でも、このガイドはチームが最初からセキュアに構築するのに役立ちます。

チートシートを入手して、秘密管理の手間を省きましょう。