🏠 ホーム ニュース 📖 解説記事 📚 トピック解説 🏷️ タグ一覧 ℹ️ About
🔍 記事を検索
カテゴリ
📡 RSSフィード
Follow
X (Twitter) 🧵 Threads
Quick Links
ニュース一覧 🏷️タグから探す
🧠Claude 🤖Agent 💬LLM 🔌MCP 🛠️Tool
Subscribe
📡 RSSフィード
Breaking News
2026.04.09 23:30 security devops

Docker脆弱性CVE-2026-34040:AuthZバイパスでホスト乗っ取り、CVSS 8.8の緊急パッチ

🐳 ニュース
Docker脆弱性CVE-2026-34040:AuthZバイパスでホスト乗っ取り、CVSS 8.8の緊急パッチ
TL;DR
Docker Engine CVE-2026-34040はAuthZ認可プラグインを1MB超のリクエストでバイパスし、特権コンテナからホストを完全掌握できる深刻な脆弱性。CVSS 8.8。Docker 29.3.1で修正済み。影響確認コマンドと即座に実行すべき対策を解説。

Docker Engineに深刻な認可バイパス脆弱性、CVSS 8.8

Docker Engineに高深刻度の脆弱性CVE-2026-34040が公開された。CVSS 8.8。攻撃者がDocker APIへのアクセス権を持っている場合、AuthZ(認可)プラグインを完全にバイパスし、特権コンテナを作成してホストファイルシステムを掌握できる。

修正版はDocker Engine 29.3.1。影響を受けるのは29.3.1未満の全バージョンで、根本原因はDocker Engine 1.10(約10年前)から存在していた。

攻撃の仕組み ── 1MBの壁を悪用する

この脆弱性の核心は、Docker EngineのAuthZプラグイン連携におけるdrainBody関数にある。

sequenceDiagram participant A as 攻撃者 participant D as Docker Daemon participant P as AuthZプラグイン participant C as コンテナ A->>D: コンテナ作成リクエスト(1MB超にパディング) D->>D: drainBody() → 1MBバッファ超過 D->>D: Peek() → 空データを返す D->>P: 空のリクエストボディを送信 P->>P: 空ボディ → デフォルトで"許可" P->>D: 認可OK D->>D: 元の悪意あるペイロードを実行 D->>C: 特権コンテナ作成(--privileged, -v /:/host) C->>A: ホストファイルシステム完全アクセス

drainBody関数はリクエストボディを読み取ってAuthZプラグインに渡す役割を持つが、ハードコードされた1MBのバッファ制限がある。攻撃者がリクエストボディを1MB超にパディングすると:

  1. Peek()操作が空データを返す
  2. Docker Daemonは空のボディをAuthZプラグインに送信
  3. 多くのAuthZプラグインは空ボディに対してデフォルトで「許可」を返す
  4. Docker Daemonは元の悪意あるペイロードをそのまま実行する
# 攻撃のイメージ(概念的なコマンド)
# 1MB超のパディングを含むコンテナ作成リクエスト
curl -X POST http://docker-host:2375/containers/create \
  -H "Content-Type: application/json" \
  -d '{"Image":"alpine","HostConfig":{"Privileged":true,"Binds":["/:/ host"]},"padding":"AAAA...(1MB超)..."}'

# AuthZプラグインには空ボディが渡され → 許可
# Docker Daemonは元のリクエストを実行 → 特権コンテナ作成

CVE-2024-41110の不完全な修正 ── 同じ問題が再発

この脆弱性はCVE-2024-41110の修正が不完全だったことが原因。2024年に発見された同じAuthZバイパスの修正パッチが、1MB超のリクエストボディに対する処理を正しくカバーしていなかった。

  CVE-2024-41110 CVE-2026-34040
発見年 2024 2026
原因 AuthZに空ボディが渡される 同上(修正漏れ)
攻撃条件 Content-Length 0のリクエスト 1MB超のリクエストボディ
修正 Docker 27.1.1 Docker 29.3.1
CWE CWE-187 CWE-288

根本原因のコードは約10年前のDocker Engine 1.10から存在しており、長期間にわたって潜在的なリスクとなっていた。

影響範囲 ── 誰が危険か

環境 リスク 理由
マルチテナントDocker環境 極めて高い テナント間の認可制御がバイパスされる
CI/CDパイプライン 高い ビルドワーカーが特権コンテナを作成可能
Docker APIを公開している環境 高い ネットワーク経由で攻撃可能
AuthZプラグイン未使用の環境 低い AuthZを使っていなければ直接的影響なし
Flociのようなローカル開発環境 低い ローカルでの開発利用では通常AuthZ不使用

今すぐ確認すべきこと

Step 1: バージョン確認

docker version --format ''
# → 29.3.1 未満なら脆弱

Step 2: 危険なコンテナの検出

# 特権コンテナの検出
docker ps --format ' ' | while read name status; do
  priv=$(docker inspect "$name" --format '')
  if [ "$priv" = "true" ]; then
    echo "⚠️ 特権コンテナ検出: $name"
  fi
done

# ホストファイルシステムマウントの検出
docker ps -q | xargs -I {} docker inspect {} \
  --format ': → ' \
  | grep -E "/:| /etc| /var/run/docker.sock"

Step 3: 修正

# Docker Engine 29.3.1にアップグレード
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install docker-ce=5:29.3.1-1~ubuntu.24.04~noble

# macOS (Docker Desktop)
# Docker Desktop → Check for Updates → 29.3.1以上に更新

パッチ適用が困難な場合の回避策

# Dockerデーモンソケットの権限制限
sudo chmod 660 /var/run/docker.sock

# user namespace remapping有効化(/etc/docker/daemon.json)
{
  "userns-remap": "default"
}

# デーモン再起動
sudo systemctl restart docker

Docker 29.3.1での修正内容

修正コミット(e89edb1、3月25日)では以下が変更された:

flowchart LR subgraph BEFORE["❌ 修正前(29.3.0以前)"] B1["1MB超のリクエスト"] --> B2["空ボディをAuthZに渡す"] B2 --> B3["デフォルト許可"] end subgraph AFTER["✅ 修正後(29.3.1)"] A1["4MiB超のリクエスト"] --> A2["サイズ超過を検知"] A2 --> A3["リクエスト拒否(fail-closed)"] end style BEFORE fill:#ff6b6b15,stroke:#ff6b6b style AFTER fill:#22c55e15,stroke:#22c55e

タイムライン

日付 事象
2024年7月 CVE-2024-41110(同じAuthZバイパス)が公開・修正
2026年3月25日 修正コミット e89edb1 がマージ
2026年3月31日 CVE-2026-34040 割り当て、Docker 29.3.1リリース
2026年4月2日 セキュリティアドバイザリ公開
2026年4月7日 各メディアで報道開始

同日に発覚したaxiosサプライチェーン攻撃Claude Codeソースコード流出と合わせて、2026年3-4月はインフラ・開発ツールのセキュリティインシデントが集中している。Grypeのようなコンテナ脆弱性スキャンツールを導入していれば、こうした脆弱性の早期検知が可能だ。

参照ソース

Follow
よくある質問
Q. CVE-2026-34040とは何か
Docker EngineのAuthZ認可プラグインをバイパスできる脆弱性(CVSS 8.8)。1MB超のリクエストボディを送信するとAuthZプラグインに空のボディが渡され、認可チェックがスキップされる。Docker 29.3.1で修正済み。
Q. 影響を受けるバージョンは
Docker Engine 29.3.1未満の全バージョン。根本原因はDocker Engine 1.10(約10年前)から存在。CVE-2024-41110の修正が不完全だったことが原因。
Q. AuthZプラグインを使っていない場合は影響があるか
AuthZプラグインを使用していない環境では直接的な影響はない。ただしAuthZプラグインは企業環境でのDockerアクセス制御の基盤であり、マルチテナント環境やCI/CDパイプラインで使用されていることが多い。
Q. 今すぐ何をすべきか
docker version でバージョンを確認し、29.3.1未満なら即座にアップグレード。パッチ適用が困難な場合は、Dockerデーモンソケットの権限を660に制限し、user namespace remapping(userns-remap)を有効化する。
関連する記事
Claude Managed Agents発表:エージェントの構築からデプロイまでをAnthropicがホスティング、パブリックベータ開始
claudeAIエージェント
Claude Managed Agents発表:エージェントの構築からデプロイまでをAnthropicがホスティング、パブリックベータ開始
2026.04.09
Claude Mythos Preview発表:AIが全主要OS・ブラウザのゼロデイ脆弱性を数千件発見、Anthropicが1億ドル規模の防衛計画を始動
claudesecurity
Claude Mythos Preview発表:AIが全主要OS・ブラウザのゼロデイ脆弱性を数千件発見、Anthropicが1億ドル規模の防衛計画を始動
2026.04.09
Cursor 3.0の全新機能まとめ:AIコーディングで複数エージェントを並行実行する方法
agent
Cursor 3.0の全新機能まとめ:AIコーディングで複数エージェントを並行実行する方法
2026.04.08
Claude Sonnet 5(claude-sonnet-5-20260401)リリース:SWE-bench 92%超えで開発者が知るべき全仕様
claudellm
Claude Sonnet 5(claude-sonnet-5-20260401)リリース:SWE-bench 92%超えで開発者が知るべき全仕様
2026.04.05
🔔 AI速報、毎日Xで配信中
Claude Code・MCP・AIエージェントの最新ニュースをいち早くお届け
@peaks2314 をフォロー
広告
🔥 Popular
#1 POPULAR
🔓 Claude Codeのソースコード流出、npmソースマップに51万行が丸見えだった件
Anthropic Claude Codeのnpmパッケージにソースマップが含まれ、1,902ファイル・51万行超のTypeScriptソースが公開状態に。未公開プロジェクト「KAIROS」や107個のフィーチャーフラグなど、内部コードの全貌を解説する。
#2 POPULAR
🎨 awesome-design-md:DESIGN.mdでAIにUI生成させる方法【58ブランド対応】
DESIGN.mdをプロジェクトに置くだけでAIエージェントが一貫したUI生成を実現。Vercel・Stripe・Claudeなど58ブランドのデザイン仕様をnpx 1コマンドで導入する方法と、実際の出力差を検証した結果を解説。
#3 POPULAR
📊 TradingView MCP:Claude CodeからTradingViewを完全操作する78ツールのMCPサーバー
TradingView MCPはClaude CodeからTradingView Desktopを直接操作できる78ツール搭載のMCPサーバー。チャート分析、Pine Script開発、マルチペイン、アラート管理、リプレイ練習まで自然言語で実行。導入手順を解説
#4 POPULAR
⚡ Claude Code NO_FLICKER modeの使い方:ちらつき解消とマウス対応でターミナルUI刷新
Claude CodeのNO_FLICKER modeは環境変数1つで有効化できる新ターミナルレンダラー。ちらつき解消・マウスイベント対応・差分レンダリングの仕組みと設定方法を解説。今すぐ使い方を確認しましょう。
#5 POPULAR
🎬 1本16円でYouTubeショート動画を全自動生成するOSS「YouTube Shorts Pipeline」の全貌
1本16円でYouTubeショート動画を全自動生成するOSSが登場。Claude+Gemini+ElevenLabs構成でリサーチから投稿まで完全自動。月1,000本でも16,000円。導入手順とアーキテクチャを解説
← Claude Managed Agents発表:エージェントの構築からデプロイまでをAnthropicがホスティング、パブリックベータ開始