CVE-2018-14634

Linux Kernal

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

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

2026-01-26

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

Linux Kernel contains an integer overflow vulnerability in the create_elf_tables() function which could allow an unprivileged local user with access to SUID (or otherwise privileged) binary to escalate their privileges on the system.

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

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

Уязвимость CVE-2018-14634 (также известная как Mutagen Astronomy) представляет собой целочисленное переполнение (integer overflow) в функции create_elf_tables() ядра Linux.

  • При запуске ELF-файла ядро выделяет память для аргументов командной строки и переменных окружения.
  • Если локальный злоумышленник передаст SUID-бинарнику огромный объем данных (более 2 ГБ аргументов или переменных окружения), происходит переполнение счетчика.
  • Это приводит к тому, что ядро выделяет недостаточно памяти, что позволяет злоумышленнику перезаписать стек процесса.
  • В результате атакующий может выполнить произвольный код с правами владельца SUID-файла (как правило, root), что приводит к локальному повышению привилегий (LPE).
  • Уязвимости подвержены в основном ядра RHEL 6, 7 и CentOS, так как в основной ветке (mainline) ядра эта проблема была частично нивелирована предыдущими патчами, которые не были перенесены в RHEL в полном объеме.

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

Единственным надежным способом устранения уязвимости является обновление ядра Linux до версии, содержащей исправление, с последующей перезагрузкой системы.

Для систем на базе RHEL/CentOS (наиболее подверженных данной уязвимости):

yum clean all

yum update kernel

Для систем на базе RHEL 8/CentOS 8/Fedora:

dnf update kernel

Для систем на базе Debian/Ubuntu (если используется уязвимое кастомное ядро):

apt update

apt upgrade linux-image-generic

После установки обновления необходимо перезагрузить сервер для применения нового ядра:

reboot

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

Если немедленное обновление и перезагрузка невозможны, можно применить следующие компенсирующие меры:

  • Монтирование пользовательских разделов с флагом nosuid. Это предотвратит повышение привилегий при запуске SUID-бинарников из директорий, к которым имеют доступ непривилегированные пользователи (например, /tmp, /home, /var/tmp).
mount -o remount,nosuid /tmp

mount -o remount,nosuid /home

  • Снятие SUID-битов с некритичных системных утилит. Если в системе есть SUID-файлы, которые не требуются для работы обычных пользователей, у них можно отобрать этот флаг. Поиск всех SUID-файлов:
find / -type f -perm -4000 2>/dev/null

Снятие SUID-бита с конкретного файла (замените путь на нужный):

chmod u-s /path/to/binary

  • Использование SystemTap (Официальный workaround от Red Hat). Если в системе установлен SystemTap и отладочные символы ядра (kernel-debuginfo), можно на лету перехватывать попытки эксплуатации, ограничивая размер аргументов. Создайте файл cve-2018-14634.stp со следующим содержимым:
probe kernel.function("create_elf_tables") {
    if ($bprm->argc > 10000 || $bprm->envc > 10000) {
        printf("CVE-2018-14634 mitigation triggered by PID %d\n", pid());
        $bprm->argc = 0;
        $bprm->envc = 0;
    }
}

Запуск скрипта в фоновом режиме:

stap -g -F cve-2018-14634.stp