util-linux — это случайный набор утилит Linux. До версии 2.41.4 уязвимость TOCTOU (время проверки-времени использования) была обнаружена в двоичном файле SUID /usr/bin/mount из util-linux. Двоичный файл монтирования при настройке устройств цикла проверяет путь к исходному файлу с правами пользователя через fork() + setuid() + realpath(), но впоследствии повторно канонизирует и открывает его с правами root (euid=0) без проверки того, что путь не был заменен между обеими операциями.
Ни O_NOFOLLOW, ни сравнение индексных дескрипторов, ни функция fstat() после открытия не используются. Это позволяет локальному непривилегированному пользователю заменить исходный файл символической ссылкой, указывающей на любой файл или устройство, принадлежащий пользователю root, во время окна гонки, в результате чего двоичный файл SUID открывается и монтируется как root. Для эксплуатации требуется запись /etc/fstab с параметрами user,loop, путь которой указывает на каталог, в котором у злоумышленника есть разрешение на запись, и чтобы в /usr/bin/mount был установлен бит SUID (конфигурация по умолчанию практически во всех дистрибутивах Linux).
Результатом является несанкционированный доступ для чтения к файлам, защищенным root-доступом, и блочным устройствам, включая резервные образы, дисковые тома и любые файлы, содержащие действительную файловую систему. Эта проблема исправлена в версии 2.41.4.
Показать оригинальное описание (EN)
util-linux is a random collection of Linux utilities. Prior to version 2.41.4, a TOCTOU (Time-of-Check-Time-of-Use) vulnerability has been identified in the SUID binary /usr/bin/mount from util-linux. The mount binary, when setting up loop devices, validates the source file path with user privileges via fork() + setuid() + realpath(), but subsequently re-canonicalizes and opens it with root privileges (euid=0) without verifying that the path has not been replaced between both operations. Neither O_NOFOLLOW, nor inode comparison, nor post-open fstat() are employed. This allows a local unprivileged user to replace the source file with a symlink pointing to any root-owned file or device during the race window, causing the SUID binary to open and mount it as root. Exploitation requires an /etc/fstab entry with user,loop options whose path points to a directory where the attacker has write permission, and that /usr/bin/mount has the SUID bit set (the default configuration on virtually all Linux distributions). The impact is unauthorized read access to root-protected files and block devices, including backup images, disk volumes, and any file containing a valid filesystem. This issue has been patched in version 2.41.4.
Характеристики атаки
Последствия
Строка CVSS v3.1