Ekstern sårbarhet i Linux-kjernen som oppstår ved bruk av TIPC-protokollen

En sårbarhet (CVE-2022-0435) er identifisert i Linux-kjernemodulen som sikrer driften av TIPC-nettverksprotokollen (Transparent Inter-process Communication), som potensielt lar kode kjøres på kjernenivå ved å sende et spesialdesignet nettverk pakke. Problemet påvirker bare systemer med tipc.ko-kjernemodulen lastet og TIPC-stakken konfigurert, som vanligvis brukes i klynger og ikke er aktivert som standard på ikke-spesialiserte Linux-distribusjoner.

Det bemerkes at når man bygger kjernen i "CONFIG_FORTIFY_SRC=y"-modus (brukt i RHEL), som legger til ytterligere grensekontroller til memcpy()-funksjonen, begrenses operasjonen til en nødstopp (kjernen får panikk). Hvis det kjøres uten ytterligere kontroller og hvis informasjon om kanari-taggene som brukes for å beskytte stabelen lekkes, kan problemet utnyttes for ekstern kjøring av kode med kjernerettigheter. Forskerne som identifiserte problemet hevder at utnyttelsesteknikken er triviell og vil bli avslørt etter den omfattende elimineringen av sårbarheten i distribusjoner.

Sårbarheten er forårsaket av en stackoverflyt som oppstår ved behandling av pakker, verdien av feltet med antall domenemedlemsnoder som overstiger 64. For å lagre nodeparametere i tipc.ko-modulen, en fast array “u32 members[64 ]” brukes, men i prosessen med å behandle det spesifiserte i pakken. Nodenummeret sjekker ikke verdien til "member_cnt", som gjør at verdier større enn 64 kan brukes for kontrollert overskriving av data i minneområdet neste til "dom_bef"-strukturen på stabelen.

Feilen som førte til sårbarheten ble introdusert 15. juni 2016 og ble inkludert i Linux 4.8-kjernen. Sårbarheten ble adressert i Linux-kjerneversjoner 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 og 4.9.301. I kjernene til de fleste distribusjoner forblir problemet uløst: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

TIPC-protokollen ble opprinnelig utviklet av Ericsson, designet for å organisere kommunikasjon mellom prosesser i en klynge og aktiveres hovedsakelig på klyngenoder. TIPC kan operere over enten Ethernet eller UDP (nettverksport 6118). Ved arbeid over Ethernet kan angrepet utføres fra det lokale nettverket, og ved bruk av UDP, fra det globale nettverket dersom porten ikke er dekket av en brannmur. Angrepet kan også utføres av en uprivilegert lokal bruker av verten. For å aktivere TIPC, må du laste ned tipc.ko-kjernemodulen og konfigurere bindingen til nettverksgrensesnittet ved å bruke netlink eller tipc-verktøyet.

Kilde: opennet.ru

Legg til en kommentar