Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
proxmox-lxc-docker-fix — Soluzione alternativa per CVE-2025-52881: Risolve il malfunzionamento di Docker/Podman nei container Proxmox LXC causato dall'incompatibilità di AppArmor con runc 1.2.7+. Wrapper universale per community-scripts con configurazione automatica di AppArmor. | Kitploit
Strumenti/GitHubGitHub/jq6l43d1/proxmox-lxc-docker-fix
Sicurezza dell'Infrastruttura CloudSicurezza dei ContenitoriAnalisi delle VulnerabilitàScripting e AutomazioneDevSecOpsConfigurazione Errata
GitHubjq6l43d1/proxmox-lxc-docker-fix

proxmox-lxc-docker-fix

Soluzione alternativa per CVE-2025-52881: Risolve il malfunzionamento di Docker/Podman nei container Proxmox LXC causato dall'incompatibilità di AppArmor con runc 1.2.7+. Wrapper universale per community-scripts con configurazione automatica di AppArmor.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi Repository
152310 mesi faNon ancora revisionato
Condividi

Correzione AppArmor per LXC Proxmox per Docker/Contenitori

Soluzione alternativa per CVE-2025-52881: Risolve il malfunzionamento di Docker, Podman e runtime dei contenitori nei contenitori LXC di Proxmox causato dall'incompatibilità di AppArmor con runc 1.2.7+/1.3.2+

🚨 Il Problema

Gli aggiornamenti di sicurezza recenti di runc (versioni 1.2.7+ e 1.3.2+) e containerd (1.7.28-2+) hanno introdotto un'incompatibilità critica con AppArmor quando si esegue all'interno di contenitori LXC di Proxmox. Ciò causa il fallimento di Docker e di altri runtime di contenitori con errori come:

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

Questo interessa:

  • ✗ Script della comunità di Proxmox (docker.sh, komodo.sh, dockge.sh, casaos.sh, ecc.)
  • ✗ Installazioni manuali di Docker/Podman in LXC
  • ✗ Qualsiasi runtime di contenitori che utilizza runc all'interno di contenitori LXC

Riferimento: opencontainers/runc#4968

⚠️ NON Effettuare il Downgrade di runc

Anche se effettuare il downgrade di runc a una versione inferiore alla 1.2.7/1.3.2 "risolverebbe" il problema, esporrebbe il sistema a vulnerabilità reali di escalation dei privilegi che l'aggiornamento di sicurezza ha corretto. La soluzione alternativa in questo repository è l'approccio raccomandato.

✅ La Soluzione

Questo repository fornisce strumenti che applicano e gestiscono automaticamente la soluzione alternativa di AppArmor per i contenitori LXC di Proxmox:

  1. pve-script-wrapper.sh - Wrapper universale per gli script della comunità di Proxmox
  2. pve-docker-fix - Risolve i contenitori esistenti già danneggiati
  3. pve-docker-rollback - Rimuove la soluzione alternativa quando saranno disponibili correzioni a monte
  4. pct-patched - Wrapper interno (usato automaticamente da pve-script-wrapper.sh)

Come Funziona

Gli script rilevano automaticamente il sistema operativo del tuo contenitore e applicano la soluzione alternativa appropriata per AppArmor:

Per tutti i contenitori:

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

Solo per contenitori Ubuntu:

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

La prima riga disabilita il confinamento di AppArmor (necessario per tutte le distribuzioni). La seconda riga maschera il rilevamento del modulo AppArmor ed è necessaria solo per i contenitori Ubuntu – i contenitori Debian tipicamente funzionano senza (runc#4968).

Rilevamento automatico del SO: Gli script rilevano automaticamente se il tuo contenitore è Ubuntu o Debian e applicano solo le righe di configurazione necessarie.

📦 Installazione

Sull'host Proxmox VE, esegui:

root@kitploit:~
# Scarica tutti gli script
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

# Rendi eseguibili
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

Oppure clona il 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/

🚀 Utilizzo

Esecuzione di Script della Comunità con Correzione Automatica

Invece di:

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

Usa:

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

Questo funziona con qualsiasi script della comunità di Proxmox che crea contenitori 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

# E qualsiasi altro script che installa runtime di contenitori

Correzione di Contenitori Esistenti

Se hai già un contenitore danneggiato:

root@kitploit:~
# Correggi il contenitore 105
pve-docker-fix 105

# Correggi senza riavvio automatico
pve-docker-fix 105 --no-restart

Lo strumento:

  1. Verifica se la correzione è già stata applicata
  2. Arresta il contenitore (con conferma)
  3. Applica la soluzione alternativa per AppArmor
  4. Riavvia il contenitore

Correzione Manuale

Se preferisci applicare la correzione manualmente:

root@kitploit:~
# Arresta il contenitore
pct stop 105

# Modifica il file di configurazione
nano /etc/pve/lxc/105.conf

# Aggiungi questa riga alla fine (necessaria per tutti i contenitori):
lxc.apparmor.profile: unconfined

# Per contenitori Ubuntu, aggiungi anche questa riga:
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0

# Avvia il contenitore
pct start 105

Nota: I contenitori Debian tipicamente necessitano solo della prima riga. I contenitori Ubuntu necessitano di entrambe le righe. Vedi runc#4968 per dettagli tecnici.

Annullamento della Correzione

Quando saranno disponibili correzioni a monte (aggiornamenti di Proxmox/LXC/AppArmor), puoi rimuovere la soluzione alternativa:

root@kitploit:~
# Elenca tutti i contenitori con la soluzione alternativa
pve-docker-rollback --list

# Rimuovi da un contenitore specifico
pve-docker-rollback 105

# Anteprima delle modifiche senza apportarle
pve-docker-rollback 105 --dry-run

# Rimuovi da tutti i contenitori contemporaneamente
pve-docker-rollback --all

# Rimuovi senza riavvio (le modifiche si applicano al prossimo avvio)
pve-docker-rollback 105 --no-restart

# Rimuovi da tutti i contenitori senza conferma
pve-docker-rollback --all --force

Lo strumento di annullamento:

  1. Rileva se la soluzione alternativa è applicata
  2. Mostra quali righe verranno rimosse
  3. Richiede conferma (a meno di --force)
  4. Rimuove la configurazione di AppArmor
  5. Riavvia il contenitore se necessario

Quando annullare:

  • Attendi annunci che indichino la disponibilità di correzioni a monte
  • Monitora runc#4968 per aggiornamenti
  • Testa prima su contenitori non critici
  • Verifica che Docker/contenitori funzionino dopo l'annullamento prima di rimuovere dalla produzione

🔧 Come Funziona Tecnicamente

pve-script-wrapper.sh

  • Crea una directory temporanea con un collegamento simbolico a pct-patched
  • Modifica PATH per dare priorità al wrapper
  • Scarica ed esegue lo script della comunità
  • Lo script utilizza trasparentemente il comando pct modificato

pct-patched

  • Intercetta i comandi pct create
  • Chiama il vero /usr/sbin/pct per creare il contenitore
  • Rileva il tipo di SO del contenitore (Ubuntu vs Debian)
  • Immediatamente dopo la creazione, inietta la configurazione appropriata di AppArmor in /etc/pve/lxc/$CTID.conf
  • Lascia invariati tutti gli altri comandi pct

pve-docker-fix

  • Strumento autonomo per correggere contenitori esistenti
  • Rileva automaticamente il tipo di SO del contenitore
  • Verifica se la correzione è già stata applicata (idempotente)
  • Applica solo le righe di configurazione necessarie in base al SO
  • Gestisce l'arresto/avvio del contenitore con conferma dell'utente
  • Sicuro da eseguire più volte

pve-docker-rollback

  • Rimuove la soluzione alternativa per AppArmor quando non più necessaria
  • Scansiona tutti i contenitori per trovare quelli con la soluzione applicata
  • Rimuove in modo sicuro i blocchi di commento e le righe di configurazione
  • Supporta singolo contenitore, batch (--all) o modalità elenco
  • Modalità dry-run per visualizzare le modifiche prima di applicarle
  • Gestisce il riavvio del contenitore con conferma
  • Idempotente e sicuro da eseguire più volte

🛡️ Considerazioni sulla Sicurezza

Cosa Cambia Questo

  • Disabilita il confinamento di AppArmor per il contenitore LXC
  • Rimuove un livello di difesa in profondità

Cosa È Ancora Protetto

  • Il contenitore rimane non privilegiato (limite di sicurezza più importante)
  • I namespace del kernel continuano a imporre l'isolamento
  • I limiti delle risorse cgroups rimangono attivi
  • I permessi standard di Linux sono ancora attivi

Valutazione del Rischio

  • Rischio: Isolamento leggermente ridotto se il contenitore viene compromesso
  • Mitigazione: I contenitori rimangono non privilegiati, che è il controllo di sicurezza principale
  • Confronto: Molto più sicuro che effettuare il downgrade di runc e esporre vere CVE

Quando NON Usare Questo

  • Ambienti di produzione che richiedono il massimo isolamento
  • Sistemi multi-tenant con contenitori non fidati
  • Contenitori che eseguono codice non fidato

Alternative

  • Attendere correzioni a monte (Proxmox/LXC/AppArmor/kernel)
  • Utilizzare contenitori privilegiati (NON raccomandato – peggiore sicurezza)
  • Utilizzare VM invece di contenitori (più overhead)

📋 Sistemi Interessati

Confermati Interessati

  • Proxmox VE 8.x con aggiornamenti recenti
  • Contenitori LXC Debian 12 (Bookworm)
  • Contenitori LXC Ubuntu (tutte le versioni recenti)
  • Versioni di runc 1.2.7+ e 1.3.2+
  • Versione di containerd 1.7.28-2+

Note Specifiche per SO

  • Contenitori Debian: Tipicamente necessitano solo di lxc.apparmor.profile: unconfined
  • Contenitori Ubuntu: Necessitano di entrambe le righe di configurazione (profilo + mount entry)
  • Gli script rilevano automaticamente il SO e applicano la correzione appropriata

Script della Comunità Noti per Essere Interessati

  • docker.sh
  • komodo.sh
  • dockge.sh
  • casaos.sh
  • podman.sh
  • runtipi.sh
  • omv.sh (OpenMediaVault)
  • alpine-docker.sh
  • podman-homeassistant.sh
  • E oltre 390 altri script basati su contenitori

🔗 Riferimenti

  • Problema Principale: opencontainers/runc#4968
  • CVE: CVE-2025-52881
  • CVE Correlate: CVE-2025-31133, CVE-2025-52565
  • Discussione Forum Proxmox: Community Scripts Issue #8890
  • Correzione Incus: PR #2624

🐛 Risoluzione dei Problemi

Lo script non funziona

root@kitploit:~
# Verifica che gli script siano eseguibili
ls -l /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched

# Rendi eseguibili se necessario
chmod +x /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched

Docker fallisce ancora dopo aver applicato la correzione

root@kitploit:~
# Verifica che la correzione sia stata applicata
grep -i apparmor /etc/pve/lxc/105.conf

# Controlla il tipo di SO rilevato
pct config 105 | grep ostype

# Per contenitori Ubuntu, assicurati che entrambe le righe siano presenti:
# - lxc.apparmor.profile: unconfined
# - lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled...

# Se non presenti, applica manualmente
pve-docker-fix 105

# Controlla che il contenitore sia riavviato
pct status 105

Il contenitore non si avvia dopo la correzione

root@kitploit:~
# Controlla errori di sintassi nella configurazione
cat /etc/pve/lxc/105.conf

# Visualizza messaggi di errore dettagliati
journalctl -xe

🤝 Contribuire

I contributi sono benvenuti! Per favore:

  1. Testa le tue modifiche su un sistema Proxmox VE
  2. Aggiorna la documentazione se aggiungi funzionalità
  3. Segui lo stile del codice esistente
  4. Invia una PR con una descrizione chiara

📝 Licenza

GNU GENERAL PUBLIC LICENSE - Vedi il file LICENSE per i dettagli

🙏 Riconoscimenti

  • Il team di opencontainers/runc per le correzioni di sicurezza
  • I manutentori di community-scripts/ProxmoxVE
  • Tutti i contributori alle discussioni sul problema

⚡ Riferimento Rapido

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

# Esecuzione script comunità con correzione
pve-script-wrapper.sh <script-url>

# Correggi contenitore esistente
pve-docker-fix <container-id>

# Elenca contenitori con soluzione alternativa
pve-docker-rollback --list

# Rimuovi soluzione alternativa (quando correzioni a monte disponibili)
pve-docker-rollback <container-id>
pve-docker-rollback --all

# Ottieni aiuto
pve-script-wrapper.sh --help
pve-docker-fix --help
pve-docker-rollback --help

Nota: Questa è una soluzione alternativa temporanea fino a quando i progetti a monte non rilasceranno correzioni permanenti. Monitora i problemi GitHub referenziati per aggiornamenti.

Scarica lo strumento