В ядре Linux выявлена уязвимость (CVE-2019-8912), которая позволяет непривилегированному пользователю выполнить свой код на уровне ядра. По мнению некоторых поставщиков потенциально возможно нахождение векторов для эксплуатации уязвимости по сети, но данные сведения пока не подтверждены. В том числе Национальный институт стандартов и технологий США (NIST) отметил проблему как удалённо эксплуатируемую и легко воспроизводимую.
Уязвимость вызвана ошибкой в реализации функции af_alg_release(), представленной в файле crypto/af_alg.c. Игнорирование установки значения NULL в некоторых полях структуры sockfs_setattr (sock->sk не выставлялся в NULL) может привести к обращению к уже освобождённым областям памяти (use-after-free) и созданию условий для выполнения кода непривилегированного локального пользователя в контексте ядра. Прототип эксплоита пока не подготовлен (потенциально атака может быть совершена через манипуляции с Crypto API с использованием сокета с типом AF_ALG).
Проблема была найдена в результате использования разработанного компанией Google анализатора KASAN (KernelAddressSanitizer), нацеленного на выявление ошибок при работе с памятью и фактов некорректного обращения к памяти, таких как обращения к освобождённым областям памяти и помещение кода в области памяти, не предназначенные для подобных манипуляций. KASAN был добавлен в состав ядра 4.0 и включается опцией "CONFIG_KASAN=y".
Уязвимость проявляется начиная с ветки ядра 2.6 и будет устранена в следующих обновлениях ядра 4.20.12, 4.19.25, 4.14.103, 4.9.160, 4.4.176 и 3.18.136 (в 4.20.11 и выпущенных в тот же день обновлениях проблема оказалась не исправлена). Из дистрибутивов обновление пока выпущено только для Fedora. В Debian и Ubuntu уязвимость остаётся неисправленной. В ядрах из состава SUSE 11/12 и Red Hat Enterprise Linux 5/6/7 проблема не проявляется (не может быть эксплуатирована).