
Módulo de kernel que usa ftrace para bloquear solicitações AF_ALG/AEAD, mitigando a CVE-2026-31431 sem exigir LSM BPF. Fornece registro de logs e compilação fácil para Oracle Linux UEK.
As soluções eBPF disponíveis para mitigar o cve-2026-31431 exigem lsm=bpf no momento da inicialização,
o que geralmente não está definido por padrão. Para OracleLinux, isso foi habilitado por padrão no
UEKr7u3 e no UEKr8u1 após dezembro de 2025.
Para verificar se você pode usar ebpf-lsm para mitigar o copyfail, verifique
/sys/kernel/security/lsm para bpf.
Como algumas das nossas máquinas estão executando um kernel um pouco mais antigo (devido a $reasons),
procurei outras maneiras de mitigar esse problema de segurança, seja bloqueando AF_ALG/AEAD
ou AF_ALG de uma vez.
Pensei em um módulo de kernel que intercepta __sock_create e bloqueia AF_ALG ou
intercepta aead_bind e bloqueia todas as solicitações.
A ideia era fazer isso com ftrace.
Para compilar os módulos, tente o seguinte:
git clone this_repository
cd this_repository
make
Para Oracle Linux com UEK, certifique-se de instalar e usar os pacotes corretos antes de executar make:
. /etc/os-release
releasever=${VERSION/.*}
uek=7 # ou 8, o que você usar
dnf -y --enablerepo=ol${releasever}_UEKR${uek} install kernel-uek-devel make gcc kernel-headers
# você pode precisar de um dos seguintes:
# para oel9/uekr8
. /opt/rh/gcc-toolset-14/enable
# para oel8/uekr7
. /opt/rh/gcc-toolset-11/enable
Em seguida, carregue o módulo:
# bloqueia AF_ALG de uma vez
insmod /path/to/af_alg_block.ko
# ou apenas bloqueia AF_ALG/AEAD
insmod /path/to/af_alg_aead_block.ko
Agora, todas as solicitações para AF_ALG ou todas as ligações AEAD (dependendo de qual módulo você carregou) devem ser bloqueadas, e todas as tentativas devem ser registradas.
Não sou desenvolvedor de kernel. Estudei a documentação do ftrace e construí este módulo por tentativa e erro
até que todas as solicitações AF_ALG fossem bloqueadas, sem afetar outras famílias de endereços.
Testei isso em algumas máquinas e, para mim, parece estável. Não garanto que funcione para você, outros vetores de ataque podem contornar este módulo, ou o módulo pode não tornar sua máquina instável.
No entanto, é uma correção rápida para preencher o tempo até que as máquinas possam finalmente ser reiniciadas.