CVE-2021-22555
Linux Kernel
2025-10-06
Linux Kernel contains a heap out-of-bounds write vulnerability that could allow an attacker to gain privileges or cause a DoS (via heap memory corruption) through user name space.
Технический анализ и план устранения
Суть уязвимости
Уязвимость CVE-2021-22555 кроется в подсистеме Netfilter ядра Linux. Проблема связана с ошибкой записи за пределы выделенной памяти (heap out-of-bounds write) в функции xt_compat_target_from_user().
Для успешной эксплуатации злоумышленнику требуются права CAP_NET_ADMIN. Однако в современных дистрибутивах Linux локальный непривилегированный пользователь может получить эти права, создав собственное пространство имен (User Namespace).
Успешная эксплуатация позволяет:
* Выполнить локальное повышение привилегий (Local Privilege Escalation, LPE) до уровня root.
* Вызвать повреждение памяти кучи, что приведет к отказу в обслуживании (Kernel Panic / DoS).
Как исправить
Единственным надежным способом устранения уязвимости является обновление ядра Linux до версии, содержащей патч (5.12 или бэкпорты в стабильных ветках, таких как 5.11.14, 5.10.31, 5.4.113 и новее).
Для систем на базе Debian/Ubuntu:
Обновите списки пакетов и установите актуальную версию ядра:
apt update && apt upgrade linux-image-generic -y
Перезагрузите сервер для применения нового ядра:
reboot
Для систем на базе RHEL/CentOS/AlmaLinux:
Обновите пакет ядра:
yum update kernel -y
Перезагрузите сервер:
reboot
После перезагрузки проверьте текущую версию ядра, чтобы убедиться в успешном обновлении:
uname -r
Временные меры
Если немедленное обновление и перезагрузка невозможны, необходимо заблокировать вектор атаки, отключив поддержку непривилегированных пространств имен (Unprivileged User Namespaces). Это не позволит локальным пользователям получить CAP_NET_ADMIN.
Примените настройки в оперативной памяти (без перезагрузки):
Для систем Debian/Ubuntu:
sysctl -w kernel.unprivileged_userns_clone=0
Для систем RHEL/CentOS и других дистрибутивов:
sysctl -w user.max_user_namespaces=0
Чтобы настройки сохранились после перезагрузки сервера, создайте конфигурационный файл:
Для Debian/Ubuntu:
echo "kernel.unprivileged_userns_clone=0" > /etc/sysctl.d/99-cve-2021-22555.conf
Для RHEL/CentOS:
echo "user.max_user_namespaces=0" > /etc/sysctl.d/99-cve-2021-22555.conf
Примените сохраненные настройки:
sysctl -p /etc/sysctl.d/99-cve-2021-22555.conf