Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/jq6l43d1/proxmox-lxc-docker-fix
Seguridad de Infraestructura en la NubeSeguridad de ContenedoresAnálisis de VulnerabilidadesScripting y AutomatizaciónDevSecOpsMala Configuración
GitHubjq6l43d1/proxmox-lxc-docker-fix

proxmox-lxc-docker-fix

Solución para CVE-2025-52881: Corrige la rotura de Docker/Podman en contenedores LXC de Proxmox causada por incompatibilidad de AppArmor con runc 1.2.7+. Envoltorio universal para community-scripts con configuración automática de AppArmor.

Ver Repositorio
1523hace 10 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Solución para AppArmor en LXC de Proxmox para Docker/Contenedores

Solución para CVE-2025-52881: Corrige la rotura de Docker, Podman y otros entornos de ejecución de contenedores en contenedores LXC de Proxmox causada por incompatibilidad de AppArmor con runc 1.2.7+/1.3.2+

🚨 El Problema

Actualizaciones de seguridad recientes a runc (versiones 1.2.7+ y 1.3.2+) y containerd (1.7.28-2+) introdujeron una incompatibilidad que rompe AppArmor cuando se ejecuta dentro de contenedores LXC de Proxmox. Esto provoca que Docker y otros entornos de ejecución de contenedores fallen con errores como:

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

Esto afecta a:

  • ✗ Scripts de la comunidad de Proxmox (docker.sh, komodo.sh, dockge.sh, casaos.sh, etc.)
  • ✗ Instalaciones manuales de Docker/Podman en LXC
  • ✗ Cualquier entorno de ejecución de contenedores que use runc dentro de contenedores LXC

Referencia: opencontainers/runc#4968

⚠️ NO Degradar runc

Aunque degradar runc por debajo de 1.2.7/1.3.2 "solucionaría" el problema, expone su sistema a vulnerabilidades reales de escalada de privilegios que parcheó la actualización de seguridad. La solución en este repositorio es el enfoque recomendado.

✅ La Solución

Este repositorio proporciona herramientas que aplican y gestionan automáticamente la solución para AppArmor en contenedores LXC de Proxmox:

  1. pve-script-wrapper.sh - Envoltorio universal para scripts de la comunidad de Proxmox
  2. pve-docker-fix - Corrige contenedores existentes que ya están rotos
  3. pve-docker-rollback - Elimina la solución cuando están disponibles correcciones oficiales
  4. pct-patched - Envoltorio interno (usado automáticamente por pve-script-wrapper.sh)

Cómo Funciona

Los scripts detectan automáticamente el SO de su contenedor y aplican la solución AppArmor adecuada:

Para todos los contenedores:

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

Solo para contenedores Ubuntu:

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

La primera línea deshabilita el confinamiento de AppArmor (requerido para todas las distribuciones). La segunda línea enmascara la detección del módulo AppArmor y solo es necesaria para contenedores Ubuntu; los contenedores Debian normalmente funcionan sin ella (runc#4968).

Detección Automática del SO: Los scripts detectan automáticamente si su contenedor es Ubuntu o Debian y aplican solo las líneas de configuración necesarias.

📦 Instalación

En su host Proxmox VE, ejecute:

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

# Hacerlos ejecutables
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

O clone el repositorio:

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/

🚀 Uso

Ejecutar Scripts de la Comunidad con Corrección Automática

En lugar de:

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

Use:

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

Esto funciona con cualquier script de la comunidad de Proxmox que cree contenedores 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

# Y cualquier otro script que instale entornos de ejecución de contenedores

Corregir Contenedores Existentes

Si ya tiene un contenedor roto:

root@kitploit:~
# Corregir contenedor 105
pve-docker-fix 105

# Corregir sin reinicio automático
pve-docker-fix 105 --no-restart

La herramienta:

  1. Comprobará si la corrección ya está aplicada
  2. Detendrá el contenedor (con confirmación)
  3. Aplicará la solución AppArmor
  4. Reiniciará el contenedor

Corrección Manual

Si prefiere aplicar la corrección manualmente:

root@kitploit:~
# Detener el contenedor
pct stop 105

# Editar el archivo de configuración
nano /etc/pve/lxc/105.conf

# Agregar esta línea al final (requerida para todos los contenedores):
lxc.apparmor.profile: unconfined

# Para contenedores Ubuntu, agregar también esta línea:
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0

# Iniciar el contenedor
pct start 105

Nota: Los contenedores Debian normalmente solo necesitan la primera línea. Los contenedores Ubuntu necesitan ambas líneas. Consulte runc#4968 para detalles técnicos.

Revertir la Corrección

Cuando estén disponibles correcciones oficiales (actualizaciones de Proxmox/LXC/AppArmor), puede eliminar la solución:

root@kitploit:~
# Listar todos los contenedores con la solución
pve-docker-rollback --list

# Eliminar de un contenedor específico
pve-docker-rollback 105

# Vista previa de cambios sin modificar
pve-docker-rollback 105 --dry-run

# Eliminar de todos los contenedores a la vez
pve-docker-rollback --all

# Eliminar sin reinicio (los cambios se aplican en el próximo inicio)
pve-docker-rollback 105 --no-restart

# Eliminar de todos los contenedores sin confirmación
pve-docker-rollback --all --force

La herramienta de reversión:

  1. Detectar si la solución está aplicada
  2. Mostrar qué líneas se eliminarán
  3. Solicitar confirmación (a menos que se use --force)
  4. Eliminar la configuración de AppArmor
  5. Reiniciar el contenedor si es necesario

Cuándo revertir:

  • Espere anuncios de que las correcciones oficiales están disponibles
  • Monitoree runc#4968 para actualizaciones
  • Pruebe primero en contenedores no críticos
  • Verifique que Docker/contenedores funcionen después de la reversión antes de eliminar en producción

🔧 Cómo Funciona Técnicamente

pve-script-wrapper.sh

  • Crea un directorio temporal con un enlace simbólico a pct-patched
  • Modifica PATH para priorizar el envoltorio
  • Descarga y ejecuta el script de la comunidad
  • El script usa de forma transparente el comando pct parcheado

pct-patched

  • Intercepta comandos pct create
  • Llama al verdadero /usr/sbin/pct para crear el contenedor
  • Detecta el tipo de SO del contenedor (Ubuntu vs Debian)
  • Inmediatamente después de la creación, inyecta la configuración AppArmor adecuada en /etc/pve/lxc/$CTID.conf
  • Pasa sin cambios todos los demás comandos pct

pve-docker-fix

  • Herramienta independiente para corregir contenedores existentes
  • Detecta automáticamente el tipo de SO del contenedor
  • Comprueba si la corrección ya está aplicada (idempotente)
  • Aplica solo las líneas de configuración necesarias según el SO
  • Maneja la parada/inicio del contenedor con confirmación del usuario
  • Seguro para ejecutar varias veces

pve-docker-rollback

  • Elimina la solución AppArmor cuando ya no es necesaria
  • Escanea todos los contenedores para encontrar aquellos con la solución aplicada
  • Elimina de forma segura bloques de comentarios y líneas de configuración
  • Soporta modo de contenedor único, lote (--all) o listado
  • Modo de prueba (dry-run) para previsualizar cambios antes de aplicar
  • Maneja el reinicio del contenedor con confirmación
  • Idempotente y seguro para ejecutar varias veces

🛡️ Consideraciones de Seguridad

Qué Cambia Esto

  • Deshabilita el confinamiento de AppArmor para el contenedor LXC
  • Elimina una capa de defensa en profundidad

Qué Sigue Protegido

  • El contenedor sigue siendo no privilegiado (el límite de seguridad más importante)
  • Los namespaces del kernel aún aplican aislamiento
  • Los límites de recursos de cgroups siguen vigentes
  • Los permisos estándar de Linux siguen activos

Evaluación de Riesgos

  • Riesgo: Aislamiento ligeramente reducido si el contenedor se ve comprometido
  • Mitigación: Los contenedores siguen siendo no privilegiados, que es el control de seguridad principal
  • Comparación: Mucho más seguro que degradar runc y exponer CVEs reales

Cuándo NO Usar Esto

  • Entornos de producción que requieren máximo aislamiento
  • Sistemas multiinquilino con contenedores no confiables
  • Contenedores que ejecutan código no confiable

Alternativas

  • Esperar correcciones oficiales (Proxmox/LXC/AppArmor/kernel)
  • Usar contenedores privilegiados (NO recomendado - peor seguridad)
  • Usar máquinas virtuales en lugar de contenedores (más sobrecarga)

📋 Sistemas Afectados

Confirmados Afectados

  • Proxmox VE 8.x con actualizaciones recientes
  • Contenedores LXC de Debian 12 (Bookworm)
  • Contenedores LXC de Ubuntu (todas las versiones recientes)
  • runc versiones 1.2.7+ y 1.3.2+
  • containerd versión 1.7.28-2+

Notas Específicas del SO

  • Contenedores Debian: Normalmente solo necesitan lxc.apparmor.profile: unconfined
  • Contenedores Ubuntu: Necesitan ambas líneas de configuración (perfil + entrada de montaje)
  • Los scripts detectan automáticamente el SO y aplican la corrección adecuada

Scripts de la Comunidad Conocidos por Estar Afectados

  • docker.sh
  • komodo.sh
  • dockge.sh
  • casaos.sh
  • podman.sh
  • runtipi.sh
  • omv.sh (OpenMediaVault)
  • alpine-docker.sh
  • podman-homeassistant.sh
  • Y más de 390 otros scripts basados en contenedores

🔗 Referencias

  • Problema Principal: opencontainers/runc#4968
  • CVE: CVE-2025-52881
  • CVEs Relacionados: CVE-2025-31133, CVE-2025-52565
  • Discusión en el Foro de Proxmox: Community Scripts Issue #8890
  • Corrección de Incus: PR #2624

🐛 Solución de Problemas

El script no funciona

root@kitploit:~
# Verificar que los scripts sean ejecutables
ls -l /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched

# Hacerlos ejecutables si es necesario
chmod +x /usr/local/bin/pve-script-wrapper.sh /usr/local/bin/pct-patched

Docker sigue fallando después de aplicar la corrección

root@kitploit:~
# Verificar que la corrección se aplicó
grep -i apparmor /etc/pve/lxc/105.conf

# Comprobar el tipo de SO detectado
pct config 105 | grep ostype

# Para contenedores Ubuntu, asegurarse de que ambas líneas estén presentes:
# - lxc.apparmor.profile: unconfined
# - lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled...

# Si no están presentes, aplicar manualmente
pve-docker-fix 105

# Verificar que el contenedor se reinició
pct status 105

El contenedor no inicia después de la corrección

root@kitploit:~
# Verificar errores de sintaxis en la configuración
cat /etc/pve/lxc/105.conf

# Ver mensajes de error detallados
journalctl -xe

🤝 Contribuciones

¡Contribuciones bienvenidas! Por favor:

  1. Pruebe sus cambios en un sistema Proxmox VE
  2. Actualice la documentación si agrega funcionalidades
  3. Siga el estilo de código existente
  4. Envíe un PR con una descripción clara

📝 Licencia

LICENCIA PÚBLICA GENERAL DE GNU - Consulte el archivo LICENSE para más detalles

🙏 Agradecimientos

  • Equipo de opencontainers/runc por las correcciones de seguridad
  • Mantenedores de community-scripts/ProxmoxVE
  • Todos los contribuyentes a las discusiones del problema

⚡ Referencia Rápida

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

# Ejecutar script de la comunidad con corrección
pve-script-wrapper.sh <script-url>

# Corregir contenedor existente
pve-docker-fix <container-id>

# Listar contenedores con la solución
pve-docker-rollback --list

# Eliminar la solución (cuando las correcciones oficiales estén disponibles)
pve-docker-rollback <container-id>
pve-docker-rollback --all

# Obtener ayuda
pve-script-wrapper.sh --help
pve-docker-fix --help
pve-docker-rollback --help

Nota: Esta es una solución temporal hasta que los proyectos oficiales publiquen correcciones permanentes. Monitoree los problemas de GitHub referenciados para actualizaciones.

Descargar herramienta