
2025年11月5日、SUSEの研究者により3件の脆弱性が公開され、Docker、Kubernetes、その他のプラットフォームで使用されるコンテナランタイムであるruncに影響することが明らかになりました。これらの脆弱性により攻撃者がコンテナ分離を回避できる可能性がありますが、本稿公開時点ではアクティブな悪用は確認されていません。競合状態を利用したマウント条件やprocfs書き込みリダイレクトを用いることで、攻撃者はホストシステムへのrootアクセスを得られる可能性があります。
これらの脆弱性は、カスタムのマウント構成でコンテナを起動できる権限を必要とするため、信頼できないコンテナイメージやDockerfileが最も可能性の高い攻撃の配布手段となります。
Sysdig Threat Research Team(TRT)は、公開された3件それぞれの脆弱性を調査し、Sysdigのお客様向けに緩和策および検知方法を推奨しています。調査結果の詳細は以下のとおりです。
脆弱性の技術的詳細
CVE-2025-31133: maskedPathsの悪用によるコンテナエスケープ
この脆弱性は、コンテナから機密性の高いホストファイルへのアクセスを防ぐために設計されたmaskedPaths機能のrunc実装における欠陥を悪用します。/dev/nullを用いてファイルをマスクする際、runcはソースが正当な/dev/nullのinodeであることを適切に検証できません。
コンテナ作成中に/dev/nullをシンボリックリンクに置き換えることで、攻撃者は任意のホストパスをコンテナ内にマウントさせるようruncを欺くことができます。これにより、/proc/sys/kernel/core_patternなどの重要ファイルへの書き込みが可能となり、コンテナからの脱出につながります。
CVE-2025-52565: /dev/consoleのマウント競合によるコンテナエスケープ
この脆弱性は、コンテナ初期化中に/dev/pts/$nを/dev/consoleへマウントする操作を標的とします。不十分な検証により、攻撃者はこのマウントをリダイレクトし、保護されたprocfsファイルへの書き込み権限を得る可能性があります。
この攻撃が成立するのは、/dev/consoleのマウントがmaskedPathsおよびreadonlyPathsの保護が適用される前に行われるためであり、攻撃者がマウント先を操作してセキュリティ制限を回避できるからです。
CVE-2025-52881: LSM回避と任意書き込みガジェット
この脆弱性は、共有マウントにおける競合状態を利用して、/procファイルへのruncの書き込みをリダイレクトできるようにします。攻撃者は、意図されたセキュリティラベルファイルではなく偽のprocfsファイルにruncが書き込むよう仕向けることで、Linux Security Module(LSM)のラベルを回避できます。
特に重大なのは、任意のテキストを含むsysctl書き込みを、/proc/sysrq-triggerや/proc/sys/kernel/core_patternのような危険なファイルへリダイレクトできる点です。前者はシステムクラッシュを引き起こし得て、後者はコンテナエスケープにつながり得ます。この脆弱性は、sysctlやセキュリティラベルを含む、runcにおける/procへのすべての書き込みに影響します。
脆弱なバージョンを検出する方法
Sysdig Secureのお客様は、Threat Intelligenceページ(Home > Threat Intelligence)にアクセスして、影響を受けるバージョンがインベントリに含まれていないか確認できます。この機能により、必要な修正の範囲を迅速に把握し、着手できます。
悪用を検出する方法
Sysdig SecureおよびFalcoのユーザーは、不審なシンボリックリンクの挙動を監視することで、これらの脆弱性の悪用を検出できます。以下に示すFalcoルールは実験的なもので、CVE-2025-31133およびCVE-2025-52565の活動を検出できます。Sysdig Secureのお客様はこのルールをカスタムルールファイルに追加できます。公式ルールは現在テスト中で、近日中にリリース予定です。
- rule: Create Symlink Over Procfs Files
desc: このルールは、機密ファイル上にシンボリックリンクが作成されることを検出します。runcがCVE-2025-31133およびCVE-2025-52565に対して脆弱な場合、これがコンテナエスケープにつながる可能性があります。攻撃者はこれらの脆弱性を悪用して、コンテナ境界から脱出したり、サービス拒否(DoS)攻撃を引き起こしたりする可能性があります。
condition: >
create_symlink and
((evt.arg.target in ("/proc/sysrq-trigger", "/proc/sys/kernel/core_pattern") and evt.arg.linkpath contains "/dev/null") or
(evt.arg.target in ("/proc/sysrq-trigger", "/proc/sys/kernel/core_pattern") and evt.arg.linkpath startswith "/dev/pts/"))
output: >
CVE-2025-31133およびCVE-2025-52565に基づき、runcにおいてコンテナエスケープにつながり得るファイル上にシンボリックリンクが作成されました。プロセス %proc.name(親 %proc.pname)、ユーザー %user.name、%container.name 上で実行(evt.arg.target=%evt.arg.target evt.arg.linkpath=%evt.arg.linkpath proc.name=%proc.name proc.cmdline=%proc.cmdline proc.exepath=%proc.exepath proc.pname=%proc.pname proc.pcmdline=%proc.pcmdline proc.pexepath=%proc.pexepath gparent=%proc.aname[2] user.name=%user.name image=%container.image.repository:%container.image.tag proc.pid=%proc.pid proc.cwd=%proc.cwd proc.ppid=%proc.ppid proc.sid=%proc.sid user.uid=%user.uid user.loginname=%user.loginname group.name=%group.name container.id=%container.id container.name=%container.name)
priority: CRITICAL
tags: [host]
影響を受けるruncのバージョンはどれですか?
CVE-2025-31133
- 影響あり: 既知のすべてのruncバージョン
- 修正済み: runc 1.2.8、1.3.3、1.4.0-rc.3以降
CVE-2025-52565
- 影響あり: runc 1.0.0-rc3以降
- 修正済み: runc 1.2.8、1.3.3、1.4.0-rc.3以降
CVE-2025-52881
- 影響あり: 既知のすべてのruncバージョン
- 修正済み: runc 1.2.8、1.3.3、1.4.0-rc.3以降
推奨される緩和策
翻訳元: https://www.sysdig.com/blog/runc-container-escape-vulnerabilities
