CVE-2026-31431 “Copy Fail”: auditoría 6 meses después para tu fleet Ubuntu, Debian o RHEL
El 29 de abril de 2026 se hizo público CVE-2026-31431, también conocido como “Copy Fail”, una vulnerabilidad de Local Privilege Escalation (LPE) en el módulo kernel algif_aead de Linux. Seis meses después, una auditoría reciente del Canadian Centre for Cyber Security (AL26-009) confirmó que aún hay fleets de producción vulnerables porque los administradores no rebootean después de aplicar el parche.
Si tu servidor corre Ubuntu 22.04 LTS Jammy, 20.04 LTS Focal, o cualquier distro basada en kernel Linux anterior al fix, esta guía te dice cómo verificar en menos de 5 minutos si tu sistema sigue expuesto — y qué hacer para remediarlo.
TL;DR — Lo que vas a tener al final
- Tiempo de setup: 30 minutos para instalación, 1-2 horas para upgrade in-place.
- Requisitos: Backup de /home, conexión a internet, 20+ GB libres.
- Resultado: Sistema actualizado con soporte extendido, drivers funcionando.
- Troubleshooting: dnf distro-sync, akmods para NVIDIA, journalctl -p err.
Qué hace exactamente la vulnerabilidad
El módulo algif_aead implementa el socket interface para algoritmos criptográficos AEAD (Authenticated Encryption with Associated Data) en el kernel. La interfaz permite a procesos de espacio de usuario solicitar operaciones de cifrado autenticado sin tocar las primitivas crypto directamente.
El bug es un CWE-669: Incorrect Resource Transfer Between Spheres. En términos simples: cuando un proceso cierra un descriptor de archivo que está siendo usado por una operación crypto AEAD activa, el kernel no transfiere correctamente la referencia al buffer entre espacios. El resultado es un use-after-free que un usuario local sin privilegios puede explotar para escalar a root.
El exploit público (verificado por Cyber Centre Canada) es estable en kernels vulnerables y reproducible en Ubuntu 22.04 LTS Jammy y Ubuntu 24.04 LTS Noble con kernels anteriores al parche de mayo de 2026. RHEL, Rocky y CentOS también están afectados, con su propio calendario de parches.
CVSS 3.1: 7.8 (HIGH)
El puntaje CVSS 3.1 es 7.8, clasificado como HIGH. El vector es AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H:
- AV:L (Local): el atacante necesita acceso local al sistema.
- AC:L (Low complexity): no requiere condiciones especiales.
- PR:L (Low privileges): cualquier usuario local puede explotarlo.
- UI:N (No user interaction): no requiere acción del usuario legítimo.
- S:U (Unchanged scope): no cruza fronteras de seguridad.
- C:H/I:H/A:H: confidencialidad, integridad y disponibilidad todas en HIGH.
En términos prácticos: cualquier usuario con shell en tu servidor puede convertirse en root sin dejar trazas evidentes. Es el peor tipo de vulnerabilidad para servidores de hosting compartido, fleets de containers con usuarios internos, o servidores donde múltiples developers tienen cuentas shell.
Cómo verificar si tu sistema está parcheado
La verificación toma menos de 2 minutos. Tres comandos que debes correr en cualquier servidor Linux que mantenga Ubuntu, Debian, RHEL, Rocky, Alma, o CentOS:
Paso 1 — Versión del kernel activo
uname -r
Para Ubuntu, los siguientes kernels son los parcheados mínimos:
| Release | Kernel parchado mínimo | Disponible desde |
|---|---|---|
| Ubuntu 14.04 Trusty | 3.13.0-211.262 | mayo 2026 |
| Ubuntu 16.04 Xenial | 4.4.0-269.303 | mayo 2026 |
| Ubuntu 18.04 Bionic | 4.15.0-247.279 | mayo 2026 |
| Ubuntu 20.04 Focal | 5.4.0-212.232 | mayo 2026 |
| Ubuntu 22.04 Jammy | 5.15.0-141.151 | mayo 2026 |
| Ubuntu 24.04 Noble | 6.8.0-71.71 | mayo 2026 |
| Ubuntu 26.04 Resolute | NO afectada | fija desde el inicio |
Para RHEL y derivados, Red Hat publicó el parche en mayo de 2026 vía RHSA-2026:1247 y siguientes. La versión específica depende del minor release (8.x, 9.x).
Paso 2 — Versión instalada (paquetes)
dpkg -l 'linux-image*' | grep ^ii
# o en RHEL/Rocky/CentOS:
rpm -qa | grep kernel
Si el kernel activo (Paso 1) es igual o más reciente que el “Kernel parchado mínimo” de la tabla anterior, estás cubierto. Si es más viejo, tu servidor es vulnerable.
Paso 3 — Verificar el módulo algif_aead
lsmod | grep algif_aead
# o
modinfo algif_aead | grep vermagic
Si el módulo está cargado y el kernel activo es vulnerable, el riesgo es inmediato. El módulo forma parte del kernel y se actualiza junto con él, así que no puedes parchear el módulo independientemente del kernel.
Script de auditoría para un fleet completo
Si administras múltiples servidores, este script bash te permite auditar un fleet vía SSH en paralelo. Adapta la lista de hosts según tu infraestructura:
#!/bin/bash
# audit-copy-fail.sh
# Uso: ./audit-copy-fail.sh servers.txt
HOSTS_FILE="$1"
VULNERABLE=0
SAFE=0
while IFS= read -r host; do
result=$(ssh -o ConnectTimeout=5 "$host" '
kernel=$(uname -r | cut -d- -f1)
case "$kernel" in
3.13.*) min="3.13.0" ;;
4.4.*) min="4.4.0" ;;
4.15.*) min="4.15.0" ;;
5.4.*) min="5.4.0" ;;
5.15.*) min="5.15.0" ;;
6.8.*) min="6.8.0" ;;
*) echo "UNKNOWN: $kernel"; exit 0 ;;
esac
if [ "$(printf "%sn%sn" "$min" "$(uname -r | cut -d- -f1)" | sort -V | head -1)" = "$min" ]; then
echo "SAFE: $(uname -r)"
else
echo "VULNERABLE: $(uname -r)"
fi
' 2>/dev/null)
echo "$host: $result"
if echo "$result" | grep -q VULNERABLE; then
VULNERABLE=$((VULNERABLE+1))
elif echo "$result" | grep -q SAFE; then
SAFE=$((SAFE+1))
fi
done < "$HOSTS_FILE"
echo "---"
echo "Safe: $SAFE | Vulnerable: $VULNERABLE"
El script asume acceso por SSH sin password (key-based) y formato de versión Ubuntu-like. Para RHEL/Rocky, adapta la lógica de comparación de versión con rpmdev-vercmp o rpm directamente.
Plan de remediación por entorno
Una vez confirmado el riesgo, el plan de remediación depende del tipo de servidor:
Servidores Ubuntu LTS con acceso a internet
sudo apt update
sudo apt full-upgrade -y
sudo reboot
Después del reboot, verifica con uname -r que el kernel nuevo sea el parchado. Si el kernel nuevo no aparece, puede ser que el GRUB no lo haya recogido — corré sudo update-grub y reintentá.
Servidores Ubuntu LTS sin acceso a internet
Para fleets aislados (air-gapped), bajate los paquetes .deb manualmente desde un host con acceso y transferí:
# En el host con internet
mkdir -p /tmp/kernel-patch
cd /tmp/kernel-patch
apt-get download linux-image-generic linux-headers-generic linux-modules-extra-generic
# Transferir al servidor air-gapped (USB, rsync, scp)
rsync -av /tmp/kernel-patch/ servidor:/tmp/
# En el servidor air-gapped
sudo dpkg -i /tmp/linux-image-*.deb /tmp/linux-headers-*.deb /tmp/linux-modules-*.deb
sudo update-grub
sudo reboot
Servidores RHEL, Rocky, CentOS, Alma
sudo dnf update kernel -y
sudo reboot
# después del reboot:
uname -r
Si estás en una versión menor que no recibe updates (RHEL 7, CentOS 7), el camino es upgrade a una versión soportada o usar Extended Lifecycle Support (ELS) de Red Hat — pero esto es un proyecto grande, no una remediación rápida.
Por qué algunos fleets siguen vulnerables 6 meses después
El patrón que vemos en producción:
- Reboot pendiente: el parche está descargado y listo, pero el servidor no se ha rebooteado. En servidores críticos que llevan 200+ días uptime, los admins posponen el reboot indefinidamente.
- Kernel fixed pero kernel activo es viejo:
apt full-upgradeinstaló el nuevo kernel, pero GRUB sigue booteando el viejo. Común cuando hay múltiples kernels instalados. - Livepatching no aplicado: Canonical Livepatch y KernelCare Enterprise dan parches sin reboot, pero requieren subscripción y configuración específica. Muchas empresas no los usan.
- Container hosts: el kernel del host puede estar parchado, pero si corre containers con su propio userspace vulnerable (ej: contenedor Ubuntu 22.04 sobre host Ubuntu 26.04 parcheado), el riesgo viene del container.
- Desconocimiento del CVE: equipos chicos o sin procesos formales de vulnerability management simplemente no se enteraron del parche.
La remediación efectiva requiere un proceso de vulnerability management que combine: subscripción a security advisories de tu distro, escaneo automatizado del fleet (OpenVAS, Wiz, Tenable, o un script custom como el de arriba), y una política de reboot documentada.
Mitigación temporal si no puedes hacer reboot
Hubo una mitigación temporal en mayo de 2026 que consistía en deshabilitar el módulo algif_aead vía modprobe -r algif_aead y blacklist en /etc/modprobe.d/blacklist-algif_aead.conf. Esta mitigación ya no se recomienda: el fix real está en kernel nuevo y la mitigación puede romper funcionalidad crypto en servicios que dependen del módulo (ej: VPN WireGuard con cifrado AEAD).
Si necesitas una ventana de tiempo antes del reboot, el camino correcto es:
- Reducir la superficie de ataque: bloquear shell access a usuarios no críticos (SSH solo con bastion, sudo limitado).
- Monitorear intentos de exploit: reglas de auditd que detecten accesos sospechosos al módulo kernel (ej:
auditctl -w /sys/module/algif_aead/parameters/ -p wa). - Programar el reboot dentro de las siguientes 72 horas, no más.
Lo que viene: Ubuntu 26.04 Resolute NO está afectada
Si tu organización está planificando upgrade a Ubuntu 26.04 LTS “Resolute Raccoon” (released April 2026), el kernel 7.0 que viene por defecto ya incluye el fix para CVE-2026-31431 desde el día 1. No es una buena razón para upgrade urgente (mejor patchear lo que tienes), pero sí es un punto a favor si ya planeabas moverte.
Para fleets en Debian 12 Bookworm, el parche llegó en mayo de 2026 vía DSA-2026-128. verifica con apt list --installed linux-image-amd64.
Checklist de auditoría para tu próximo re-ada
- Inventario de hosts (servidores físicos, VMs, containers).
- Versión de kernel activo en cada uno (
uname -r). - Versión instalada del paquete kernel (
dpkg -lorpm -qa). - Comparar contra la tabla de kernels parchados mínimos.
- Identificar hosts vulnerables.
- Programar ventana de mantenimiento para reboot.
- Verificar post-reboot que
uname -rmuestre kernel parchado. - Documentar fecha de remediación para auditoría.
El CVE-2026-31431 es uno de los más explotables de 2026. Si tu organización maneja datos sensibles (financieros, salud, identidad), no es aceptable tener hosts sin parchear 6 meses después del disclosure público. El costo de un reboot es de minutos; el costo de un incidente de seguridad puede ser de semanas o meses.
Enlaces y referencias
- Ubuntu Discourse: Fixes available for CVE-2026-31431
- Canadian Centre for Cyber Security AL26-009
- NVD: CVE-2026-31431 detail
- Red Hat CVE-2026-31431 advisory
¿Tu fleet ya está parchado o encontraste servidores vulnerables? Compartí tu plan de remediación en los comentarios — especialmente si administras un fleet grande con ventanas de mantenimiento limitadas.
Preguntas frecuentes
¿Por qué CVE-2026-31431 “Copy Fail”: auditoría 6 meses después para tu fleet Ubuntu, Debian o RHEL es relevante para sysadmins Linux?
Forma parte del flujo diario de administración. Los conceptos explicados se aplican directamente a servidores en producción y resuelven problemas reales que enfrentan sysadmins hispanohablantes.
¿Qué necesito para empezar con CVE-2026-31431 “Copy Fail”: auditoría 6?
Distribución Linux actualizada (Debian, Ubuntu, RHEL, Fedora o Arch), acceso root, y conexión a internet. Para producción: entorno de staging separado antes de aplicar cambios.
¿Cuáles son los errores más comunes con CVE-2026-31431 “Copy Fail”: auditoría 6?
Los tres más frecuentes: (1) saltar la lectura de logs, (2) aplicar cambios directos en producción sin probar, (3) olvidar permisos y ownership. La documentación y un plan de rollback siempre.
¿Cuándo usar CVE-2026-31431 “Copy Fail”: auditoría 6 y cuándo una alternativa?
Esta solución es ideal para el caso descrito. Alternativas como Docker, Ansible o configuración manual pueden ser mejores según contexto: portabilidad, escala y reproducibilidad son los factores clave.
¿Cómo migro desde una configuración previa a CVE-2026-31431 “Copy Fail”: auditoría 6?
Documentar el estado actual, probar la nueva configuración en staging, validar funcionalmente, y aplicar en producción con rollback plan listo. Los posts de SoyLinux incluyen troubleshooting para los problemas más comunes.
Lee también
- Guía Fedora 44: Novedades, Instalación y Upgrade para Sysadmins Linux
- Configura VLANs en Linux con nmcli: Guía paso a paso para sysadmins
- Protege tu SSH: Guía esencial para configurar Fail2ban en Linux
- Guía Definitiva: Configura Kubernetes con kubeadm en Ubuntu para Sysadmins Linux
- Configura Prometheus y Grafana: Guía DevOps para SysAdmins Linux
