Vulnerebleco en systemd-coredump kiu permesas al oni determini la memorenhavon de suid programoj

Vulnerabileco (CVE-2022-4415) estis identigita en la systemd-coredump-komponento, kiu prilaboras kernajn dosierojn generitajn post kraŝo de procezoj, permesante al senprivilegia loka uzanto determini la memorenhavon de privilegiaj procezoj kurantaj kun la suid radika flago. La defaŭlta agorda problemo estis konfirmita ĉe distribuoj openSUSE, Arch, Debian, Fedora kaj SLES.

La vundebleco estas kaŭzita de la manko de ĝusta prilaborado de la fs.suid_dumpable sysctl parametro en systemd-coredump, kiu, kiam agordita al la defaŭlta valoro de 2, permesas la generacion de kernaj rubejoj por procezoj kun la suid flago. Estas komprenite, ke la kernaj dosieroj de suid procezoj skribitaj de la kerno devas havi alirrajtojn fiksitajn por permesi legadon nur de la radika uzanto. La systemd-coredump ilo, kiu estas vokita de la kerno por konservi kerndosierojn, stokas la kerndosieron sub la radika ID, sed aldone disponigas ACL-bazitan legan aliron al la kerndosieroj bazitaj sur la ID de la posedanto kiu origine lanĉis la procezon. .

Ĉi tiu funkcio ebligas al vi elŝuti kernajn dosierojn sen konsideri la fakton, ke la programo povas ŝanĝi la uzantan identigilon kaj funkcii kun altigitaj privilegioj. La atako resumas al la fakto, ke uzanto povas lanĉi suid-aplikaĵon kaj sendi al ĝi SIGSEGV-signalon, kaj poste ŝargi la enhavon de kerndosiero, kiu inkluzivas memoran tranĉaĵon de la procezo dum nenormala fino.

Ekzemple, uzanto povas ruli "/usr/bin/su" kaj en alia terminalo ĉesigi ĝian ekzekuton per la komando "kill -s SIGSEGV `pidof su`", post kio systemd-coredump konservos la kernan dosieron en la /var. /lib/systemd/-dosierujo coredump, fiksante ACL por ĝi, kiu permesas legadon de la nuna uzanto. Ĉar la suid-ilaĵo 'su' legas la enhavon de /etc/shadow en memoron, atakanto povas akiri aliron al informoj pri la pasvortaj haŝoj de ĉiuj uzantoj en la sistemo. La sudo-utilo ne estas atakebla, ĉar ĝi malpermesas la generacion de kernaj dosieroj per ulimit.

Laŭ la programistoj de systemd, la vundebleco aperas komencante de systemd eldono 247 (novembro 2020), sed laŭ la esploristo, kiu identigis la problemon, ankaŭ estas tuŝita eldono 246. La vundebleco aperas se systemd estas kompilita kun la biblioteko libacl (defaŭlte en ĉiuj popularaj distribuoj). La riparo estas nuntempe havebla kiel flikaĵo. Vi povas spuri la korektojn en la distribuoj sur la jenaj paĝoj: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Kiel sekureca solvo, vi povas agordi sysctl fs.suid_dumpable al 0, kio malŝaltas sendi rubaĵojn al la prizorganto systemd-coredump.

fonto: opennet.ru

Aldoni komenton