Suicide
15.10.2019, 19:32
В утилите Sudo (https://www.sudo.ws/), используемой для организации выполнения команд от имени других пользователей, выявлена (https://www.openwall.com/lists/oss-security/2019/10/14/1) уязвимость (https://www.sudo.ws/alerts/minus_1_uid.html) (CVE-2019-14287 (https://security-tracker.debian.org/tracker/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" уязвимость не эксплуатируема (https://bugzilla.suse.com/show_bug.cgi?id=CVE-2019-14287), так как в sudoers по умолчанию включён режим "Defaults targetpw" при котором выполняется проверка UID по базе паролей с выводом запроса ввода пароля целевого пользователя. Для подобных систем атака может быть совершена только при наличии правил вида:
myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id
Проблема устранена в выпуске Sudo 1.8.28 (https://www.sudo.ws/sudo/news.html). Исправление также доступно в форме патча (https://www.sudo.ws/repos/sudo/rev/83db8dba09e7). В дистрибутивах уязвимость уже устранена в Debian (https://security-tracker.debian.org/tracker/CVE-2019-14287), Arch Linux (https://www.archlinux.org/packages/core/x86_64/sudo/), SUSE/openSUSE (https://bugzilla.suse.com/show_bug.cgi?id=CVE-2019-14287), Ubuntu (https://people.canonical.com/~ubuntu-security/cve/2019/CVE-2019-14287.html), Gentoo (https://bugs.gentoo.org/show_bug.cgi?id=CVE-2019-14287) и FreeBSD (https://www.freshports.org/security/sudo/). На момент написания новости проблема остаётся неисправленной в RHEL (https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2019-14287) и Fedora (https://bodhi.fedoraproject.org/updates/?releases=F30&type=security). Уязвимость выявлена исследователями безопасности из компании Apple.
15.10.2019
http://www.opennet.ru/opennews/art.shtml?num=51675
При наличии в 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" уязвимость не эксплуатируема (https://bugzilla.suse.com/show_bug.cgi?id=CVE-2019-14287), так как в sudoers по умолчанию включён режим "Defaults targetpw" при котором выполняется проверка UID по базе паролей с выводом запроса ввода пароля целевого пользователя. Для подобных систем атака может быть совершена только при наличии правил вида:
myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id
Проблема устранена в выпуске Sudo 1.8.28 (https://www.sudo.ws/sudo/news.html). Исправление также доступно в форме патча (https://www.sudo.ws/repos/sudo/rev/83db8dba09e7). В дистрибутивах уязвимость уже устранена в Debian (https://security-tracker.debian.org/tracker/CVE-2019-14287), Arch Linux (https://www.archlinux.org/packages/core/x86_64/sudo/), SUSE/openSUSE (https://bugzilla.suse.com/show_bug.cgi?id=CVE-2019-14287), Ubuntu (https://people.canonical.com/~ubuntu-security/cve/2019/CVE-2019-14287.html), Gentoo (https://bugs.gentoo.org/show_bug.cgi?id=CVE-2019-14287) и FreeBSD (https://www.freshports.org/security/sudo/). На момент написания новости проблема остаётся неисправленной в RHEL (https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2019-14287) и Fedora (https://bodhi.fedoraproject.org/updates/?releases=F30&type=security). Уязвимость выявлена исследователями безопасности из компании Apple.
15.10.2019
http://www.opennet.ru/opennews/art.shtml?num=51675