はじめに
DockerやKubernetesで利用されるコンテナランタイム「runC」において、新たに3つの重大な脆弱性(CVE-2025-31133、CVE-2025-52565、CVE-2025-52881)が公開されました。これらの脆弱性が悪用されると、コンテナの分離制限を回避し、ホストシステムへのルート権限でのアクセスが可能になる恐れがあります。SUSEのソフトウェアエンジニアであり、Open Container Initiative (OCI) のボードメンバーであるAleksa Sarai氏によって報告されたこれらの問題は、コンテナ環境のセキュリティに深刻な影響を与える可能性があります。
3つの新たな脆弱性の詳細
今回開示された脆弱性は、runCがコンテナの低レベルな操作を行う際に発生するもので、それぞれ異なるメカニズムでホストシステムへの不正な書き込みを可能にします。
- CVE-2025-31133:runCは機密性の高いホストファイルを「マスク」するために
/dev/nullのバインドマウントを使用します。攻撃者がコンテナ初期化中に/dev/nullをシンボリックリンクに置き換えることで、runCは攻撃者が制御するターゲットを読み書き可能な状態でコンテナ内にバインドマウントしてしまう可能性があります。これにより、/procへの書き込みが可能となり、コンテナエスケープにつながります。 - CVE-2025-52565:
/dev/consoleのバインドマウントが、競合状態やシンボリックリンクを介してリダイレクトされる可能性があります。これにより、runCが保護が適用される前に予期せぬターゲットをコンテナにマウントし、重要なprocfsエントリへの書き込みアクセスを露呈させ、コンテナからの脱出を可能にします。 - CVE-2025-52881:runCは、攻撃者が制御するターゲットにリダイレクトされた
/procへの書き込みを実行するように仕向けられる可能性があります。これにより、一部のバリアントではLSMリラベル保護をバイパスし、通常のrunCの書き込みが/proc/sysrq-triggerのような危険なファイルへの任意の書き込みに変わってしまいます。
影響を受けるバージョンと修正
CVE-2025-31133とCVE-2025-52881は、runCのすべてのバージョンに影響を与えます。一方、CVE-2025-52565はrunCバージョン1.0.0-rc3以降に影響します。
これらの脆弱性に対する修正は、runCの以下のバージョンで提供されています。
- runCバージョン 1.2.8
- runCバージョン 1.3.3
- runCバージョン 1.4.0-rc.3
- およびそれ以降のバージョン
悪用可能性とリスク
クラウドセキュリティ企業Sysdigの研究者らは、これら3つの脆弱性を悪用するには「カスタムマウント設定でコンテナを起動する能力」が必要であると指摘しています。これは、悪意のあるコンテナイメージやDockerfileを通じて攻撃者が達成できる可能性があります。現時点では、これらの脆弱性が実際に悪用されたという報告はありません。
Sysdigは、これら3つのセキュリティ問題の悪用を試みる行為は、不審なシンボリックリンクの挙動を監視することで検出できると述べています。
推奨される対策
runCの開発者は、以下の緩和策を推奨しています。
- ホストのルートユーザーをコンテナの名前空間にマッピングせずに、すべてのコンテナでユーザー名前空間を有効にすること。これにより、名前空間内のユーザーが関連ファイルにアクセスするのを防ぐUnix DACパーミッションにより、攻撃の最も重要な部分がブロックされます。
- 可能であれば、ルートレスコンテナを使用すること。これにより、脆弱性が悪用された場合の潜在的な被害を軽減できます。
まとめ
今回のrunCの脆弱性は、コンテナ環境のセキュリティにおける基盤の重要性を改めて浮き彫りにしました。DockerやKubernetesを利用している組織は、速やかにrunCを修正済みのバージョンにアップデートし、推奨される緩和策を適用することが不可欠です。継続的な監視とセキュリティベストプラクティスの実施により、これらの脅威からシステムを保護することが求められます。
