Systemd-coredump ievainojamība, kas ļauj noteikt suid programmu atmiņas saturu

Ievainojamība (CVE-2022-4415) ir identificēta komponentā systemd-coredump, kas apstrādā pamatfailus, kas ģenerēti pēc procesu avārijas, ļaujot nepievilcīgam lokālajam lietotājam noteikt to priviliģēto procesu atmiņas saturu, kas darbojas ar suid saknes karogu. Noklusējuma konfigurācijas problēma ir apstiprināta openSUSE, Arch, Debian, Fedora un SLES izplatījumos.

Ievainojamību izraisa fs.suid_dumpable sysctl parametra pareizas apstrādes trūkums sistēmā systemd-coredump, kas, ja iestatīta noklusējuma vērtība 2, ļauj ģenerēt kodola izgāztuves procesiem ar karogu suid. Tiek saprasts, ka kodola rakstītajiem suid procesu galvenajiem failiem ir jābūt iestatītām piekļuves tiesībām, lai tos varētu lasīt tikai saknes lietotājs. Lietderība systemd-coredump, ko kodols izsauc, lai saglabātu pamatfailus, saglabā pamatdatni zem saknes ID, bet papildus nodrošina uz ACL balstītu lasīšanas piekļuvi galvenajiem failiem, pamatojoties uz tā īpašnieka ID, kurš sākotnēji uzsāka procesu. .

Šī funkcija ļauj lejupielādēt galvenos failus, neņemot vērā to, ka programma var mainīt lietotāja ID un darboties ar paaugstinātām privilēģijām. Uzbrukuma pamatā ir fakts, ka lietotājs var palaist suid lietojumprogrammu un nosūtīt tai SIGSEGV signālu un pēc tam ielādēt pamatfaila saturu, kas ietver procesa atmiņas daļu neparastas pārtraukšanas laikā.

Piemēram, lietotājs var palaist “/usr/bin/su” un citā terminālī pārtraukt tā izpildi ar komandu “kill -s SIGSEGV `pidof su”, pēc kuras systemd-coredump saglabās pamatdatni mapē /var. /lib/systemd/ direktorijā coredump, iestatot tam ACL, kas ļauj lasīt pašreizējam lietotājam. Tā kā suid utilīta “su” nolasa /etc/shadow saturu atmiņā, uzbrucējs var piekļūt informācijai par visu sistēmas lietotāju paroļu jaucējkodiem. Sudo utilīta nav uzņēmīga pret uzbrukumiem, jo ​​tā aizliedz ģenerēt galvenos failus, izmantojot ulimit.

Saskaņā ar systemd izstrādātāju teikto, ievainojamība parādās, sākot ar systemd izlaidumu 247 (2020. gada novembris), taču saskaņā ar pētnieka, kurš identificēja problēmu, tiek ietekmēta arī versija 246. Ievainojamība parādās, ja systemd ir kompilēts ar libacl bibliotēku (pēc noklusējuma visi populārie izplatījumi). Labojums pašlaik ir pieejams kā ielāps. Izplatījumu labojumiem varat izsekot šādās lapās: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Kā drošības risinājumu varat iestatīt sysctl fs.suid_dumpable uz 0, kas atspējo izgāztuves sūtīšanu uz systemd-coredump apdarinātāju.

Avots: opennet.ru

Pievieno komentāru