Fjärrsårbarhet i Linux-kärnan som uppstår när TIPC-protokollet används

En sårbarhet (CVE-2022-0435) har identifierats i Linux-kärnmodulen som säkerställer driften av nätverksprotokollet TIPC (Transparent Inter-process Communication), vilket potentiellt tillåter att kod exekveras på kärnnivå genom att skicka ett speciellt utformat nätverk paket. Problemet påverkar bara system med tipc.ko-kärnmodulen laddad och TIPC-stacken konfigurerad, vilket vanligtvis används i kluster och inte är aktiverat som standard på icke-specialiserade Linux-distributioner.

Det noteras att när kärnan byggs i läget "CONFIG_FORTIFY_SRC=y" (används i RHEL), vilket lägger till ytterligare gränskontroller till memcpy()-funktionen, är operationen begränsad till ett nödstopp (kärnan får panik). Om det körs utan ytterligare kontroller och om information om canary-taggarna som används för att skydda stacken läcker, kan problemet utnyttjas för fjärrkörning av kod med kärnrättigheter. Forskarna som identifierade problemet hävdar att exploateringstekniken är trivial och kommer att avslöjas efter den utbredda elimineringen av sårbarheten i distributioner.

Sårbarheten orsakas av ett stackspill som uppstår vid bearbetning av paket, värdet på fältet med antalet domänmedlemsnoder i vilket överstiger 64. För att lagra nodparametrar i tipc.ko-modulen, en fast array “u32 members[64 ]” används, men i processen för att bearbeta det specificerade i paketet. Nodnumret kontrollerar inte värdet på "member_cnt", vilket tillåter värden större än 64 att användas för kontrollerad överskrivning av data i minnesområdet nästa till "dom_bef"-strukturen på stacken.

Felet som ledde till sårbarheten introducerades den 15 juni 2016 och inkluderades i Linux 4.8-kärnan. Sårbarheten åtgärdades i Linux-kärnversionerna 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 och 4.9.301. I kärnorna i de flesta distributioner förblir problemet olöst: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

TIPC-protokollet utvecklades ursprungligen av Ericsson, designat för att organisera kommunikation mellan processer i ett kluster och aktiveras huvudsakligen på klusternoder. TIPC kan fungera över antingen Ethernet eller UDP (nätverksport 6118). Vid arbete över Ethernet kan attacken utföras från det lokala nätverket, och vid användning av UDP, från det globala nätverket om porten inte täcks av en brandvägg. Attacken kan också utföras av en oprivilegierad lokal användare av värden. För att aktivera TIPC måste du ladda ner tipc.ko-kärnmodulen och konfigurera bindningen till nätverksgränssnittet med hjälp av netlink eller tipc-verktyget.

Källa: opennet.ru

Lägg en kommentar