Уязвимость в systemd-coredump, позволяющая определить содержимое памяти suid-программ

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 22 Dec 2022.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,482
    Likes Received:
    7,062
    Reputations:
    693
    В компоненте systemd-coredump, обеспечивающем обработку core-файлов, генерируемых после аварийного завершения процессов, выявлена уязвимость (CVE-2022-4415), позволяющая непривилегированному локальному пользователю определить содержимое памяти привилегированных процессов, запущенных с флагом suid root. Наличие проблемы в конфигурации по умолчанию подтверждено в дистрибутивах openSUSE, Arch, Debian, Fedora и SLES.

    Уязвимость вызвана отсутствием корректной обработки sysctl-параметра fs.suid_dumpable в systemd-coredump, который при выставленном по умолчанию значении 2 разрешает генерацию core-дампов для процессов с флагом suid. Подразумевается, что на записываемые ядром core-файлы suid-процессов должны выставляться права доступа, разрешающие чтение только пользователю root. Утилита systemd-coredump, которая вызывается ядром для сохранения core-файлов, сохраняет core-файл под идентификатором root, но дополнительно предоставляет доступ к core-файлам на основе ACL, допускающий чтение на основе идентификатора владельца, изначально запустившего процесс.

    Указанная особенность позволяет загружать core-файлы без оглядки на то, что программа может сменить идентификатор пользователя и выполняться с повышенными привилегиями. Атака сводится к тому, что пользователь может запустить suid-приложение и отправить ему сигнал SIGSEGV, после чего загрузить содержимое core-файла, включающего срез памяти процесса во время аварийного завершения.

    Например, пользователь может запустить "/usr/bin/su" и в другом терминале завершить его выполнение командой "kill -s SIGSEGV `pidof su`", после чего systemd-coredump сохранит core-файл в каталоге /var/lib/systemd/coredump, выставив для него ACL, разрешающий чтение текущему пользователю. Так как suid-утилита 'su' читает в память содержимое /etc/shadow, атакующий может получить доступ к информации о хешах паролей всех пользователей в системе. Утилита sudo атаке не подвержена, так как запрещает генерацию core-файлов через ulimit.

    По заявлению разработчиков systemd уязвимость проявляется, начиная с выпуска systemd 247 (ноябрь 2020 года), но по словам выявившего проблему исследователя уязвимости подвержен и выпуск 246. Уязвимость проявляется если systemd собран с библиотекой libacl (по умолчанию во всех популярных дистрибутивах). Исправление пока доступно в виде патча. Проследить за исправлением в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. В качестве обходного пути защиты можно выставить sysctl fs.suid_dumpable в значение 0, отключающее передачу дампов обработчику systemd-coredump.

     
    _________________________
    CyberTro1n and seostock like this.
Loading...