19 juni 2019

Allvarliga sårbarheter i Linux och FreeBSD

Sårbarheter i Linux och FreeBSD

Flera mycket allvarliga sårbarheter har upptäckts i Linux- och FreeBSD-kärnorna, som kan leda till att system kraschar eller använder för många resurser och följaktligen går mycket långsammare.

Säkerhetshål brukar vanligtvis upptäckas av forskare hos säkerhetsföretag eller av så kallade ”white hat”-hackare som vill slå larm (och ibland belönas för det). Men den här gången upptäcktes sårbarheterna av streamingjätten Netflix tekniska chef Jonathan Looney, som förvisso även är FreeBSD-utvecklare. Totalt handlar det om fyra nya säkerhetshål i Linux och FreeBSD, varav en mycket allvarlig sårbarhet som möjliggör en fjärrutlöst kernel panic i Linux-kärnan.

Alla fyra sårbarheterna påverkar MSS-funktionen (Maximum Segment Size) och TCP-mekanismen SACK (Selective Acknowledgments) i Linux och FreeBSD, som gör det möjligt för en mottagande maskin att bekräfta vilka data/paket den har mottagit så att den sändande maskinen bara skickar tillbaka de saknade datasegmenten. Mekanismen syftar kort och gott till att påskynda överföringen av data mellan datorer. TCP SACK är aktiverat som standard i Linux men kan stängas av för att förhindra överdriven resurs- och bandbreddsanvändning (och ett möjligt DoS-tillstånd).

Den värsta av de nu upptäckta sårbarheterna, som fått benämningen CVE-2019-11477 eller ”SACK Panic”, påverkar alla Linux-kärnor sedan 2.6.29, eller alla versioner av Linux som släppts sedan mars 2009. Som namnet antyder kan en angripare använda en sekvens av SACK för att skapa en fjärrutlöst kernel panic (en systemkrasch i operativsystemet där kärnan upptäcker ett systemfel som tolkas som så allvarligt att systemet stoppas) i Linux, vilket kräver en omstart.

Sårbarheten CVE-2019-11478 omfattar två relaterade funktioner. Den första delen kallas ”Excess Resource Usage” och påverkar alla versioner av Linux och gör det möjligt för angripare att skicka en specialutformad SACK-sekvens som fragmenterar kön för TCP-återutsändning. Den andra delen kallas ”SACK Slowness” påverkar samtliga kärnversioner som släppts före 4.15, använder samma sårbarhet för att ytterligare utnyttja den fragmenterade kön för att orsaka en länkloop för alla efterföljande SACK-sekvenser som tas emot på samma TCP-anslutning.

Den tredje sårbarheten, CVE-2019-5599, liknar de ovanstående och kallas också för ”SACK Slowness”, och påverkar FreeBSD 12 genom att utnyttja RACK TCP-stacken.

Den fjärde sårbarheten, CVE-2019-11479, eller ”Excess Resource Consumption Due to Low MSS Values”, påverkar alla Linux-versioner. Genom att utnyttja denna sårbarhet kan en angripare tvinga Linux-kärnan att segmentera sina svar i flera 8-bitars TCP-segment, vilket drastiskt ökar den bandbreddsmängd som krävs för att leverera samma mängd data, samtidigt som användningen av CPU och NIC-processorkraft skjuter i höjden.

Hur orolig behöver jag vara?

De goda nyheterna är att sårbarheterna dels inte är helt lätta att utnyttja för en attack, och dels att det redan har släppts patchar som löser problemen. Flera Linux-aktörer har också rullat ut uppdateringar som löser det hela på kärnnivå. Haken? Att de facto se till att dina system är patchade/uppdaterade.

Vi på Binero mitigerade problemet (med hjälp av de metoder som rekommenderades) så fort vi fick vetskap om sårbarheterna, för att sedan inleda patchningen av samtliga system och kunder. Samtliga kunder som har tjänsten patchning är redan skyddade, detsamma gäller för alla binero.cloud-kunder med virtuella routrar (med bakomliggande lastbalanserare). Undantaget är de binero.cloud-kunder som har en publik IP direkt in i sin maskin. Där kan vi av naturliga skäl inte hjälpa till, utan det krävs att kunden själv gör detta. Om du som läser det här inte är Binero-kund bör du givetvis säkerställa att din leverantör har läget under kontroll!

Läs gärna mer på GitHub, där Netflix berättar mer om upptäckten. Red Hat har också en omfattande genomgång av det hela.