
Playbook de Ansible que automatiza la remediación de CVE-2026-31431 (Copy Fail) en instancias Linux de OCI mediante la instalación de paquetes de kernel actualizados, reinicio y verificación de la solución en múltiples distribuciones.
Este playbook corrige CVE-2026-31431, también conocido como Copy Fail, en instancias Linux en OCI.
CVE-2026-31431 es un problema de escalada de privilegios local en la implementación algif_aead del kernel de Linux utilizada por la API de criptografía en espacio de usuario AF_ALG. Este playbook aplica la ruta de corrección principal: instalar un paquete de kernel actualizado del proveedor y reiniciar la instancia para que ejecute el kernel corregido.
Referencias:
El primer play se ejecuta localmente en OCI Cloud Shell u otra máquina con la CLI de OCI configurada. Resuelve los OCID de instancias OCI codificados en hosts Ansible accesibles leyendo cada instancia, encontrando su VNIC principal y seleccionando la dirección IP privada o pública según prefer_public_ip.
El segundo play parchea los hosts Linux resueltos en paralelo, sujeto al límite de forks configurado en Ansible:
uname -r.dnf o yum para kernel* y kernel-uek*.apt-get --only-upgrade para paquetes de kernel Linux instalados.zypper patch --category security.Después del reinicio, el playbook utiliza las herramientas de paquetes y repositorios de la distribución destino para validar la corrección:
rpm, verifica actualizaciones pendientes con dnf check-update o yum check-update, verifica metadatos de aviso CVE con updateinfo y busca en el changelog del paquete de kernel instalado.dpkg-query, verifica actualizaciones pendientes con una simulación de apt-get y busca en el changelog del paquete de kernel instalado.rpm, verifica actualizaciones pendientes con zypper list-updates, verifica metadatos de parche CVE con zypper list-patches --cve y busca en el changelog del paquete de kernel instalado.Las comprobaciones estrictas de aprobado/fallo son que el host esté ejecutando un kernel gestionado por paquetes después del reinicio y que no queden actualizaciones de paquetes de kernel pendientes de los repositorios configurados. La salida de aviso y changelog específicos de CVE se recopila cuando la distribución publica esos metadatos.
Al final de la ejecución, un play de resumen en localhost reporta:
La salida predeterminada es un resumen compacto por host. Para imprimir también los datos completos sin procesar de la verificación, agregue:
-e show_detailed_cve_evidence=true
ansible-playbook -i localhost, patch_cve_2026_31431.yml \
-e oci_region=us-ashburn-1 \
-e ansible_user=opc \
-e ansible_ssh_private_key_file=/path/to/private_key \
-e prefer_public_ip=false
Use prefer_public_ip=true cuando Cloud Shell o su host de control Ansible deban alcanzar las instancias a través de direcciones IP públicas. Use prefer_public_ip=false cuando el host de control tenga alcance de red privada.
El playbook deshabilita la comprobación estricta de claves de host SSH para los destinos descubiertos dinámicamente para que pueda ejecutarse de forma no interactiva contra IPs de instancias recién resueltas.
Una ejecución exitosa debería terminar con CVE-2026-31431 verification passed for all targets. El resumen total imprime una línea por campo, agrupada bajo Host: ..., incluyendo el kernel anterior, el kernel instalado después del reinicio, el paquete de kernel en ejecución como kernel-uek-core-..., y CVE check: PASS. Si la verificación falla porque aún hay actualizaciones de kernel disponibles, confirme que el host puede alcanzar los repositorios de seguridad correctos del proveedor y vuelva a ejecutar el playbook.