Уязвимость в sudo, позволяющая повысить привилегии при использовании специфичных правил

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

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,373
    Likes Received:
    6,619
    Reputations:
    693
    В утилите Sudo, используемой для организации выполнения команд от имени других пользователей, выявлена уязвимость (CVE-2019-14287), которая позволяет добиться выполнения команд с правами root, при наличии в настройках sudoers правил, в которых в секции проверки идентификатора пользователя после разрешающего ключевого слова "ALL" следует явный запрет запуска с правами root ("... (ALL, !root) ..."). В конфигурациях по умолчанию в дистрибутивах уязвимость не проявляется.

    При наличии в sudoers допустимых, но крайне редко встречающихся на практике правил, разрешающих выполнение определённой команды под UID-идентификатором любого пользователя, кроме root, атакующий, имеющий полномочия выполнения данной команды, может обойти установленное ограничение и выполнить команду с правами root. Для обхода ограничения достаточно попытаться выполнить указанную в настройках команду с UID "-1" или "4294967295", что приведёт к её выполнению с UID 0.

    Например, если в настройках имеется правило, дающее любому пользователю право на выполнение программы /usr/bin/id под любым UID:

    myhost ALL = (ALL, !root) /usr/bin/id
    или вариант, разрешающий выполнение только конкретному пользователю bob:
    myhost bob = (ALL, !root) /usr/bin/id
    Пользователь может выполнить "sudo -u '#-1' id" и утилита /usr/bin/id будет запущена с правами root, несмотря на явный запрет в настройках. Проблема вызвана упущением из внимания спецзначений "-1" или "4294967295", которые не приводят к смене UID, но так как сам sudo уже выполняется под root, то без смены UID и целевая команда также запускается с правами root.

    В дистрибутивах SUSE и openSUSE без указания в правиле "NOPASSWD" уязвимость не эксплуатируема, так как в sudoers по умолчанию включён режим "Defaults targetpw" при котором выполняется проверка UID по базе паролей с выводом запроса ввода пароля целевого пользователя. Для подобных систем атака может быть совершена только при наличии правил вида:

    myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id
    Проблема устранена в выпуске Sudo 1.8.28. Исправление также доступно в форме патча. В дистрибутивах уязвимость уже устранена в Debian, Arch Linux, SUSE/openSUSE, Ubuntu, Gentoo и FreeBSD. На момент написания новости проблема остаётся неисправленной в RHEL и Fedora. Уязвимость выявлена исследователями безопасности из компании Apple.

     
    CKAP, user100, seostock and 1 other person like this.
  2. mail156

    mail156 Banned

    Joined:
    28 Sep 2018
    Messages:
    467
    Likes Received:
    357
    Reputations:
    0
    Повышение привилегий в sudo было обнаружено еще в 2010 году, если не раньше...
     
  3. user100

    user100 Moderator

    Joined:
    24 Dec 2011
    Messages:
    4,497
    Likes Received:
    16,632
    Reputations:
    373
    Использовать sudo для получения root, это же гениально, такое только сотрудник apple мог придумать :D
    Ты с bash скорее всего путаешь ;)
     
    _________________________
    CKAP, Suicide and mail156 like this.
  4. mail156

    mail156 Banned

    Joined:
    28 Sep 2018
    Messages:
    467
    Likes Received:
    357
    Reputations:
    0
    Maybe