
Модуль ядра, использующий ftrace для блокировки запросов AF_ALG/AEAD, устраняющий CVE-2026-31431 без необходимости в LSM BPF. Обеспечивает ведение журнала и простую компиляцию для Oracle Linux UEK.
Существующие решения на основе eBPF для смягчения cve-2026-31431 требуют lsm=bpf при загрузке,
который обычно не установлен по умолчанию. Для OracleLinux это было включено по умолчанию в
UEKr7u3 и в UEKr8u1 после декабря 2025 года.
Чтобы проверить, можете ли вы использовать ebpf-lsm для смягчения copyfail, проверьте
/sys/kernel/security/lsm на наличие bpf.
Поскольку несколько наших машин работают на немного более старом ядре (по $reasons)
я искал другие способы смягчить эту проблему безопасности, либо блокируя AF_ALG/AEAD
или AF_ALG целиком.
Я подумал о модуле ядра, перехватывающем __sock_create и блокирующем AF_ALG или
перехватывающем aead_bind и блокирующем все запросы.
Идея заключалась в том, чтобы сделать это с помощью ftrace.
Чтобы скомпилировать модули, попробуйте следующее:
git clone this_repository
cd this_repository
make
Для Oracle Linux с UEK убедитесь, что установлены и используются правильные пакеты перед запуском make:
. /etc/os-release
releasever=${VERSION/.*}
uek=7 # or 8, whatever you use
dnf -y --enablerepo=ol${releasever}_UEKR${uek} install kernel-uek-devel make gcc kernel-headers
# you might need one of the following:
# for oel9/uekr8
. /opt/rh/gcc-toolset-14/enable
# for oel8/uekr7
. /opt/rh/gcc-toolset-11/enable
Затем загрузите модуль:
# block AF_ALG at once
insmod /path/to/af_alg_block.ko
# or only block AF_ALG/AEAD
insmod /path/to/af_alg_aead_block.ko
Теперь все запросы к AF_ALG или все AEAD-привязки (в зависимости от того, какой модуль вы загрузили) должны быть заблокированы, все попытки должны быть записаны в журнал.
Я не разработчик ядра. Я изучил документацию по ftrace и собрал этот модуль методом проб и ошибок,
пока все запросы AF_ALG не были заблокированы, не затрагивая другие семейства адресов.
Я протестировал это на нескольких машинах, и для меня это выглядит стабильно. Я не гарантирую, что это сработает у вас, другие векторы атак могут обойти этот модуль, или модуль может сделать вашу машину нестабильной.
Тем не менее, это быстрое решение, чтобы заполнить время, пока машины наконец не будут перезагружены.