Компания Qualys опубликовала результаты аудита набора procps-ng, включающего библиотеку libprocps и утилиты для работы с псевдофайловой системой /proc (например, в состав входят такие утилиты как free, kill, pgrep, pmap, ps, sysctl, top, uptime, vmstat, w и watch). В ходе исследования выявлено 7 уязвимостей, из которых две могут привести к повышению своих привилегий в системе, а одна позволяет скрывать непривилегированные процессы. Проблемы пока остаются неисправленными в дистрибутивах (Debian, Ubuntu, RHEL, Fedora, SUSE).
- CVE-2018-1124 - локальное повышение привилегий из-за целочисленного переполнения в функции file2strvec(), поставляемой в библиотеке libprocps и занимающейся разбором содержимого /proc/PID/cmdline. Атакующий может эксплуатировать уязвимость во время запуска администратором или другим пользователем утилит pgrep, pidof и pkill (другие утилиты могут быть эксплуатированы в зависимости от используемых опций). В том числе атакующий может эксплуатировать узявимость находясь в изолированном контейнере или в chroot. Атака производится через создание специально оформленного содержимого буфера с аргументами командной строки процесса, обработка которого в file2strvec может привести к переполнению буфера и выполнению кода (сообщается, что имеется рабочий прототип эксплоита, который пока не опубликован);
- CVE-2018-1120 - атакующий может блокировать работу утилит ps, pgrep, pidof, pkill и w, например для скрытия своих манипуляций от анализа. Атака производится через запуск процесса, в котором для структуры со списком аргументов командной строки выполняется mmap на файл в примонтированной файловой системе FUSE (в итоге блокируются операции чтения /proc/PID/cmdline);
- CVE-2018-1121 - непривилегированный атакующий может скрыть процесс от утилит procps через инициирование отказа в обслуживании (например, целочисленного переполнения в функции file2strvec) или состояния гонки во время выполнения proc_pid_readdir(), осуществляющего упорядоченное чтение содержимого /proc/PID;
- CVE-2018-1122 - повышение привилегий в системе при запуске утилиты top в подконтрольном атакующему каталоге (например, в /tmp) через подмену файла конфигурации (top пытается прочитать файл конфигурации из текущего каталога) на специально оформленный файл, эксплуатирующий
уязвимости в функции config_file();
- CVE-2018-1123 - атакующий может блокировать работу утилиты ps для всех пользователей, переполнив буфер вывода;
- CVE-2018-1125 - потенциальное переполнение стека в утилите pgrep;
- CVE-2018-1126 - использование size_t вместо типа unsigned int в функции разбора /proc.
|