Облачная платформаAdvanced

Уведомление об уязвимостях Dirty Frag CVE-2026-43284, CVE-2026-43500 и Fragnesia CVE-2026-46300


В сетевых подсистемах ядра Linux были обнаружены уязвимости локального повышения привилегий CVE-2026-43284 и CVE-2026-43500, известные под общим названием «Dirty Frag», а также уязвимость «Fragnesia» CVE-2026-46300. Из-за логического дефекта в двух независимых модулях xfrm-ESP и RxRPC злоумышленники могут изменять содержимое кеша страниц любого читаемого файла в системе, что позволит им повысить права до root.

Уязвимость CVE-2026-43500 в модуле RxRPC платформу Advanced не затрагивает.

Уязвимости CVE-2026-43284 и CVE-2026-46300 в модуле xfrm-ESP на платформе Advanced затрагивают следующие операционные системы с версией ядра 4.11 и выше:

  • Ubuntu

  • Debian

  • HCE OS

  • CentOS

  • AlmaLinux

  • Rocky Linux

Выпуск патча для образа HCE OS с устранением уязвимостей CVE-2026-43284 и CVE-2026-46300 ожидается до 08.06.2026.

Как проверить уязвимость своей системы

Чтобы проверить подверженность вашей системы уязвимостям CVE-2026-43284 и CVE-2026-46300 в модуле xfrm-ESP:

  1. Проверьте, затронута ли версия ядра.

    Для этого запустите команду, которая покажет текущую версию системы:

    uname -r
    • Если версия ядра меньше 4.11, уязвимости не затрагивают систему.

    • Если версия ядра больше или равна 4.11 — система уязвима, переходите к шагу 2.

    • Если версия ядра 4.x, но ниже 4.11, с датой компиляции ядра в январе 2017 года или позднее — проверьте, содержит ли дистрибутив коммит cac2661c53f3, в котором появились уязвимости. Если да, то система уязвима — переходите к шагу 2.

  2. Проверьте, содержит ли система модуль xfrm-ESP.

    Для этого посмотрите конфигурацию компиляции вашей системы:

    zcat /proc/config.gz | grep CONFIG_XFRM_ESP or
    cat /boot/config-$(uname -r) | grep CONFIG_XFRM_ESP or
    zcat /proc/config.gz | grep CONFIG_INET_ESP or
    cat /boot/config-$(uname -r) | grep CONFIG_INET_ESP
    • Если все результаты пустые, либо отображается # CONFIG_XFRM_ESP is not set или # CONFIG_INET_ESP is not set, система не поддерживает этот модуль. Уязвимости не затрагивают систему, проверку можно завершить.

    • Если в каком-либо из результатов указано =y или =m — система уязвима, переходите к следующему шагу проверки.

  3. Убедитесь, нужно ли митигировать уязвимости.

    Проверьте, загружены ли в системе модули, связанные с ESP:

    lsmod | grep esp
    • Если вывод команды не пустой и содержит esp, переходите к шагу 4 для дальнейшей проверки.

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

      Если в вашей конфигурации указано CONFIG_XFRM_ESP = m или CONFIG_INET_ESP = m, проверьте, отключены ли на хосте модули esp4 / esp6. Для этого проверьте, содержит ли конфигурация в каталоге /etc/modprobe.d/ следующие строки:

      install esp4 /bin/false
      install esp6 /bin/false
      • Если да, система неуязвима, проверку можно завершить.

      • Если нет, проверьте, поддерживает ли текущая операционная система параметр CONFIG_USER_NS:

        zcat /proc/config.gz | grep CONFIG_USER_NS or
        cat /boot/config-$(uname -r) | grep CONFIG_USER_NS
        • Если в результате выводится y, переходите к шагу 4.

        • Если вывод пустой или указано not set, переходите к шагу 5.

  4. (Для сценариев с поддержкой CONFIG_USER_NS) Проверьте, возможно ли использовать unshare.

    Если CONFIG_XFRM_ESP или CONFIG_INET_ESP имеют значение m или y, проверьте, отключена ли возможность использования unshare. Для этого выполните команду создания пользовательского и сетевого пространства имен от имени обычного пользователя:

    unshare -Un -r /bin/bash

    Если каталог /bin/bash отсутствует, выполните:

    unshare -Un -r /bin/sh
    • Если после выполнения команды появляется ошибка вида unshare failed или Operation Not Permitted, система неуязвима и проверку можно завершить.

    • Если ошибка не возникает и появляется оболочка с правами root, система уязвима.

    • Если в системе отсутствует unshare или нет интерпретаторов sh, bash (ошибка not found), необходимо самостоятельно скомпилировать тестовый файл unshare-poc.c для проверки:

      1. Создайте файл unshare-poc.c и скопируйте в него код:

        #define _GNU_SOURCE
        #include <sched.h>
        #include <stdio.h>
        #include <errno.h>
        #include <string.h>
        #include <unistd.h>
        int main()
        {
        int ret;
        printf("[*] testing unshare(CLONE_NEWUSER)\n");
        ret = unshare(CLONE_NEWUSER);
        if (ret == 0) {
        printf("[+] CLONE_NEWUSER allowed\n");
        } else {
        printf("[-] failed: %s (%d)\n",
        strerror(errno),
        errno);
        }
        return 0;
        }
      2. Выполните статическую компиляцию тестового файла:

        gcc unshare-poc.c -static -o unshare-poc
      3. Запустите файл на целевой системе.

        • Если вывод содержит строку CLONE_NEWUSER allowed — система уязвима.

        • Если вывод содержит failed — система неуязвима.

      Проверка завершена.

  5. (Для сценариев без поддержки CONFIG_USER_NS) Проверьте, имеет ли обычный пользователь права CAP_NET_ADMIN.

    Если CONFIG имеет значение m или y, проверьте, есть ли у обычного пользователя права CAP_NET_ADMIN. Для этого войдите в систему под обычным пользователем и выполните команду:

    grep '^CapEff:' /proc/$$/status
    • Если результат содержит только нули, система неуязвима и проверку можно завершить.

    • Если в результате не все нули, например 000001ffffffffff, скопируйте ваше значение и выполните следующую команду для верификации прав:

      capsh --decode=000001ffffffffff # Замените на ваше значение

      Пример вывода:

      0x000001ffffffffff=cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_linux_immutable,cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_ipc_owner,cap_sys_module,cap_sys_rawio,cap_sys_chroot,cap_sys_ptrace,cap_sys_pacct,cap_sys_admin,cap_sys_boot,cap_sys_nice,cap_sys_resource,cap_sys_time,cap_sys_tty_config,cap_mknod,cap_lease,cap_audit_write,cap_audit_control,cap_setfcap,cap_mac_override,cap_mac_admin,cap_syslog,cap_wake_alarm,cap_block_suspend,cap_audit_read,cap_perfmon,cap_bpf,cap_checkpoint_restore
      • Если в списке есть CAP_NET_ADMIN — система уязвима.

      • Если нет — система неуязвима.

      Проверка завершена.

Как митигировать уязвимости CVE-2026-43284 и CVE-2026-46300

Чтобы митигировать уязвимости в дистрибутивах AlmaLinux и Rocky Linux, обновите операционную систему до последней версии. Для остальных дистрибутивов следуйте шагам митигации ниже.

Внимание

Способ митигации нарушит функциональность IPsec. Оцените влияние на вашу среду, чтобы избежать сбоев.

  1. Для случая CONFIG_XFRM_ESP = m или CONFIG_INET_ESP = m проверьте зависимость текущего хоста от модуля ESP:

    lsmod | grep esp
    • Если вывод пустой, отключите ESP:

      echo "install esp4 /bin/false" >> /etc/modprobe.d/disable-esp.conf
      echo "install esp6 /bin/false" >> /etc/modprobe.d/disable-esp.conf

      Чтобы проверить, что ESP отключен, выполните команду:

      modprobe esp4
      • Если появится сообщение «ERROR», меры митигации применились успешно.

    • Если вывод команды lsmod не пустой и cодержит esp4 или esp6, примените метод, описанный ниже, для отключения возможности создания новых пространств имен, если это не повлияет на вашу среду негативно.

  2. Для случая CONFIG_XFRM_ESP=y или CONFIG_INET_ESP=y отключите создание новых пространств имен:

    echo 0 > /proc/sys/user/max_user_namespaces

    Предотвратить использование unshare непривилегированными пользователями можно другими методами.