Уязвимост (CVE-2022-4415) е идентифицирана в компонента systemd-coredump, който обработва основните файлове, генерирани след сривове на процеси. Тази уязвимост позволява на непривилегирован локален потребител да определи съдържанието на паметта на привилегировани процеси, изпълнявани с root флага suid. Наличието на проблема в конфигурацията по подразбиране е потвърдено в openSUSE, Arch, Debian, Федора и SLES.
Уязвимостта е причинена от липсата на правилна обработка на sysctl параметъра fs.suid_dumpable в systemd-coredump, който, когато е зададен на стойност по подразбиране 2, позволява генерирането на основни дъмпове за процеси с флаг suid. Разбираемо е, че основните файлове на процесите suid, написани от ядрото, трябва да имат права за достъп, зададени така, че да позволяват четене само от root потребителя. Помощната програма systemd-coredump, която се извиква от ядрото за запазване на основните файлове, съхранява основния файл под коренния идентификатор, но допълнително предоставя базиран на ACL достъп за четене до основните файлове въз основа на идентификатора на собственика, който първоначално е стартирал процеса .
Тази функция ви позволява да изтегляте основни файлове, независимо от факта, че програмата може да промени потребителския идентификатор и да работи с повишени привилегии. Атаката се свежда до факта, че потребителят може да стартира suid приложение и да му изпрати SIGSEGV сигнал и след това да зареди съдържанието на основен файл, който включва част от паметта на процеса по време на необичайно прекратяване.
Например, потребителят може да изпълни “/usr/bin/su” и в друг терминал да прекрати изпълнението му с командата “kill -s SIGSEGV `pidof su`”, след което systemd-coredump ще запази основния файл в /var /lib/systemd/ директория coredump, задавайки ACL за него, който позволява четене от текущия потребител. Тъй като помощната програма suid 'su' чете съдържанието на /etc/shadow в паметта, нападателят може да получи достъп до информация за хешовете на паролите на всички потребители в системата. Помощната програма sudo не е податлива на атаки, тъй като забранява генерирането на основни файлове чрез ulimit.
Според разработчиците на systemd, уязвимостта е налице от версия 247 на systemd (ноември 2020 г.), но според изследователя, открил проблема, е засегната и версия 246. Уязвимостта се проявява, ако systemd е компилиран с библиотеката libacl (по подразбиране във всички популярни дистрибуции). В момента е налична корекция като пач. Можете да следите състоянието на пача за дистрибуции на следните страници: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Като заобиколно решение можете да зададете sysctl fs.suid_dumpable на 0, което деактивира предаването на дъмп файлове към манипулатора systemd-coredump.
Източник: opennet.ru
