Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
proxmox-lxc-docker-fix — 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. | Kitploit
Tools/GitHubGitHub/jq6l43d1/proxmox-lxc-docker-fix
Cloud-Infrastruktur-SicherheitContainer-SicherheitSchwachstellenanalyseScripting & AutomatisierungDevSecOpsFehlkonfiguration
GitHubjq6l43d1/proxmox-lxc-docker-fix

proxmox-lxc-docker-fix

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.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
1523vor 10 MonatenNoch nicht geprüft
Teilen

Proxmox LXC AppArmor-Fix für Docker/Container

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

🚨 Das Problem

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:

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

Dies betrifft:

  • ✗ Proxmox Community-Skripte (docker.sh, komodo.sh, dockge.sh, casaos.sh, usw.)
  • ✗ Manuelle Docker-/Podman-Installationen in LXC
  • ✗ Jede Container-Laufzeit, die runc innerhalb von LXC-Containern verwendet

Referenz: opencontainers/runc#4968

⚠️ runc NICHT downgraden

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.

✅ Die Lösung

Dieses Repository stellt Werkzeuge bereit, die den AppArmor-Workaround für Proxmox LXC-Container automatisch anwenden und verwalten:

  1. pve-script-wrapper.sh - Universeller Wrapper für Proxmox-Community-Skripte
  2. pve-docker-fix - Repariert bestehende Container, die bereits defekt sind
  3. pve-docker-rollback - Entfernt den Workaround, sobald Upstream-Fixes verfügbar sind
  4. pct-patched - Interner Wrapper (wird automatisch von pve-script-wrapper.sh verwendet)

Wie es funktioniert

Die Skripte erkennen automatisch das Betriebssystem Ihres Containers und wenden den entsprechenden AppArmor-Workaround an:

Für alle Container:

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

Nur für Ubuntu-Container:

root@kitploit:~
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.

📦 Installation

Führen Sie auf Ihrem Proxmox VE-Host Folgendes aus:

root@kitploit:~
# 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:

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/

🚀 Verwendung

Community-Skripte mit automatischem Fix ausführen

Anstatt:

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

Verwenden Sie:

root@kitploit:~
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:

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

# Und jedes andere Skript, das Container-Laufzeiten installiert

Bestehende Container reparieren

Wenn Sie bereits einen defekten Container haben:

root@kitploit:~
# Container 105 reparieren
pve-docker-fix 105

# Ohne automatischen Neustart reparieren
pve-docker-fix 105 --no-restart

Das Tool wird:

  1. Prüfen, ob der Fix bereits angewendet wurde
  2. Den Container anhalten (mit Bestätigung)
  3. Den AppArmor-Workaround anwenden
  4. Den Container neu starten

Manueller Fix

Wenn Sie den Fix lieber manuell anwenden möchten:

root@kitploit:~
# 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.

Fix rückgängig machen

Sobald Upstream-Fixes verfügbar sind (Proxmox/LXC/AppArmor-Updates), können Sie den Workaround entfernen:

root@kitploit:~
# 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:

  1. Erkennen, ob der Workaround angewendet wurde
  2. Zeigen, welche Zeilen entfernt werden
  3. Nach Bestätigung fragen (außer bei --force)
  4. Die AppArmor-Konfiguration entfernen
  5. Den Container bei Bedarf neu starten

Wann zurückgesetzt werden sollte:

  • Warten Sie auf Ankündigungen, dass Upstream-Fixes verfügbar sind
  • Überwachen Sie runc#4968 auf Updates
  • Testen Sie zuerst an unkritischen Containern
  • Überprüfen Sie, ob Docker/Container nach dem Rollback funktionieren, bevor Sie es von der Produktion entfernen

🔧 Wie es technisch funktioniert

pve-script-wrapper.sh

  • Erstellt ein temporäres Verzeichnis mit einem Symlink zu pct-patched
  • Ändert PATH, um den Wrapper zu priorisieren
  • Lädt das Community-Skript herunter und führt es aus
  • Das Skript verwendet transparent den gepatchten pct-Befehl

pct-patched

  • Fängt pct create-Befehle ab
  • Ruft das echte /usr/sbin/pct auf, um den Container zu erstellen
  • Erkennt den Container-OS-Typ (Ubuntu vs. Debian)
  • Fügt unmittelbar nach der Erstellung die entsprechende AppArmor-Konfiguration in /etc/pve/lxc/$CTID.conf ein
  • Leitet alle anderen pct-Befehle unverändert durch

pve-docker-fix

  • Eigenständiges Tool zur Reparatur bestehender Container
  • Erkennt den Container-OS-Typ automatisch
  • Prüft, ob der Fix bereits angewendet wurde (idempotent)
  • Wendet nur die notwendigen Konfigurationszeilen basierend auf dem OS an
  • Übernimmt das Stoppen/Starten des Containers mit Benutzerbestätigung
  • Kann problemlos mehrmals ausgeführt werden

pve-docker-rollback

  • Entfernt den AppArmor-Workaround, wenn er nicht mehr benötigt wird
  • Durchsucht alle Container, um diejenigen mit angewendetem Workaround zu finden
  • Entfernt sicher Kommentarblöcke und Konfigurationszeilen
  • Unterstützt Einzelcontainer, Batch (--all) oder Listenmodus
  • Dry-Run-Modus zur Vorschau der Änderungen vor dem Anwenden
  • Übernimmt Container-Neustart mit Bestätigung
  • Idempotent und sicher mehrfach ausführbar

🛡️ Sicherheitsaspekte

Was dies ändert

  • Deaktiviert die AppArmor-Einschränkung für den LXC-Container
  • Entfernt eine Schicht der defensiven Tiefe

Was weiterhin geschützt ist

  • Container bleibt unprivilegiert (wichtigste Sicherheitsgrenze)
  • Kernel-Namespaces erzwingen weiterhin Isolation
  • cgroups-Ressourcenlimits gelten weiterhin
  • Standard-Linux-Berechtigungen sind weiterhin aktiv

Risikobewertung

  • Risiko: Leicht reduzierte Isolation, wenn der Container kompromittiert wird
  • Minderung: Container bleiben unprivilegiert, was die primäre Sicherheitskontrolle darstellt
  • Vergleich: Viel sicherer als ein Downgrade von runc, das echte CVEs offenlegt

Wann dies NICHT verwendet werden sollte

  • Produktionsumgebungen, die maximale Isolation erfordern
  • Multi-Tenant-Systeme mit nicht vertrauenswürdigen Containern
  • Container, die nicht vertrauenswürdigen Code ausführen

Alternativen

  • Warten auf Upstream-Fixes (Proxmox/LXC/AppArmor/Kernel)
  • Verwendung privilegierter Container (NICHT empfohlen – schlechtere Sicherheit)
  • Verwendung von VMs anstelle von Containern (mehr Overhead)

📋 Betroffene Systeme

Bestätigt betroffen

  • Proxmox VE 8.x mit aktuellen Updates
  • Debian 12 (Bookworm) LXC-Container
  • Ubuntu LXC-Container (alle aktuellen Versionen)
  • runc Versionen 1.2.7+ und 1.3.2+
  • containerd Version 1.7.28-2+

Betriebssystemspezifische Hinweise

  • Debian-Container: Benötigen normalerweise nur lxc.apparmor.profile: unconfined
  • Ubuntu-Container: Benötigen beide Konfigurationszeilen (Profil + Mount-Eintrag)
  • Skripte erkennen das Betriebssystem automatisch und wenden den entsprechenden Fix an

Bekanntermaßen betroffene Community-Skripte

  • docker.sh
  • komodo.sh
  • dockge.sh
  • casaos.sh
  • podman.sh
  • runtipi.sh
  • omv.sh (OpenMediaVault)
  • alpine-docker.sh
  • podman-homeassistant.sh
  • Und 390+ andere containerbasierte Skripte

🔗 Referenzen

  • Hauptproblem: opencontainers/runc#4968
  • CVE: CVE-2025-52881
  • Verwandte CVEs: CVE-2025-31133, CVE-2025-52565
  • Proxmox-Forum-Diskussion: Community Scripts Issue #8890
  • Incus-Fix: PR #2624

🐛 Fehlerbehebung

Skript funktioniert nicht

root@kitploit:~
# Ü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

Docker funktioniert auch nach dem Fix nicht

root@kitploit:~
# Ü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

Container startet nach dem Fix nicht

root@kitploit:~
# Auf Syntaxfehler in der Konfiguration prüfen
cat /etc/pve/lxc/105.conf

# Detaillierte Fehlermeldungen anzeigen
journalctl -xe

🤝 Mitwirken

Beiträge sind willkommen! Bitte:

  1. Testen Sie Ihre Änderungen an einem Proxmox VE-System
  2. Aktualisieren Sie die Dokumentation, wenn Sie Funktionen hinzufügen
  3. Folgen Sie dem bestehenden Code-Stil
  4. Reichen Sie einen PR mit einer klaren Beschreibung ein

📝 Lizenz

GNU GENERAL PUBLIC LICENSE – Details finden Sie in der LICENSE-Datei

🙏 Danksagungen

  • opencontainers/runc-Team für die Sicherheitsfixes
  • community-scripts/ProxmoxVE-Betreuer
  • Alle Mitwirkenden an den Problemdiskussionen

⚡ Kurzreferenz

root@kitploit:~
# 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.

Tool herunterladen