
Playbook Ansible que automatiza a remediação do CVE-2026-31431 (Falha de Cópia) em instâncias Linux OCI instalando pacotes de kernel atualizados, reinicializando e verificando a correção em várias distribuições.
Este playbook corrige o CVE-2026-31431, também conhecido como Copy Fail, em instâncias Linux na OCI.
O CVE-2026-31431 é um problema de escalada de privilégios local na implementação algif_aead do kernel Linux usada pela API de criptografia em espaço de usuário AF_ALG. Este playbook aplica o caminho principal de correção: instalar um pacote de kernel atualizado do fornecedor e reinicializar a instância para que execute o kernel corrigido.
Referências:
O primeiro play é executado localmente no OCI Cloud Shell ou em outra máquina com a CLI OCI configurada. Ele resolve os OCIDs de instância OCI fixados em hosts Ansible alcançáveis, lendo cada instância, encontrando sua VNIC primária e selecionando o endereço IP privado ou público com base em prefer_public_ip.
O segundo play corrige os hosts Linux resolvidos em paralelo, sujeito ao limite de forks configurado no Ansible:
uname -r.dnf ou yum para kernel* e kernel-uek*.apt-get --only-upgrade para pacotes de kernel Linux instalados.zypper patch --category security.Após a reinicialização, o playbook utiliza as ferramentas de pacote e repositório da distribuição alvo para validar a correção:
rpm, verifica atualizações de kernel pendentes com dnf check-update ou yum check-update, verifica metadados de aviso do CVE com updateinfo e pesquisa o changelog do pacote de kernel instalado.dpkg-query, verifica atualizações de kernel pendentes com uma simulação de apt-get e pesquisa o changelog do pacote de kernel instalado.rpm, verifica atualizações de kernel pendentes com zypper list-updates, verifica metadados de patch do CVE com zypper list-patches --cve e pesquisa o changelog do pacote de kernel instalado.As verificações rígidas de aprovação/reprovação são: o host está executando um kernel gerenciado por pacote após a reinicialização e não restam atualizações de pacote de kernel pendentes dos repositórios configurados. A saída de aviso específico do CVE e do changelog é coletada quando a distribuição publica esses metadados.
Ao final da execução, um play de resumo no localhost reporta:
A saída padrão é um resumo compacto por host. Para também exibir os dados completos da verificação detalhada, adicione:
-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=/caminho/para/chave_privada \
-e prefer_public_ip=false
Use prefer_public_ip=true quando o Cloud Shell ou seu host de controle Ansible precisar alcançar as instâncias através de endereços IP públicos. Use prefer_public_ip=false quando o host de controle tiver alcance de rede privada.
O playbook desativa a verificação estrita de chave de host SSH para os alvos descobertos dinamicamente, para que possa ser executado de forma não interativa contra IPs de instância recém-resolvidos.
Uma execução bem-sucedida deve terminar com CVE-2026-31431 verification passed for all targets. O resumo total exibe uma linha por campo, agrupado sob Host: ..., incluindo o kernel anterior, o kernel instalado após a reinicialização, o pacote de kernel em execução, como kernel-uek-core-..., e CVE check: PASS. Se a verificação falhar porque atualizações de kernel ainda estão disponíveis, confirme que o host pode alcançar os repositórios de segurança corretos do fornecedor e execute novamente o playbook.