Skip to content

PandaInRed/redos-kernel-cve-patches

Repository files navigation

Скрипты для обеспечения безопасности в РЕД ОС

Автономные bash-скрипты, предназначенные для проведения аудита и оперативного применения компенсирующих мер для защиты от критических уязвимостей в операционных системах РЕД ОС.

Поддерживаемые платформы

  • РЕД ОС 7.3.x (x86_64)
  • РЕД ОС 8.0.x (x86_64 и aarch64)

Содержание


Уязвимость Copy Fail (redos_copyfail_patch.sh)

Краткое описание

Критическая уязвимость Copy Fail относится к LPE-типу (Local Privilege Escalation) и может быть использована в системах на базе Linux (уязвимость в сокетах AF_ALG – с августа 2017 года). Позволяет непривилегированному локальному пользователю получить доступ к системе уровня root.

Уязвимость Copy Fail исправлена в ядрах 6.1.170 и 6.12.85.

Безопасные версии ядра Linux

  • РЕД ОС 7.3: 6.1.170-1.el7.3.* и выше
  • РЕД ОС 8.0: 6.12.85-1.red80.* и выше

Компенсирующие меры защиты

Скрипт блокирует вызовы уязвимого модуля посредством добавления параметра initcall_blacklist=algif_aead_init в конфигурацию загрузчика GRUB.

Интеграция с Secret Net LSP

Скрипт автоматически детектирует использование СЗИ Secret Net LSP, проверяет онлайн совместимость СЗИ с безопасной версией ядра и предлагает актуальный вариант (обновление ядра или применение компенсирующих мер).


Уязвимости Dirty Frag и Fragnesia (redos_dirtyfrag_patch.sh)

Краткое описание

Критические уязвимости Dirty Frag и Fragnesia относятся к LPE-типу (Local Privilege Escalation) и могут быть использованы в системах на базе Linux (уязвимость в модуле xfrm-ESP – с января 2017 года, уязвимость в драйвере RxRPC - с июня 2023 года). Позволяют непривилегированному локальному пользователю получить доступ к системе уровня root.

Уязвимость Dirty Frag исправлена в ядрах 6.1.171 и 6.12.87.

Уязвимость Fragnesia исправлена в ядрах 6.1.174 и 6.12.91.

Безопасные версии ядра Linux

  • РЕД ОС 7.3: 6.1.172-1.el7.3.* и выше
  • РЕД ОС 8.0: 6.12.87-2.red80.* и выше

Компенсирующие меры защиты

Скрипт опрашивает администратора об использовании на целевой машине IPsec (VPN), и, в соответствии с ответом, производит многоуровневое блокирование.

  • Если IPsec не используется – блокируются (через modprobe.d) и выгружаются модули esp4, esp6 и rxrpc, а также отключается (через параметры конфигурации загрузчика GRUB) подсистема IPv6.
  • Если IPsec используется – модули шифрования ESP остаются активными, но накладывается ограничение на использование непривилегированных пользовательских пространств имен (user.max_user_namespaces = 0), блокируется модуль rxrpc и отключается подсистема IPv6.

Интеграция с Secret Net LSP

Скрипт автоматически детектирует использование СЗИ Secret Net LSP, проверяет онлайн совместимость СЗИ с безопасной версией ядра и предлагает актуальный вариант (обновление ядра или применение компенсирующих мер).


Уязвимость DirtyDecrypt (DirtyCBC)

Краткое описание

Критическая уязвимость DirtyDecrypt относится к LPE-типу (Local Privilege Escalation) и может быть использована в системах на базе Linux (уязвимость в драйвере RxRPC, реализующем семейство сокетов AF_RXRPC). Позволяет непривилегированному локальному пользователю получить доступ к системе уровня root.

Проблема проявляется начиная с ядра Linux версии 6.16. Используется ошибка, описанная в CVE-2026-31635.

Уязвимость DirtyDecrypt исправлена в ядрах 6.18.23 и 7.0.0.

Компенсирующие меры защиты

Операционные системы РЕД ОС 7.3 и РЕД ОС 8.0 используют longterm maintenance выпуски ядра Linux – 6.1.x и 6.12.x, соответственно. В указанных версиях проблема не проявляется. Проведение мер по устранению уязвимости не требуется.


Уязвимость PinTheft (redos_pintheft_patch.sh)

Краткое описание

Критическая уязвимость PinTheft относится к LPE-типу (Local Privilege Escalation) и может быть использована в системах на базе Linux (уязвимость в реализации сетевого протокола RDS (Reliable Datagram Sockets)). Позволяет непривилегированному локальному пользователю получить доступ к системе уровня root.

Атака возможна на системы с включенной подсистемой io_uring (io_uring_disabled=0) и ядром, собранным с опциями CONFIG_RDS, CONFIG_RDS_TCP и CONFIG_IO_URING. Также для работы эксплоита в системе должен быть доступный на чтение исполняемый файл с флагом SUID-root.

Уязвимость PinTheft исправлена в ядрах 6.1.175 и 6.12.91.

Безопасные версии ядра Linux

  • РЕД ОС 7.3: 6.1.175-1.el7.3.* и выше
  • РЕД ОС 8.0: 6.12.92-1.red80.* и выше

Компенсирующие меры защиты

Существующий в открытом доступе эксплоит не работает на РЕД ОС 7.3 из-за ограничений логики самого инструмента атаки. Код эксплоита написан под примитивы ядра Linux версии 6.13+ (использован механизм клонирования зарегистрированных буферов подсистемы io_uring через флаг IORING_REGISTER_CLONE_BUFFERS внутри системного вызова io_uring_register).

В то же время, при внесении незначительных правок в код эксплоита он успешно выполняется на РЕД ОС 8.0 (на ядре 6.12) с получением наивысших привилегий в системе (root).

Важно: это указывает не на безопасность ядра 6.1, а лишь на несовместимость текущего публичного метода эксплуатации со старой кодовой базой. Сама уязвимость в сетевом протоколе Reliable Datagram Sockets теоретически может быть активирована другими методами.

Таким образом, до появления в репозитории вендора обновления ядра Linux с устранением уязвимости для обеих систем рекомендуется применение компенсирующих мер.

Для нейтрализации векторов эксплуатации уязвимости скрипт блокирует (через modprobe.d) и выгружает уязвимые модули rds и rds_tcp.

Интеграция с Secret Net LSP

Скрипт автоматически детектирует использование СЗИ Secret Net LSP, проверяет онлайн совместимость СЗИ с безопасной версией ядра и предлагает актуальный вариант (обновление ядра или применение компенсирующих мер).


Уязвимость GRO Frag (redos_grofrag_patch.sh)

Краткое описание

Критическая уязвимость GRO Frag относится к LPE-типу (Local Privilege Escalation) и может быть использована в системах на базе Linux (уязвимость в реализации технологии GRO (Generic Receive Offload)). Позволяет непривилегированному локальному пользователю получить доступ к системе уровня root.

Атака возможна на системы с включенной подсистемой io_uring (io_uring_disabled=0). Также для работы эксплоита в системе должен быть доступный на чтение исполняемый файл с флагом SUID-root.

Уязвимость GRO Frag исправлена в ядрах 6.1.176 и 6.12.92.

Безопасные версии ядра Linux

  • РЕД ОС 7.3: 6.1.175-1.el7.3.* и выше
  • РЕД ОС 8.0: 6.12.92-1.red80.* и выше

Для РЕД ОС 7.3 вендором в ядре 6.1.175-1 реализован бэкпорт патча, устраняющего возможность эксплуатации уязвимости.

Компенсирующие меры защиты

Существующий в открытом доступе эксплоит не работает на РЕД ОС 7.3 из-за ограничений логики самого инструмента атаки. Код эксплоита написан под примитивы ядра Linux версии 6.4+ (использован механизм предоставления пользовательских буферов ядра через флаг IORING_REGISTER_PBUF_RING внутри системного вызова io_uring_register).

Важно: это указывает не на безопасность ядра 6.1, а лишь на несовместимость текущего публичного метода эксплуатации со старой кодовой базой. Сама уязвимость в сетевом стеке Generic Receive Offload теоретически может быть активирована другими методами.

Для нейтрализации векторов эксплуатации уязвимости скрипт применяет дифференцированный подход в зависимости от версии операционной системы:

  • в РЕД ОС 7.3 – накладывается ограничение на использование непривилегированных пользовательских пространств имен (user.max_user_namespaces = 0), что лишает потенциальный эксплоит возможности собрать изолированное сетевое окружение.
  • в РЕД ОС 8.0 – задействуется нативный механизм ядра по ограничению подсистемы io_uring для непривилегированных процессов (kernel.io_uring_disabled = 2), полностью блокирующий примитивы проведения атак на оперативную память хоста.

Интеграция с Secret Net LSP

Скрипт автоматически детектирует использование СЗИ Secret Net LSP, проверяет онлайн совместимость СЗИ с безопасной версией ядра и предлагает актуальный вариант (обновление ядра или применение компенсирующих мер).


Уязвимость CIFSwitch (redos_cifswitch_patch.sh)

Краткое описание

Критическая уязвимость CIFSwitch относится к LPE-типу (Local Privilege Escalation) и может быть использована в системах на базе Linux (не проверяется происхождение описания ключа cifs.spnego, используемого для аутентификации на SMB-сервере). Позволяет непривилегированному локальному пользователю получить доступ к системе уровня root.

Атака возможна на системы, в которых разрешено создание пространств имен пользователей (user namespace) или точек монтирования (mount namespace). Также требуется наличие установленного пакета cifs-utils.

Уязвимость CIFSwitch исправлена в ядрах 6.1.175 и 6.12.92.

Безопасные версии ядра Linux

  • РЕД ОС 7.3: 6.1.175-1.el7.3.* и выше
  • РЕД ОС 8.0: 6.12.92-1.red80.* и выше

Компенсирующие меры защиты

Скрипт опрашивает администратора об использовании на целевой машине автоматической авторизации в Active Directory/Samba, и, в соответствии с ответом, производит действия для защиты.

  • Если автоматическая авторизация не используется – через конфигурацию cifs.spnego устанавливается запрет вызова утилиты cifs.upcall для определения ключей из Kerberos/SPNEGO.
  • Если автоматическая авторизация используется – накладывается ограничение на использование непривилегированных пользовательских пространств имен (user.max_user_namespaces = 0), что лишает потенциальный эксплоит возможности собрать изолированное сетевое окружение..

Интеграция с Secret Net LSP

Скрипт автоматически детектирует использование СЗИ Secret Net LSP, проверяет онлайн совместимость СЗИ с безопасной версией ядра и предлагает актуальный вариант (обновление ядра или применение компенсирующих мер).


Инструкция по использованию скриптов

Скрипты требуют запуска с наивысшими привилегиями (например, через sudo). В случае запуска от обычного пользователя утилиты автоматически запросят повышение прав.

Ключи запуска:

  • Диагностика системы:

    sudo ./redos_dirtyfrag_patch.sh --check
    # или сокращенно:
    sudo ./redos_copyfail_patch.sh -c

    Проводит сквозной аудит системы. По результатам проверки предлагает установку пакета обновления или применение компенсирующих мер для защиты.

  • Применение компенсирующих мер:

    sudo ./redos_dirtyfrag_patch.sh --patch
    # или сокращенно:
    sudo ./redos_copyfail_patch.sh -p

    Выполняет многоуровневую защиту без проведения аудита системы. Требует перезагрузки для полной активации рантайм-защиты.

  • Откат изменений:

    sudo ./redos_dirtyfrag_patch.sh --rollback
    # или сокращенно:
    sudo ./redos_copyfail_patch.sh -r

    Отменяет все внесенные изменения.

  • Информационные ключи:

    • -h (--help) – краткая справка по командам.
    • -i (--info) – сведения об уязвимости.
    • -a (--about) – информация о скрипте.

Лицензия и отказ от ответственности

Скрипты распространяются под лицензией GNU GPLv3 (https://www.gnu.org/licenses/).

Скрипты (далее – Программный продукт) предоставляются автором на основе принципа «КАК ЕСТЬ» (AS IS), выражаемого в отказе от предоставления любых явных или подразумеваемых гарантий, а также в отсутствии обязательства предоставлять сопровождение, поддержку, обновление или изменение Программного продукта.

Конечный пользователь использует данный Программный продукт на свой страх и риск.

Автор не несет ответственности за качество и функциональные особенности данного Программного продукта, как явные, так и предполагаемые, равно как и за фактическое соответствие Программного продукта заявленной функциональности.

Автор не несет ответственности за проблемы, которые могут возникать в процессе эксплуатации Программного продукта, как в случаях, когда проблемы обусловлены несовместимостью с другими программными продуктами (пакетами, драйверами), так и в случаях несоответствия результатов использования Программного продукта ожиданиям Конечного пользователя.

Конечный пользователь понимает и выражает согласие с тем, что, используя Программный продукт, он делает это по своему усмотрению и несет полную ответственность за любой ущерб, который это может за собой повлечь, включая несовместимость или конфликты Программного продукта с другими программными продуктами, используемыми Конечным пользователем.

Перед применением в продакшн-среде рекомендуется провести тестирование на контрольной группе АРМ.

About

Патч-скрипты для устранения критических уязвимостей (Copy Fail, Dirty Frag, PinTheft, GRO Frag, CIFSwitch) в РЕД ОС 7.3 и РЕД ОС 8.0

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages