
Workaround für CVE-2025-52881: Behebt Docker-/Podman-Probleme in Proxmox LXC-Containern, die durch AppArmor-Inkompatibilität mit runc 1.2.7+ verursacht werden. Universeller Wrapper für community-scripts mit automatischer AppArmor-Konfiguration.
Workaround für CVE-2025-52881: Behebt Docker-, Podman- und Container-Laufzeit-Ausfälle in Proxmox LXC-Containern, die durch eine Inkompatibilität von AppArmor mit runc 1.2.7+/1.3.2+ verursacht werden
Aktuelle Sicherheitsupdates von runc (Versionen 1.2.7+ und 1.3.2+) und containerd (1.7.28-2+) haben eine brechende Inkompatibilität mit AppArmor eingeführt, wenn diese innerhalb von Proxmox LXC-Containern ausgeführt werden. Dies führt dazu, dass Docker und andere Container-Laufzeiten mit Fehlern wie dem folgenden fehlschlagen:
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
Dies betrifft:
Referenz: opencontainers/runc#4968
Ein Downgrade von runc unter 1.2.7/1.3.2 würde das Problem zwar „beheben“, setzt Ihr System jedoch tatsächlichen Privilegien-Eskalations-Schwachstellen aus, die durch das Sicherheitsupdate gepatcht wurden. Der Workaround in diesem Repository ist der empfohlene Ansatz.
Dieses Repository stellt Werkzeuge bereit, die den AppArmor-Workaround für Proxmox LXC-Container automatisch anwenden und verwalten:
pve-script-wrapper.sh - Universeller Wrapper für Proxmox-Community-Skriptepve-docker-fix - Repariert bestehende Container, die bereits defekt sindpve-docker-rollback - Entfernt den Workaround, sobald Upstream-Fixes verfügbar sindpct-patched - Interner Wrapper (wird automatisch von pve-script-wrapper.sh verwendet)Die Skripte erkennen automatisch das Betriebssystem Ihres Containers und wenden den entsprechenden AppArmor-Workaround an:
Für alle Container:
lxc.apparmor.profile: unconfined
Nur für Ubuntu-Container:
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0
Die erste Zeile deaktiviert die AppArmor-Einschränkung (für alle Distributionen erforderlich). Die zweite Zeile maskiert die AppArmor-Modulerkennung und wird nur für Ubuntu-Container benötigt – Debian-Container funktionieren normalerweise auch ohne (runc#4968).
Betriebssystem-Auto-Erkennung: Die Skripte erkennen automatisch, ob Ihr Container Ubuntu oder Debian ist, und wenden nur die erforderlichen Konfigurationszeilen an.
Führen Sie auf Ihrem Proxmox VE-Host Folgendes aus:
# Alle Skripte herunterladen
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
# Ausführbar machen
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
Oder klonen Sie das Repository:
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/
Anstatt:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/komodo.sh)"
Verwenden Sie:
pve-script-wrapper.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/komodo.sh
Dies funktioniert mit jedem Proxmox-Community-Skript, das LXC-Container erstellt:
# 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
# Und jedes andere Skript, das Container-Laufzeiten installiert
Wenn Sie bereits einen defekten Container haben:
# Container 105 reparieren
pve-docker-fix 105
# Ohne automatischen Neustart reparieren
pve-docker-fix 105 --no-restart
Das Tool wird:
Wenn Sie den Fix lieber manuell anwenden möchten:
# Container anhalten
pct stop 105
# Konfigurationsdatei bearbeiten
nano /etc/pve/lxc/105.conf
# Diese Zeile am Ende hinzufügen (für alle Container erforderlich):
lxc.apparmor.profile: unconfined
# Für Ubuntu-Container zusätzlich diese Zeile hinzufügen:
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0
# Container starten
pct start 105
Hinweis: Debian-Container benötigen normalerweise nur die erste Zeile. Ubuntu-Container benötigen beide Zeilen. Technische Details finden Sie unter runc#4968.
Sobald Upstream-Fixes verfügbar sind (Proxmox/LXC/AppArmor-Updates), können Sie den Workaround entfernen:
# Alle Container mit dem Workaround auflisten
pve-docker-rollback --list
# Von einem bestimmten Container entfernen
pve-docker-rollback 105
# Änderungen ohne Modifikation anzeigen
pve-docker-rollback 105 --dry-run
# Von allen Containern auf einmal entfernen
pve-docker-rollback --all
# Ohne Neustart entfernen (Änderungen gelten beim nächsten Start)
pve-docker-rollback 105 --no-restart
# Von allen Containern ohne Bestätigung entfernen
pve-docker-rollback --all --force
Das Rollback-Tool wird:
--force)Wann zurückgesetzt werden sollte:
pct-patchedPATH, um den Wrapper zu priorisierenpct-Befehlpct create-Befehle ab/usr/sbin/pct auf, um den Container zu erstellen/etc/pve/lxc/$CTID.conf einpct-Befehle unverändert durchlxc.apparmor.profile: unconfined# Überprüfen, ob Skripte ausführbar sind
ls -l /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched
# Falls nötig ausführbar machen
chmod +x /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched
# Überprüfen, ob der Fix angewendet wurde
grep -i apparmor /etc/pve/lxc/105.conf
# Erkannten OS-Typ prüfen
pct config 105 | grep ostype
# Bei Ubuntu-Containern sicherstellen, dass beide Zeilen vorhanden sind:
# - lxc.apparmor.profile: unconfined
# - lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled...
# Falls nicht vorhanden, manuell anwenden
pve-docker-fix 105
# Prüfen, ob der Container neu gestartet wurde
pct status 105
# Auf Syntaxfehler in der Konfiguration prüfen
cat /etc/pve/lxc/105.conf
# Detaillierte Fehlermeldungen anzeigen
journalctl -xe
Beiträge sind willkommen! Bitte:
GNU GENERAL PUBLIC LICENSE – Details finden Sie in der LICENSE-Datei
# Installation
curl -fsSL https://raw.githubusercontent.com/jq6l43d1/proxmox-lxc-docker-fix/main/install.sh | bash
# Community-Skript mit Fix ausführen
pve-script-wrapper.sh <script-url>
# Bestehenden Container reparieren
pve-docker-fix <container-id>
# Container mit Workaround auflisten
pve-docker-rollback --list
# Workaround entfernen (wenn Upstream-Fixes verfügbar)
pve-docker-rollback <container-id>
pve-docker-rollback --all
# Hilfe anzeigen
pve-script-wrapper.sh --help
pve-docker-fix --help
pve-docker-rollback --help
Hinweis: Dies ist ein temporärer Workaround, bis die Upstream-Projekte dauerhafte Fixes veröffentlichen. Beobachten Sie die referenzierten GitHub-Issues auf Updates.