Перейти к содержимому

Обнаружена уязвимость в ядре Linux, остававшаяся незамеченной 7 лет

Исследователи в области кибербезопасности недавно раскрыли уязвимость CVE-2024-36904, которая оставалась невыявленной в ядре Linux на протяжении семи лет. Эта уязвимость относится к категории use-after-free и может позволить злоумышленникам выполнять произвольный код во внутренних процессах системы. Недавно в открытый доступ был опубликован PoC (Proof-of-Concept) эксплойт, демонстрирующий возможность эксплуатации данной уязвимости.

Данный баг обнаружен в подсистеме TCP ядра Linux, а именно в функции inet_twsk_hashdance(), и вызван состоянием гонки (race condition).

Механизм уязвимости

Уязвимость возникает в следующей ситуации:

  • Когда TCP-сокет в состоянии time-wait добавляется в хеш-таблицу, его счетчик ссылок (reference counter) инициализируется с задержкой.
  • Если в этот момент другой процесс попытается обратиться к этому сокету до завершения инициализации, он может использовать объект с неинициализированным счетчиком ссылок.
  • Это может привести к use-after-free эксплуатации, в результате чего злоумышленник получает возможность выполнения произвольного кода в контексте ядра.

Уязвимость получила оценку 7.0 (HIGH) по CVSS 3.1, что указывает на высокий уровень опасности.

Затронутые системы

Подверженные операционные системы и продукты:

Red Hat Enterprise Linux 8/9
AlmaLinux 9
Rocky Linux 8
SUSE Linux Enterprise
Amazon Linux 2/2023
Системы NetApp AFF/FAS
Dell PowerProtect Cyber Recovery

Потенциальные последствия

Выполнение произвольного кода в контексте ядра
Полный контроль над системой
Кража конфиденциальных данных через кибератаки

Условия эксплуатации

Для успешной эксплуатации данной уязвимости злоумышленнику требуется локальный доступ к системе и низкий уровень привилегий. Однако использование различных техник эксплуатации может позволить злоумышленнику повысить привилегии и получить полный контроль над устройством.

PoC-эксплойт

Исследователи отмечают, что в стандартных условиях уязвимость воспроизводится в течение нескольких часов.

  • При тестировании с syzkaller воспроизвести баг удалось за 48 часов при запуске 6 параллельных экземпляров.
  • Включение KASAN (Kernel Address Sanitizer) и отключение флага RCU для TCP-кэша позволило вызвать срабатывание KASAN (крах ядра) за менее чем 30 минут.
  • Все тесты проводились на AlmaLinux 9 (Kernel 5.14.0-362.24.2.el9_3.x86_64) в среде VMware Workstation.

Как защититься?

1. Обновите ядро Linux

Уязвимость была устранена в мае 2024 года, но многие дистрибутивы Linux могли не включить исправления в свои обновления.

Для пользователей Red Hat Enterprise Linux 9 исправление доступно в версии 5.14-427.26.1 (16 июля 2024 года).

Рекомендуется немедленно установить обновления для Amazon Linux, SUSE, AlmaLinux и других дистрибутивов.

2. Дополнительные меры безопасности

✔ Включите SELinux или AppArmor для дополнительной защиты.
✔ Используйте аудит логов и мониторинг сетевой активности.
✔ Регулярно проверяйте систему на наличие новых обновлений безопасности.

3. Предотвращение эксплуатации use-after-free

🔹 Активируйте защитные механизмы ядра (KASLR, SMEP, KPTI).
🔹 Используйте инструменты автоматического анализа уязвимостей ядра.
🔹 Включите Exploit Mitigation Tools для предотвращения атак.

Заключение

CVE-2024-36904 — это критическая уязвимость в ядре Linux, которая может позволить злоумышленникам выполнять произвольный код и полностью захватить контроль над системой.

💡 Рекомендации:
🔹 Немедленно обновите ядро Linux!
🔹 Активируйте SELinux или AppArmor для повышения уровня защиты.
🔹 Регулярно следите за обновлениями системы безопасности.

Так как уязвимость затрагивает множество Linux-дистрибутивов, крайне важно своевременно обновлять систему и применять защитные меры. Специалистам по кибербезопасности также рекомендуется детально изучить методику эксплуатации данной уязвимости и разработать эффективные контрмеры.