CVE-2021-3493

Linux Kernel

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2022-10-20

Официальное описание

The overlayfs stacking file system in Linux kernel does not properly validate the application of file capabilities against user namespaces, which could lead to privilege escalation.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2021-3493 — это критическая уязвимость в реализации файловой системы OverlayFS в ядре Linux. Проблема заключается в некорректной проверке прав доступа (capabilities) при копировании файлов между слоями OverlayFS в контексте пользовательских пространств имен (user namespaces).

Злоумышленник с низкими привилегиями может создать пространство имен пользователя, смонтировать OverlayFS и установить произвольные Capability (например, CAP_SETUID) на исполняемый файл. Из-за ошибки в ядре эти атрибуты некорректно переносятся на нижележащую файловую систему хоста, что позволяет локальному пользователю получить права суперпользователя (root).

Как исправить

Основным способом устранения уязвимости является обновление ядра Linux до версии, в которой исправлена логика проверки xattr в OverlayFS.

  1. Обновите индексы пакетов:
sudo apt update

  1. Установите последние доступные обновления безопасности для ядра:
sudo apt upgrade

  1. Перезагрузите систему для применения изменений:
sudo reboot

  1. После перезагрузки проверьте версию ядра, чтобы убедиться, что исправление применено (версии должны быть выше, чем те, что были выпущены до апреля 2021 года):
uname -a

Для популярных дистрибутивов исправления включены в следующие версии (и выше): - Ubuntu 20.04 LTS: ядро 5.4.0-72.80 - Ubuntu 18.04 LTS: ядро 4.15.0-143.147 - Ubuntu 16.04 LTS: ядро 4.4.0-210.242 - Ubuntu 20.10: ядро 5.8.0-50.56

Временные меры

Если немедленное обновление ядра и перезагрузка невозможны, необходимо ограничить доступ к функционалу, который позволяет эксплуатировать уязвимость. Основной вектор атаки требует возможности создания пользовательских пространств имен (unprivileged user namespaces).

  1. Отключите возможность создания пользовательских пространств имен (актуально для Debian/Ubuntu):
sudo sysctl -w kernel.unprivileged_userns_clone=0

  1. Чтобы настройка сохранилась после перезагрузки, выполните:
echo "kernel.unprivileged_userns_clone=0" | sudo tee /etc/sysctl.d/99-disable-userns.conf

Примечание: Данная мера может нарушить работу некоторых приложений, использующих контейнеризацию или песочницы (например, Docker, некоторые браузеры или Electron-приложения).