Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
proxmox-lxc-docker-fix — Solution de contournement pour CVE-2025-52881 : Corrige les problèmes de Docker/Podman dans les conteneurs Proxmox LXC causés par une incompatibilité d'AppArmor avec runc 1.2.7+. Wrapper universel pour community-scripts avec configuration automatique d'AppArmor. | Kitploit
Outils/GitHubGitHub/jq6l43d1/proxmox-lxc-docker-fix
Sécurité de l'Infrastructure CloudSécurité des ConteneursAnalyse des VulnérabilitésScripting et AutomatisationDevSecOpsMauvaise Configuration
GitHubjq6l43d1/proxmox-lxc-docker-fix

proxmox-lxc-docker-fix

Solution de contournement pour CVE-2025-52881 : Corrige les problèmes de Docker/Podman dans les conteneurs Proxmox LXC causés par une incompatibilité d'AppArmor avec runc 1.2.7+. Wrapper universel pour community-scripts avec configuration automatique d'AppArmor.

Voir le dépôt
1523il y a 10 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Correction AppArmor pour LXC Proxmox – Docker/Containers

Solution de contournement pour CVE-2025-52881 : Corrige les dysfonctionnements de Docker, Podman et des environnements d'exécution de conteneurs dans les conteneurs LXC Proxmox causés par une incompatibilité d'AppArmor avec runc 1.2.7+/1.3.2+

🚨 Le problème

Des mises à jour de sécurité récentes de runc (versions 1.2.7+ et 1.3.2+) et containerd (1.7.28-2+) ont introduit une incompatibilité bloquante avec AppArmor lors de l'exécution dans des conteneurs LXC Proxmox. Cela provoque l'échec de Docker et des autres environnements d'exécution avec des erreurs comme :

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

Cela affecte :

  • ✗ Les scripts de la communauté Proxmox (docker.sh, komodo.sh, dockge.sh, casaos.sh, etc.)
  • ✗ Les installations manuelles de Docker/Podman dans LXC
  • ✗ Tout environnement d'exécution utilisant runc dans des conteneurs LXC

Référence : opencontainers/runc#4968

⚠️ NE PAS rétrograder runc

Bien que rétrograder runc en dessous de 1.2.7/1.3.2 « résoudrait » le problème, cela expose votre système à de réelles vulnérabilités d'élévation de privilèges corrigées par la mise à jour de sécurité. La solution de contournement présente dans ce dépôt est l'approche recommandée.

✅ La solution

Ce dépôt fournit des outils qui appliquent et gèrent automatiquement la solution de contournement AppArmor pour les conteneurs LXC Proxmox :

  1. pve-script-wrapper.sh – Wrapper universel pour les scripts de la communauté Proxmox
  2. pve-docker-fix – Corrige les conteneurs existants déjà cassés
  3. pve-docker-rollback – Supprime la solution de contournement lorsque des correctifs en amont sont disponibles
  4. pct-patched – Wrapper interne (utilisé automatiquement par pve-script-wrapper.sh)

Comment ça fonctionne

Les scripts détectent automatiquement le système d'exploitation de votre conteneur et appliquent la solution de contournement AppArmor appropriée :

Pour tous les conteneurs :

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

Pour les conteneurs Ubuntu uniquement :

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

La première ligne désactive le confinement AppArmor (nécessaire pour toutes les distributions). La seconde ligne masque la détection du module AppArmor et n'est nécessaire que pour les conteneurs Ubuntu – les conteneurs Debian fonctionnent généralement sans elle (runc#4968).

Détection automatique de l'OS : Les scripts détectent automatiquement si votre conteneur est Ubuntu ou Debian et n'appliquent que les lignes de configuration nécessaires.

📦 Installation

Sur votre hôte Proxmox VE, exécutez :

root@kitploit:~
# Téléchargement de tous les scripts
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

# Rendre exécutables
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

Ou clonez le dépôt :

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/

🚀 Utilisation

Exécution de scripts communautaires avec correction automatique

Au lieu de :

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

Utilisez :

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

Cela fonctionne avec n'importe quel script de la communauté Proxmox créant des conteneurs LXC :

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

# Et tout autre script qui installe des environnements d'exécution de conteneurs

Correction de conteneurs existants

Si vous avez déjà un conteneur cassé :

root@kitploit:~
# Corriger le conteneur 105
pve-docker-fix 105

# Corriger sans redémarrage automatique
pve-docker-fix 105 --no-restart

L'outil va :

  1. Vérifier si la correction est déjà appliquée
  2. Arrêter le conteneur (avec confirmation)
  3. Appliquer la solution de contournement AppArmor
  4. Redémarrer le conteneur

Correction manuelle

Si vous préférez appliquer la correction manuellement :

root@kitploit:~
# Arrêter le conteneur
pct stop 105

# Éditer le fichier de configuration
nano /etc/pve/lxc/105.conf

# Ajouter cette ligne à la fin (requise pour tous les conteneurs) :
lxc.apparmor.profile: unconfined

# Pour les conteneurs Ubuntu, ajouter également cette ligne :
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0

# Démarrer le conteneur
pct start 105

Remarque : Les conteneurs Debian nécessitent généralement uniquement la première ligne. Les conteneurs Ubuntu ont besoin des deux lignes. Voir runc#4968 pour les détails techniques.

Annulation de la correction

Lorsque des correctifs en amont seront disponibles (mises à jour Proxmox/LXC/AppArmor), vous pourrez supprimer la solution de contournement :

root@kitploit:~
# Lister tous les conteneurs avec la solution de contournement
pve-docker-rollback --list

# Supprimer d'un conteneur spécifique
pve-docker-rollback 105

# Prévisualiser les modifications sans les appliquer
pve-docker-rollback 105 --dry-run

# Supprimer de tous les conteneurs en une fois
pve-docker-rollback --all

# Supprimer sans redémarrage (les modifications s'appliquent au prochain démarrage)
pve-docker-rollback 105 --no-restart

# Supprimer de tous les conteneurs sans confirmation
pve-docker-rollback --all --force

L'outil d'annulation va :

  1. Détecter si la solution de contournement est appliquée
  2. Afficher les lignes qui seront supprimées
  3. Demander une confirmation (sauf si --force)
  4. Supprimer la configuration AppArmor
  5. Redémarrer le conteneur si nécessaire

Quand annuler :

  • Attendez les annonces indiquant que des correctifs en amont sont disponibles
  • Surveillez runc#4968 pour les mises à jour
  • Testez d'abord sur des conteneurs non critiques
  • Vérifiez le fonctionnement de Docker/conteneurs après l'annulation avant de supprimer en production

🔧 Fonctionnement technique

pve-script-wrapper.sh

  • Crée un répertoire temporaire avec un lien symbolique vers pct-patched
  • Modifie PATH pour prioriser le wrapper
  • Télécharge et exécute le script communautaire
  • Le script utilise de manière transparente la commande pct corrigée

pct-patched

  • Intercepte les commandes pct create
  • Appelle le vrai /usr/sbin/pct pour créer le conteneur
  • Détecte le type d'OS du conteneur (Ubuntu vs Debian)
  • Immédiatement après la création, injecte la configuration AppArmor appropriée dans /etc/pve/lxc/$CTID.conf
  • Transmet toutes les autres commandes pct inchangées

pve-docker-fix

  • Outil autonome pour corriger les conteneurs existants
  • Détecte automatiquement le type d'OS du conteneur
  • Vérifie si la correction est déjà appliquée (idempotent)
  • Applique uniquement les lignes de configuration nécessaires selon l'OS
  • Gère l'arrêt/démarrage du conteneur avec confirmation de l'utilisateur
  • Peut être exécuté plusieurs fois sans danger

pve-docker-rollback

  • Supprime la solution de contournement AppArmor lorsqu'elle n'est plus nécessaire
  • Analyse tous les conteneurs pour trouver ceux qui l'ont appliquée
  • Supprime en toute sécurité les blocs de commentaires et les lignes de configuration
  • Prend en charge le mode conteneur unique, batch (--all) ou liste
  • Mode dry-run pour prévisualiser les modifications avant application
  • Gère le redémarrage du conteneur avec confirmation
  • Idempotent et sûr à exécuter plusieurs fois

🛡️ Considérations de sécurité

Ce que cela modifie

  • Désactive le confinement AppArmor pour le conteneur LXC
  • Supprime une couche de défense en profondeur

Ce qui reste protégé

  • Le conteneur reste non-privilégié (barrière de sécurité la plus importante)
  • Les espaces de noms du noyau appliquent toujours l'isolation
  • Les limites de ressources cgroups s'appliquent toujours
  • Les permissions Linux standard restent actives

Évaluation des risques

  • Risque : Isolation légèrement réduite si le conteneur est compromis
  • Atténuation : Les conteneurs restent non-privilégiés, ce qui est le contrôle de sécurité principal
  • Comparaison : Beaucoup plus sûr que de rétrograder runc et d'exposer de véritables CVEs

Quand NE PAS utiliser ceci

  • Environnements de production nécessitant une isolation maximale
  • Systèmes multi-locataires avec des conteneurs non fiables
  • Conteneurs exécutant du code non fiable

Alternatives

  • Attendre les correctifs en amont (Proxmox/LXC/AppArmor/noyau)
  • Utiliser des conteneurs privilégiés (NON recommandé – sécurité moins bonne)
  • Utiliser des VM plutôt que des conteneurs (plus de surcharge)

📋 Systèmes concernés

Affectés confirmés

  • Proxmox VE 8.x avec mises à jour récentes
  • Conteneurs LXC Debian 12 (Bookworm)
  • Conteneurs LXC Ubuntu (toutes versions récentes)
  • runc versions 1.2.7+ et 1.3.2+
  • containerd version 1.7.28-2+

Remarques spécifiques à l'OS

  • Conteneurs Debian : Nécessitent généralement uniquement lxc.apparmor.profile: unconfined
  • Conteneurs Ubuntu : Nécessitent les deux lignes de configuration (profil + entrée de montage)
  • Les scripts détectent automatiquement l'OS et appliquent la correction appropriée

Scripts communautaires connus pour être affectés

  • docker.sh
  • komodo.sh
  • dockge.sh
  • casaos.sh
  • podman.sh
  • runtipi.sh
  • omv.sh (OpenMediaVault)
  • alpine-docker.sh
  • podman-homeassistant.sh
  • Et plus de 390 autres scripts basés sur des conteneurs

🔗 Références

  • Problème principal : opencontainers/runc#4968
  • CVE : CVE-2025-52881
  • CVEs associées : CVE-2025-31133, CVE-2025-52565
  • Discussion sur le forum Proxmox : Community Scripts Issue #8890
  • Correctif Incus : PR #2624

🐛 Dépannage

Le script ne fonctionne pas

root@kitploit:~
# Vérifier que les scripts sont exécutables
ls -l /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched

# Les rendre exécutables si nécessaire
chmod +x /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched

Docker échoue toujours après application de la correction

root@kitploit:~
# Vérifier que la correction a été appliquée
grep -i apparmor /etc/pve/lxc/105.conf

# Vérifier le type d'OS détecté
pct config 105 | grep ostype

# Pour les conteneurs Ubuntu, vérifier que les deux lignes sont présentes :
# - lxc.apparmor.profile: unconfined
# - lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled...

# Si absentes, appliquer manuellement
pve-docker-fix 105

# Vérifier que le conteneur a redémarré
pct status 105

Le conteneur ne démarre pas après la correction

root@kitploit:~
# Vérifier les erreurs de syntaxe dans la configuration
cat /etc/pve/lxc/105.conf

# Consulter les messages d'erreur détaillés
journalctl -xe

🤝 Contribution

Les contributions sont les bienvenues ! Merci de :

  1. Tester vos modifications sur un système Proxmox VE
  2. Mettre à jour la documentation si vous ajoutez des fonctionnalités
  3. Suivre le style de code existant
  4. Soumettre une PR avec une description claire

📝 Licence

LICENCE PUBLIQUE GÉNÉRALE GNU – Consultez le fichier LICENSE pour plus de détails

🙏 Remerciements

  • L'équipe opencontainers/runc pour les correctifs de sécurité
  • Les mainteneurs de community-scripts/ProxmoxVE
  • Tous les contributeurs aux discussions sur les problèmes

⚡ Référence rapide

root@kitploit:~
# Installation
curl -fsSL https://raw.githubusercontent.com/jq6l43d1/proxmox-lxc-docker-fix/main/install.sh | bash

# Exécuter un script communautaire avec correction
pve-script-wrapper.sh <url-du-script>

# Corriger un conteneur existant
pve-docker-fix <id-conteneur>

# Lister les conteneurs avec la solution de contournement
pve-docker-rollback --list

# Supprimer la solution de contournement (quand les correctifs en amont sont disponibles)
pve-docker-rollback <id-conteneur>
pve-docker-rollback --all

# Obtenir de l'aide
pve-script-wrapper.sh --help
pve-docker-fix --help
pve-docker-rollback --help

Remarque : Ceci est une solution de contournement temporaire jusqu'à ce que les projets en amont publient des correctifs permanents. Surveillez les problèmes GitHub référencés pour les mises à jour.

Télécharger l’outil