
Dockerという仕組みがあります。
いくつものメリットを届けてくれる仕組みです。
これは、開発者がアプリケーションとその依存関係をシステムから切り離して、コードを一貫性を持って実行できるような環境を提供してくれます。
開発者は環境の変化を心配する必要がなくなり、開発環境と実行環境の関係性の管理から解放されます。
そして、Dockerの環境を利用する場合、通常、コンテナは外部からプロセス空間やネットワーク等が隔離された空間のことを示します。
コンテナの中でプロセスが動くことにより、便利なだけでなく、ホストとゲストを分離でき、安全な環境を実現できるものとなります。
しかしこれはDockerが想定する環境で動作を提供できている場合の話になります。
Dockerの依存するソフトウェアの一つであるrunCコンテナランタイムに新たに公開された3つの脆弱性を悪用されました。
これを悪用されると、分離制限を回避してコンテナの中のコードはホストシステムにアクセスできる可能性があります。
- CVE-2025-31133
脆弱なrunCを使い、コンテナ内から/dev/nullを読み書き可能な状態にバインドマウントします。
これにより、攻撃者は/procへの書き込みとコンテナからの脱出が可能になります。 - CVE-2025-52565
通常であれば/dev/consoleはDockerコンテナから保護されるように動作しますが、この脆弱性の関係で保護が適用される前にrunCが予期しないターゲットをコンテナにマウントする可能性があります。
これにより、重要なPROCFSエントリへの書き込みアクセスが公開され、コンテナからの脱出が発生する可能性があります。 - CVE-2025-52881
この脆弱性も、/procに対する書き込みを実行できてしまう可能性がある内容となっています。
これらの脆弱性は広い範囲のバージョンに存在します。
CVE-2025-31133とCVE-2025-52881はrunCの全バージョンに影響し、CVE-2025-52565はrunCの1.0.0-rc3以降に影響します。
修正はrunCの1.2.8、1.3.3、1.4.0-rc.3以降で実施されています。
この脆弱性のある状態の環境においては、攻撃者は悪意のあるコンテナイメージまたはDockerfileを対象環境に送り込むことでこの攻撃を実現できる可能性があるものとなっています。
どのようにこの問題に対策しましょうか。
環境を適切に保つことも有効な対策となりますし、Dockerの場合であればrootlessコンテナを活用するということも対策になります。
rootlessでコンテナを動かしておくと、コンテナ内でrootに昇格され、さらにコンテナから脱出されたとしても、そのコンテナはホストのrootとは無関係のユーザで実行されているため、ホストのrootを乗っ取られることにはならないという状態にできます。
rootlessも工夫の必要のある部分がありますので使うのが簡単でない場合もありますが、環境の提供する安全機構を活用するというのも大きな安全対策にできることを知っておくべきでしょう。
使える手を広い視点で検討しつつ、安全を維持していきましょう。
runc container breakouts via procfs writes: CVE-2025-31133, CVE-2025-52565, and CVE-2025-52881
https://seclists.org/oss-sec/2025/q4/138
| この記事をシェア |
|---|