Todos os produtos
Search
Central de documentação

Alibaba Cloud Linux:Desabilitando a família de protocolos AF_ALG no Alibaba Cloud Linux

Última atualização: Jun 29, 2026

A CVE-2026-31431 é uma vulnerabilidade grave de escalonamento local de privilégios no kernel do Linux. Este documento descreve como aplicar uma mitigação temporária ao desabilitar a criação de sockets AF_ALG por meio de um RPM de livepatch, sem reinicializar o sistema. Aplique esta mitigação apenas se seus serviços não dependerem de sockets AF_ALG.

Aviso
  1. Após a implantação desta solução, qualquer processo dependente de sockets AF_ALG falhará ao criá-los, o que pode indisponibilizar seus serviços. Não implante esta solução sem ter certeza absoluta de que seus serviços não utilizam sockets AF_ALG.

  2. Esta solução introduz riscos de estabilidade. Adote uma abordagem gradual na implantação e evite aplicá-la em todo o ambiente de produção simultaneamente.

  3. Durante a implantação gradual, monitore atentamente a estabilidade dos serviços, os logs de erros e as métricas de desempenho. Reverta a alteração imediatamente caso detecte anomalias.

Contexto

A CVE-2026-31431 é uma vulnerabilidade grave de escalonamento local de privilégios no módulo algif_aead do kernel do Linux.

Ao combinar uma sequência específica de chamadas de socket AF_ALG com a chamada de sistema splice(), um invasor consegue burlar verificações padrão de permissão e executar uma gravação não autorizada de 4 bytes no cache de páginas de um arquivo arbitrário. Invasores exploram essa falha para adulterar a imagem na memória de programas setuid, como o /usr/bin/su, e escalar privilégios de usuário comum para root sem alterar o conteúdo do arquivo em disco.

Para mais detalhes, consulte [[Aviso de Segurança] Risco de vulnerabilidade de escalonamento local de privilégios no kernel do Linux (CVE-2026-31431)](https://www.aliyun.com/notice/118231).

Limitações

Essa mitigação desabilita, no nível do kernel, todas as operações de criptografia e descriptografia que utilizam sockets AF_ALG. Serviços dependentes dessas operações deixarão de funcionar. Verifique se seus serviços dependem de sockets AF_ALG antes de aplicar esta mitigação. Se houver dúvidas sobre a dependência dos seus serviços em relação ao recurso de socket AF_ALG, não prossiga.

Para verificar se seus serviços utilizam sockets AF_ALG em operações criptográficas no nível do kernel, use o auditd ou eBPF (extended Berkeley Packet Filter) para monitorar a criação desses sockets. O exemplo abaixo usa o auditd:

# First, ensure the auditd service is enabled.
systemctl start auditd

# If other audit rules are already configured on the system, back them up and assess the impact first.
# Add an audit rule for AF_ALG sockets.
auditctl -a always,exit -F arch=b64 -S socket -F a0=38 -k afalg_socket

# After a period of time, check the audit results.
ausearch -k afalg_socket -ts recent -i

# Expected result: If any process created an AF_ALG socket during this period, audit records are displayed.

# When you are finished, delete the audit rule for AF_ALG sockets.
auditctl -d always,exit -F arch=b64 -S socket -F a0=38 -k afalg_socket
Nota

Essas verificações servem apenas como referência e não garantem a exclusão total de dependências do AF_ALG. Revise também o código-fonte da sua aplicação, a lista de dependências e o comportamento em tempo de execução.

Aplicar a mitigação

Importante

Antes de prosseguir, confirme que seus serviços não dependem da funcionalidade de socket AF_ALG e que você aceita as limitações nos recursos relacionados ao AF_ALG.

Etapa 1: Verificar pré-requisitos

Antes da implantação, verifique se o sistema atende às duas condições abaixo:

  1. O kernel tem suporte a livepatch habilitado.

  2. O pacote kernel-devel correspondente à versão atual do kernel está instalado.

# 1. Check whether the kernel-devel package for the running kernel is installed.
test -d "/lib/modules/$(uname -r)/build" && echo "kernel-devel OK" || echo "Please install kernel-devel-$(uname -r)"

# If the package is missing, install it:
sudo yum install -y kernel-devel-$(uname -r)

# 2. Check whether livepatch support is enabled in the kernel.
test -d /sys/kernel/livepatch && echo "livepatch sysfs OK"

Etapa 2: Instalar o pacote RPM

# 1. Download the RPM package for your operating system version. (The download links are protected by an allowlist. To get an authorized link, join DingTalk group 179525012975.)

# 2. Install the RPM package. For example, on Alibaba Cloud Linux 3:
sudo yum install disable-af-alg-livepatch-1.0.0-1.al8.noarch.rpm
Ao atualizar o kernel, reinstale o pacote RPM correspondente para manter a mitigação ativa.

Etapa 3: Verificar a mitigação

Método 1: Verificar o status do livepatch

Este método aplica-se ao Alibaba Cloud Linux 3 e ao Alibaba Cloud Linux 4:

# Check the livepatch status.
kpatch list

# Expected output: "disable_af_alg [enabled]" appears in the "Loaded patch modules:" list.

Método 2: Validar o bloqueio de sockets AF_ALG

Execute o script Python a seguir para confirmar o bloqueio na criação de sockets AF_ALG:

python3 - <<'PY'
import socket, errno
try:
    s = socket.socket(38, socket.SOCK_SEQPACKET, 0)  # 38 = AF_ALG
    print("AF_ALG socket create: SUCCESS (Mitigation is not effective)")
    s.close()
except OSError as e:
    if e.errno == errno.EAFNOSUPPORT:
        print(f"AF_ALG socket create: FAILED (Mitigation is effective)")
    else:
        print(f"AF_ALG socket create: FAILED (Unexpected error),errno={e.errno}, msg={e.strerror}")
PY

Reverter a alteração

Caso enfrente problemas nos serviços após a implantação, desinstale a mitigação:

sudo yum remove disable-af-alg-livepatch

Após a desinstalação, execute o script de verificação para confirmar a remoção da interceptação de sockets AF_ALG.