Уразлівасць у systemd-coredump, якая дазваляе вызначыць змесціва памяці suid-праграм

У кампаненце systemd-coredump, які забяспечвае апрацоўку core-файлаў, генераваных пасля аварыйнага завяршэння працэсаў, выяўленая ўразлівасць (CVE-2022-4415), якая дазваляе непрывілеяванаму лакальнаму карыстачу вызначыць змесціва памяці прывілеяваных працэсаў, запушчаных са сцягам suid. Наяўнасць праблемы ў канфігурацыі па змаўчанні пацверджана ў дыстрыбутывах openSUSE, Arch, Debian, Fedora і SLES.

Уразлівасць выкліканая адсутнасцю карэктнай апрацоўкі sysctl-параметра fs.suid_dumpable у systemd-coredump, які пры выстаўленым па змаўчанні значэнні 2 дазваляе генерацыю core-дампаў для працэсаў са сцягам suid. Мяркуецца, што на якія запісваюцца ядром core-файлы suid-працэсаў павінны выстаўляцца правы доступу, якія дазваляюць чытанне толькі карыстачу root. Утыліта systemd-coredump, якая выклікаецца ядром для захавання core-файлаў, захоўвае core-файл пад ідэнтыфікатарам root, але дадаткова падае доступ да core-файлаў на аснове ACL, які дапускае чытанне на аснове ідэнтыфікатара ўладальніка, першапачаткова які запусціў працэс.

Указаная асаблівасць дазваляе загружаць core-файлы без аглядкі на тое, што праграма можа змяніць ідэнтыфікатар карыстальніка і выконвацца з падвышанымі прывілеямі. Атака зводзіцца да таго, што карыстач можа запусціць suid-прыкладанне і адправіць яму сігнал SIGSEGV, пасля чаго загрузіць змесціва core-файла, улучальнага зрэз памяці працэсу падчас аварыйнага завяршэння.

Напрыклад, карыстач можа запусціць "/usr/bin/su" і ў іншым тэрмінале завяршыць яго выкананне камандай "kill -s SIGSEGV `pidof su`", пасля чаго systemd-coredump захавае core-файл у каталогу /var/lib/systemd/ coredump, выставіўшы для яго ACL, які дазваляе чытанне бягучаму карыстачу. Бо suid-ўтыліта 'su' чытае ў памяць змесціва /etc/shadow, атакавалы можа атрымаць доступ да інфармацыі аб хэшах пароляў усіх карыстачоў у сістэме. Утыліта sudo нападу не схільная, бо забараняе генерацыю core-файлаў праз ulimit.

Па заяве распрацоўнікаў systemd уразлівасць выяўляецца, пачынальна з выпуску systemd 247 (лістапад 2020 гады), але па словах які выявіў праблему даследніка ўразлівасці схільны і выпуск 246. Уразлівасць выяўляецца калі systemd сабраны з бібліятэкай libacl (па змаўчанні ва ўсіх папулярных дыстрыбуце. Выпраўленне пакуль даступна ў выглядзе патча. Прасачыць за выпраўленьнем у дыстрыбутывах можна на наступных старонках: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. У якасці абыходнага шляху абароны можна выставіць sysctl fs.suid_dumpable у значэнне 0, якое адключае перадачу дампаў апрацоўшчыку systemd-coredump.

Крыніца: opennet.ru

Дадаць каментар