Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
proxmox-lxc-docker-fix — CVE-2025-52881 の回避策: Proxmox LXCコンテナ内で、AppArmorとrunc 1.2.7+の非互換性によって引き起こされるDocker/Podmanの破損を修正します。自動AppArmor構成を備えたcommunity-scripts用のユニバーサルラッパー。 | Kitploit
ツール/GitHubGitHub/jq6l43d1/proxmox-lxc-docker-fix
クラウドインフラストラクチャセキュリティコンテナセキュリティ脆弱性分析スクリプトと自動化DevSecOps設定ミス
GitHubjq6l43d1/proxmox-lxc-docker-fix

proxmox-lxc-docker-fix

CVE-2025-52881 の回避策: Proxmox LXCコンテナ内で、AppArmorとrunc 1.2.7+の非互換性によって引き起こされるDocker/Podmanの破損を修正します。自動AppArmor構成を備えたcommunity-scripts用のユニバーサルラッパー。

リポジトリを見る
1529ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Proxmox LXC Docker/コンテナ向け AppArmor 修正

CVE-2025-52881 の回避策: Proxmox LXC コンテナ内で、runc 1.2.7+/1.3.2+ との AppArmor 非互換性によって発生する Docker、Podman、およびコンテナランタイムの障害を修正します。

🚨 問題

runc (バージョン 1.2.7+ および 1.3.2+) と containerd (1.7.28-2+) の最近のセキュリティアップデートにより、Proxmox LXC コンテナ内で AppArmor と互換性のない破壊的変更が導入されました。これにより、Docker やその他のコンテナランタイムが以下のようなエラーで失敗します:

root@kitploit:~
OCI runtime create failed: unable to start container process:
error during container init: open sysctl net.ipv4.ip_unprivileged_port_start file:
reopen fd 8: permission denied

影響を受けるもの:

  • ✗ Proxmox コミュニティスクリプト (docker.sh, komodo.sh, dockge.sh, casaos.sh など)
  • ✗ LXC への手動 Docker/Podman インストール
  • ✗ LXC コンテナ内で runc を使用する任意のコンテナランタイム

参照: opencontainers/runc#4968

⚠️ runc をダウングレードしないでください

runc を 1.2.7/1.3.2 未満にダウングレードすれば「修正」はできますが、セキュリティアップデートで修正された実際の権限昇格の脆弱性にシステムをさらすことになります。このリポジトリの回避策が推奨されるアプローチです。

✅ 解決策

このリポジトリは、Proxmox LXC コンテナに AppArmor 回避策を自動的に適用および管理するツールを提供します:

  1. pve-script-wrapper.sh - Proxmox コミュニティスクリプト用の汎用ラッパー
  2. pve-docker-fix - 既に壊れている既存コンテナの修正
  3. pve-docker-rollback - 上流の修正が利用可能になったときに回避策を削除
  4. pct-patched - 内部ラッパー (pve-script-wrapper.sh によって自動的に使用されます)

動作の仕組み

スクリプトはコンテナの OS を自動検出し、適切な AppArmor 回避策を適用します:

すべてのコンテナ向け:

root@kitploit:~
lxc.apparmor.profile: unconfined

Ubuntu コンテナのみ:

root@kitploit:~
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0

最初の行は AppArmor の制限を無効にし (すべてのディストリビューションで必要)、2 行目は AppArmor モジュールの検出をマスクし、Ubuntu コンテナでのみ必要です。Debian コンテナは通常、これがなくても動作します (runc#4968)。

OS 自動検出: スクリプトはコンテナが Ubuntu か Debian かを自動検出し、必要な設定行のみを適用します。

📦 インストール

Proxmox VE ホストで以下を実行します:

root@kitploit:~
# すべてのスクリプトをダウンロード
curl -fsSL https://raw.githubusercontent.com/jq6l43d1/proxmox-lxc-docker-fix/main/pve-script-wrapper.sh -o /usr/local/bin/pve-script-wrapper.sh
curl -fsSL https://raw.githubusercontent.com/jq6l43d1/proxmox-lxc-docker-fix/main/pct-patched -o /usr/local/bin/pct-patched
curl -fsSL https://raw.githubusercontent.com/jq6l43d1/proxmox-lxc-docker-fix/main/pve-docker-fix -o /usr/local/bin/pve-docker-fix
curl -fsSL https://raw.githubusercontent.com/jq6l43d1/proxmox-lxc-docker-fix/main/pve-docker-rollback -o /usr/local/bin/pve-docker-rollback

# 実行可能にする
chmod +x /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched /usr/local/bin/pve-docker-fix /usr/local/bin/pve-docker-rollback

またはリポジトリをクローン:

root@kitploit:~
git clone https://github.com/jq6l43d1/proxmox-lxc-docker-fix.git
cd proxmox-lxc-docker-fix
chmod +x *.sh pct-patched pve-docker-fix pve-docker-rollback
cp pve-script-wrapper.sh pct-patched pve-docker-fix pve-docker-rollback /usr/local/bin/

🚀 使用法

自動修正付きでコミュニティスクリプトを実行

以下の代わりに:

root@kitploit:~
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/komodo.sh)"

次を使用:

root@kitploit:~
pve-script-wrapper.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/komodo.sh

これは LXC コンテナを作成する任意の Proxmox コミュニティスクリプトで動作します:

root@kitploit:~
# Docker
pve-script-wrapper.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docker.sh

# Dockge
pve-script-wrapper.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/dockge.sh

# CasaOS
pve-script-wrapper.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/casaos.sh

# Podman
pve-script-wrapper.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/podman.sh

# その他コンテナランタイムをインストールするスクリプトすべて

既存のコンテナの修正

既に壊れているコンテナがある場合:

root@kitploit:~
# コンテナ 105 を修正
pve-docker-fix 105

# 自動再起動なしで修正
pve-docker-fix 105 --no-restart

このツールは以下を行います:

  1. 修正が既に適用されているか確認
  2. コンテナを停止 (確認あり)
  3. AppArmor 回避策を適用
  4. コンテナを再起動

手動修正

手動で修正を適用したい場合:

root@kitploit:~
# コンテナを停止
pct stop 105

# 設定ファイルを編集
nano /etc/pve/lxc/105.conf

# この行を最後に追加 (すべてのコンテナで必要):
lxc.apparmor.profile: unconfined

# Ubuntu コンテナの場合、この行も追加:
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0

# コンテナを起動
pct start 105

注: Debian コンテナは通常、最初の行のみが必要です。Ubuntu コンテナは両方の行が必要です。技術的な詳細は runc#4968 を参照してください。

修正のロールバック

上流の修正が利用可能になったら (Proxmox/LXC/AppArmor のアップデート)、回避策を削除できます:

root@kitploit:~
# 回避策が適用されたすべてのコンテナを一覧表示
pve-docker-rollback --list

# 特定のコンテナから削除
pve-docker-rollback 105

# 変更をプレビュー (変更は加えない)
pve-docker-rollback 105 --dry-run

# すべてのコンテナから一度に削除
pve-docker-rollback --all

# 再起動なしで削除 (変更は次回起動時に適用)
pve-docker-rollback 105 --no-restart

# 確認なしですべてのコンテナから削除
pve-docker-rollback --all --force

ロールバックツールは以下を行います:

  1. 回避策が適用されているか検出
  2. 削除される行を表示
  3. 確認を要求 (--force を除く)
  4. AppArmor 設定を削除
  5. 必要に応じてコンテナを再起動

ロールバックのタイミング:

  • 上流の修正が利用可能になったという発表を待つ
  • runc#4968 の更新を監視
  • まず重要でないコンテナでテスト
  • ロールバック後に Docker/コンテナが動作することを確認してから本番環境から削除

🔧 技術的な仕組み

pve-script-wrapper.sh

  • pct-patched へのシンボリックリンクを含む一時ディレクトリを作成
  • ラッパーを優先するよう PATH を変更
  • コミュニティスクリプトをダウンロードして実行
  • スクリプトは透過的にパッチされた pct コマンドを使用

pct-patched

  • pct create コマンドをインターセプト
  • 実際の /usr/sbin/pct を呼び出してコンテナを作成
  • コンテナの OS タイプ (Ubuntu vs Debian) を検出
  • 作成直後に、適切な AppArmor 設定を /etc/pve/lxc/$CTID.conf に注入
  • 他のすべての pct コマンドはそのまま通過

pve-docker-fix

  • 既存のコンテナを修正するための独立したツール
  • コンテナの OS タイプを自動検出
  • 修正が既に適用されているか確認 (冪等)
  • OS に基づいて必要な設定行のみを適用
  • ユーザー確認付きでコンテナの停止/起動を処理
  • 複数回実行しても安全

pve-docker-rollback

  • 不要になった AppArmor 回避策を削除
  • すべてのコンテナをスキャンして回避策が適用されたものを検出
  • コメントブロックと設定行を安全に削除
  • 単一コンテナ、バッチ (--all)、または一覧モードをサポート
  • 適用前に変更をプレビューするドライランモード
  • 確認付きでコンテナ再起動を処理
  • 冪等で複数回実行しても安全

🛡️ セキュリティ上の考慮事項

これによって変更されるもの

  • LXC コンテナの AppArmor 制限を無効化
  • 多層防御の1層を削除

引き続き保護されるもの

  • コンテナは非特権のまま (最も重要なセキュリティ境界)
  • カーネル名前空間による分離は引き続き強制
  • cgroups リソース制限は引き続き適用
  • 標準の Linux パーミッションは有効

リスク評価

  • リスク: コンテナが侵害された場合の分離がわずかに低下
  • 緩和: コンテナは非特権のまま。これが主要なセキュリティ制御
  • 比較: runc をダウングレードして実際の CVE にさらすよりもはるかに安全

これを使用すべきでない場合

  • 最大限の分離が必要な本番環境
  • 信頼できないコンテナを扱うマルチテナントシステム
  • 信頼できないコードを実行するコンテナ

代替案

  • 上流の修正を待つ (Proxmox/LXC/AppArmor/カーネル)
  • 特権コンテナを使用する (推奨しません - セキュリティが悪化)
  • コンテナの代わりに VM を使用する (オーバーヘッド増加)

📋 影響を受けるシステム

影響が確認されているもの

  • 最近のアップデートが適用された Proxmox VE 8.x
  • Debian 12 (Bookworm) LXC コンテナ
  • Ubuntu LXC コンテナ (すべての最新バージョン)
  • runc バージョン 1.2.7+ および 1.3.2+
  • containerd バージョン 1.7.28-2+

OS 固有の注意点

  • Debian コンテナ: 通常は lxc.apparmor.profile: unconfined のみ必要
  • Ubuntu コンテナ: 両方の設定行が必要 (プロファイル + マウントエントリ)
  • スクリプトは自動的に OS を検出し、適切な修正を適用

影響を受けることがわかっているコミュニティスクリプト

  • docker.sh
  • komodo.sh
  • dockge.sh
  • casaos.sh
  • podman.sh
  • runtipi.sh
  • omv.sh (OpenMediaVault)
  • alpine-docker.sh
  • podman-homeassistant.sh
  • その他 390 以上のコンテナベーススクリプト

🔗 参照

  • 主な問題: opencontainers/runc#4968
  • CVE: CVE-2025-52881
  • 関連 CVE: CVE-2025-31133, CVE-2025-52565
  • Proxmox フォーラムの議論: Community Scripts Issue #8890
  • Incus 修正: PR #2624

🐛 トラブルシューティング

スクリプトが動作しない

root@kitploit:~
# スクリプトが実行可能か確認
ls -l /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched

# 必要に応じて実行可能にする
chmod +x /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched

修正適用後も Docker が失敗する

root@kitploit:~
# 修正が適用されたか確認
grep -i apparmor /etc/pve/lxc/105.conf

# 検出された OS タイプを確認
pct config 105 | grep ostype

# Ubuntu コンテナの場合、両方の行が存在することを確認:
# - lxc.apparmor.profile: unconfined
# - lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled...

# 存在しない場合、手動で適用
pve-docker-fix 105

# コンテナが再起動されたか確認
pct status 105

修正後にコンテナが起動しない

root@kitploit:~
# 設定の構文エラーを確認
cat /etc/pve/lxc/105.conf

# 詳細なエラーメッセージを表示
journalctl -xe

🤝 貢献

貢献大歓迎です!以下の点にご注意ください:

  1. 変更を Proxmox VE システムでテストする
  2. 機能を追加する場合はドキュメントを更新する
  3. 既存のコードスタイルに従う
  4. 明確な説明を添えて PR を送信する

📝 ライセンス

GNU GENERAL PUBLIC LICENSE - 詳細は LICENSE ファイルを参照

🙏 謝辞

  • opencontainers/runc チーム (セキュリティ修正)
  • community-scripts/ProxmoxVE メンテナ
  • 問題の議論に貢献したすべての方々

⚡ クイックリファレンス

root@kitploit:~
# インストール
curl -fsSL https://raw.githubusercontent.com/jq6l43d1/proxmox-lxc-docker-fix/main/install.sh | bash

# 修正付きでコミュニティスクリプトを実行
pve-script-wrapper.sh <script-url>

# 既存のコンテナを修正
pve-docker-fix <container-id>

# 回避策が適用されたコンテナを一覧表示
pve-docker-rollback --list

# 回避策を削除 (上流の修正が利用可能になった場合)
pve-docker-rollback <container-id>
pve-docker-rollback --all

# ヘルプを表示
pve-script-wrapper.sh --help
pve-docker-fix --help
pve-docker-rollback --help

注: これは上流プロジェクトが恒久的な修正をリリースするまでの一時的な回避策です。参照されている GitHub の問題の更新を監視してください。

ツールをダウンロード