
Módulo de kernel que utiliza ftrace para bloquear solicitudes AF_ALG/AEAD, mitigando CVE-2026-31431 sin requerir LSM BPF. Proporciona registro de eventos y compilación sencilla para Oracle Linux UEK.
Las soluciones eBPF para mitigar cve-2026-31431 requieren lsm=bpf en el arranque,
que normalmente no está configurado por defecto. Para OracleLinux esto estaba habilitado por defecto en
UEKr7u3 y en UEKr8u1 después de diciembre de 2025.
Para comprobar si puedes usar ebpf-lsm para mitigar copyfail, revisa
/sys/kernel/security/lsm para ver si contiene bpf.
Dado que un par de nuestras máquinas ejecutan un kernel ligeramente más antiguo (por $reasons)
busqué otras formas de mitigar este problema de seguridad, ya sea bloqueando AF_ALG/AEAD
o AF_ALG de una vez.
Pensé en un módulo del kernel que interceptara __sock_create y bloqueara AF_ALG o
que interceptara aead_bind y bloqueara todas las solicitudes.
La idea era hacerlo con ftrace.
Para compilar los módulos, prueba lo siguiente:
git clone this_repository
cd this_repository
make
Para Oracle Linux con UEK asegúrate de instalar y usar los paquetes correctos antes de ejecutar make:
. /etc/os-release
releasever=${VERSION/.*}
uek=7 # o 8, lo que uses
dnf -y --enablerepo=ol${releasever}_UEKR${uek} install kernel-uek-devel make gcc kernel-headers
# es posible que necesites uno de los siguientes:
# para oel9/uekr8
. /opt/rh/gcc-toolset-14/enable
# para oel8/uekr7
. /opt/rh/gcc-toolset-11/enable
Luego carga el módulo:
# bloquea AF_ALG de una vez
insmod /path/to/af_alg_block.ko
# o solo bloquea AF_ALG/AEAD
insmod /path/to/af_alg_aead_block.ko
Ahora todas las solicitudes de AF_ALG o todos los enlaces AEAD (dependiendo del módulo que cargaste) deberían estar bloqueados, y todos los intentos deberían quedar registrados.
No soy desarrollador de kernel. Estudié la documentación de ftrace y construí este módulo por prueba y error
hasta que todas las solicitudes de AF_ALG quedaron bloqueadas, sin afectar a otras familias de direcciones.
Lo probé en algunas máquinas y para mí parece estable. No garantizo que funcione para ti, otros vectores de ataque podrían evadir este módulo, o el módulo podría no hacer que tu máquina se vuelva inestable.
Sin embargo, es una solución rápida para cubrir el tiempo hasta que las máquinas puedan reiniciarse por fin.