Vad har hänt?
En säkerhetsforskare med pseudonymen _SiCK har på Github publicerat flera proof-of-concept-exploits som utnyttjar en sårbarhet i Linux-kärnans minnes- och processhantering. Sårbarheten gör det möjligt för lokala användare utan särskilda behörigheter att under vissa förutsättningar läsa filer som egentligen endast är tillgängliga för root-användaren. Det rör sig redan om den fjärde säkerhetsbristen inom loppet av några dagar som gör det möjligt för Linux-användare att utöka sina behörigheter.
Det PoC-exempel med de allvarligaste konsekvenserna heter ssh-keysign-pwn. Det läser ut maskinens privata SSH-nyckel – en fil som under normala omständigheter enbart är tillgänglig för root-användaren. Ett annat exempel utnyttjar programmet "chage" för att under dess körning läsa ut lösenordsfilen /etc/shadow.
Detaljerna
Orsaken till sårbarheten ligger djupt i kärnan: Funktionen ptrace_may_access() misslyckas på ett alltför öppet sätt (så kallat "fail open") vid processer som just håller på att avslutas. Om en angripare vinner en race condition, det vill säga en kapplöpning mellan flera samtidigt pågående processer, kan denne trots avsaknad av behörigheter få tillgång till filer som den avslutande processen tidigare hade öppnat. Potentiellt berörs därmed alla filer som öppnas av program med root-rättigheter (setuid root), till exempel /etc/shadow eller /etc/ssh/ssh_host_key.
Felet upptäcktes av säkerhetsföretaget Qualys. Linux-ansvarige Linus Torvalds åtgärdade det sent på torsdagseftermiddagen. Kort därefter uppmärksammade grsecurity-grundaren Brad Spengler felet i en kortanalys på det sociala nätverket X, vilket i sin tur väckte _SiCKs ambition att utveckla egna exploits. En officiell CVE-beteckning finns hittills inte för sårbarheten.
Anmärkningsvärt är att felet redan för flera år sedan uppmärksammades av Google-säkerhetsexperten Jann Horn. Han hade redan då lagt fram ett förslag till åtgärd – detta genomfördes dock inte. Linux-kärnan 7.0.8 innehåller nu uteslutande felrättningen för säkerhetsbristen som utnyttjas av ssh-keysign-pwn. Kärnansvarige Greg Kroah-Hartman kommenterade situationen på Fediverse med en självironisk anmärkning om en "stor knapp" på sitt skrivbord för att utlösa nya kärnversioner.
Sammanhang
För säkerhetsteknikbranschen är denna sårbarhet relevant av flera skäl. System för passerkontroll, videoövervakning och larmhantering körs ofta på Linux-baserade servrar eller inbyggda enheter. Om lokala användare – till exempel via komprometterade tjänstekonton eller otillräckligt skyddad åtkomst – kan läsa root-skyddade filer som SSH-nycklar eller lösenordsfiler, öppnar detta dörren för vidare attacker mot hela infrastrukturen.
Särskilt kritiskt är omständigheten att sårbarheten inte är ny: Den var redan känd för flera år sedan, men åtgärdades inte. Detta visar exemplariskt hur viktig kontinuerlig patchhantering förblir även för till synes stabila och mogna system. Eftersom sårbarheten i princip är tänkbar för varje exekverbar fil med root-rättigheter (setuid root), är angreppsytan potentiellt bred och inte begränsad till de PoC-exempel som hittills publicerats.
Praktiska tips
- Systemadministratörer kan tillfälligt åtgärda alla hittills kända fall av sårbarheten med kommandot "echo 3 > /proc/sys/kernel/yama/ptrace_scope".
- Den officiella fixen finns redan i Linux-kärnan 7.0.8 – berörda system bör uppdateras snarast möjligt så snart respektive distribution tillhandahåller ett motsvarande kärnpaket.
- Fram till dess att patchade distributionspaket finns tillgängliga bör den nämnda tillfälliga lösningen prioriteras särskilt på servrar med känsliga inloggningsuppgifter (SSH-nycklar, lösenordsfiler) och på säkerhetskritiska system som passerkontroll- eller videoövervakningsservrar.
- Generellt rekommenderas en genomgång av vilka lokala användarkonton som överhuvudtaget har åtkomst till berörda system, för att generellt minska angreppsytan för race condition-exploits.
Framtidsutsikter
Eftersom stora och mindre Linux-distributioner nu måste implementera och leverera fixen i nya kärnpaket, är det erfarenhetsmässigt att räkna med en viss fördröjning innan alla produktionssystem är skyddade. Under denna övergångsperiod förblir den beskrivna tillfälliga lösningen via Yama-ptrace-inställningen den viktigaste omedelbara åtgärden för administratörer.
Med tanke på att detta redan är den fjärde jämförbara säkerhetsbristen inom loppet av några dagar, kan man anta att säkerhetsforskare och kärnutvecklare kommer att fortsätta ägna sig intensivt åt Linux-kärnans minnes- och processhantering. För operatörer av säkerhetskritisk infrastruktur – från larmanläggningar över videoövervakningssystem till passerkontrollösningar – understryker incidenten nödvändigheten av att ha täta patchhanteringsprocesser och att snabbt installera även till synes mindre kärnuppdateringar.