En sårbarhet i systemd-coredump som gör att man kan bestämma minnesinnehållet i suid-program

En sårbarhet (CVE-2022-4415) har identifierats i systemd-coredump-komponenten, som bearbetar kärnfiler som genereras efter processkrasch, vilket gör att en oprivilegierad lokal användare kan fastställa minnesinnehållet i privilegierade processer som körs med suid-rotflaggan. Standardkonfigurationsproblemet har bekräftats på openSUSE, Arch, Debian, Fedora och SLES-distributioner.

Sårbarheten orsakas av bristen på korrekt bearbetning av parametern fs.suid_dumpable sysctl i systemd-coredump, som, när den är inställd på standardvärdet 2, tillåter generering av kärndumpar för processer med suid-flaggan. Det är underförstått att kärnfilerna för suid-processer skrivna av kärnan måste ha åtkomsträttigheter inställda för att endast tillåta läsning av rotanvändaren. Verktyget systemd-coredump, som anropas av kärnan för att spara kärnfiler, lagrar kärnfilen under rot-ID:t, men ger dessutom ACL-baserad läsåtkomst till kärnfilerna baserat på ID:t för ägaren som ursprungligen startade processen .

Denna funktion låter dig ladda ner kärnfiler utan hänsyn till att programmet kan ändra användar-ID och köra med förhöjda privilegier. Attacken kokar ner till det faktum att en användare kan starta en suid-applikation och skicka en SIGSEGV-signal till den och sedan ladda innehållet i en kärnfil, som inkluderar en minnesdel av processen under en onormal avslutning.

Till exempel kan en användare köra "/usr/bin/su" och i en annan terminal avsluta dess exekvering med kommandot "kill -s SIGSEGV `pidof su`", varefter systemd-coredump kommer att spara kärnfilen i /var /lib/systemd/ katalog coredump, ställer in en ACL för den som tillåter läsning av den aktuella användaren. Eftersom suid-verktyget 'su' läser in innehållet i /etc/shadow i minnet, kan en angripare få tillgång till information om lösenordshascharna för alla användare på systemet. Sudo-verktyget är inte känsligt för attacker, eftersom det förbjuder generering av kärnfiler via ulimit.

Enligt systemd-utvecklarna uppträder sårbarheten från och med systemd release 247 (november 2020), men enligt forskaren som identifierade problemet påverkas även release 246. Sårbarheten uppstår om systemd kompileras med libacl-biblioteket (som standard i alla populära distributioner). Fixningen är för närvarande tillgänglig som en patch. Du kan spåra korrigeringarna i distributionerna på följande sidor: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Som en säkerhetslösning kan du ställa in sysctl fs.suid_dumpable till 0, vilket inaktiverar sändning av dumpar till systemd-coredump-hanteraren.

Källa: opennet.ru

Lägg en kommentar