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