Etähaavoittuvuus TIPC-protokollan toteutuksessa Linux-ytimessä

Kriittinen haavoittuvuus (CVE-2021-43267) on tunnistettu Linux-ytimen mukana toimitetussa TIPC-verkkoprotokollassa (Transparent Inter-process Communication), jonka avulla voit suorittaa koodisi etänä ytimen oikeuksilla lähettämällä erityisesti suunnitellun verkkopaketti. Ongelman vaaraa lieventää se, että hyökkäys edellyttää TIPC-tuen eksplisiittistä käyttöönottoa järjestelmässä (tipc.ko-ydinmoduulin lataaminen ja konfigurointi), mitä ei ole oletusarvoisesti tehty erikoistumattomissa Linux-jakeluissa.

TIPC-protokollaa on tuettu Linux-ytimen versiosta 3.19 lähtien, mutta haavoittuvuuteen johtava koodi sisällytettiin ytimeen 5.10. Haavoittuvuus on korjattu ytimissä 5.15.0, 5.10.77 ja 5.14.16. Ongelma ilmenee, eikä sitä ole vielä korjattu Debian 11:ssä, Ubuntu 21.04/21.10:ssä, SUSE:ssa (ei vielä julkaistu SLE15-SP4-haarassa), RHEL:ssä (ei ole vielä tarkennettua, onko haavoittuva korjaus siirretty takaisin) ja Fedora. Ytimen päivitys on jo julkaistu Arch Linuxille. Ongelma ei vaikuta jakeluihin, joiden ydin on vanhempi kuin 5.10, kuten Debian 10 ja Ubuntu 20.04.

TIPC-protokollan on alun perin kehittänyt Ericsson. Se on suunniteltu järjestämään prosessien välinen viestintä klusterissa ja se aktivoituu pääasiassa klusterin solmuissa. TIPC voi toimia joko Ethernetin tai UDP:n kautta (verkkoportti 6118). Ethernetin kautta työskennellessä hyökkäys voidaan suorittaa paikallisverkosta ja UDP:tä käytettäessä globaalista verkosta, jos porttia ei peitä palomuuri. Hyökkäyksen voi suorittaa myös isäntäkoneen etuoikeutettu paikallinen käyttäjä. Aktivoidaksesi TIPC:n, sinun on ladattava tipc.ko-ydinmoduuli ja määritettävä sidos verkkoliitäntään netlinkin tai tipc-apuohjelman avulla.

Haavoittuvuus ilmenee tipc_crypto_key_rc-funktiossa ja johtuu siitä, että otsikossa määritellyn tiedon ja todellisen koon välistä vastaavuutta ei ole varmistettu kunnolla jäsennettäessä paketteja MSG_CRYPTO-tyypillä, jota käytetään salausavaimien hankkimiseen muista solmuista. klusterissa näistä solmuista lähetettyjen viestien myöhempää salauksen purkamista varten. Muistiin kopioitujen tietojen koko lasketaan sanoman koon ja otsikon koon sisältävien kenttien arvojen erotuksena, mutta ottamatta huomioon salausalgoritmin nimen todellista kokoa ja salausalgoritmin sisältöä. viestissä lähetetty avain. Oletetaan, että algoritmin nimen koko on kiinteä ja avaimelle välitetään lisäksi erillinen koko, ja hyökkääjä voi määrittää tälle attribuutille todellisesta poikkeavan arvon, mikä johtaa viestin loppuosa varatun puskurin yli. struct tipc_aead_key { char alg_name[TIPC_AEAD_ALG_NAME]; allekirjoittamaton int keylen; /* tavuina */ merkkinäppäin[]; };

Etähaavoittuvuus TIPC-protokollan toteutuksessa Linux-ytimessä


Lähde: opennet.ru

Lisää kommentti