Në realizimin e protokollit të rrjetit TIPC (Transparent Inter-process Communication) që është në bërthamat Linux është zbuluar një dobësi kritike (CVE-2021-43267), e cila mundëson ekzekutimin e kodit të përdoruesit me privilegje bërthamorë përmes dërgimit të një pakete rrjeti të formatuar posaçërisht. Rreziku i këtij problemi është i zbutur nga fakti se për të kryer një sulm kërkohet që mbështetja për TIPC të jetë aktivizuar në sistem (ngarkimi dhe konfigurimi i modulit bërthamor tipc.ko), gjë që nuk ndodh automatikisht në shpërndarjet e zakonshme të Linux.
Protokolli TIPC mbështetet që nga bërthama Linux 3.19, por kodi që çon në dobësinë u përfshi në bërthamën 5.10. Dobësia është eliminua në bërthamat 5.15.0, 5.10.77 dhe 5.14.16. Problemi i manifestohen dhe ende nuk është eliminuar në Debian 11, Ubuntu 21.04/21.10, SUSE (në degën e pabërë të SLE15-SP4), RHEL (ende nuk është specifikuar nëse është bërë backport i rregullimit të dobësisë) dhe Fedora. Një përditësim i bërthamat është lëshuar tashmë për Arch Linux. Shpërndarjet me bërthama më të vjetra se 5.10, si Debian 10 dhe Ubuntu 20.04, nuk preken nga ky problem.
Protokolli TIPC fillimisht është zhvilluar nga kompania Ericsson, dhe është i destinuar për organizimin e ndërveprimit midis proceseve në një klaster dhe aktivizohet kryesisht në nyjat e klastereve. TIPC mund të punojë si mbi Ethernet ashtu edhe mbi UDP (porti rrjet 6118). Në rastin e funksionimit mbi Ethernet, sulmi mund të kryhet nga rrjeti lokal, ndërsa kur përdoret UDP - nga rrjeti global, nëse porta nuk është mbrojtur nga një firewall. Sulmi gjithashtu mund të kryhet nga një përdorues lokal pa privilegje në host. Për aktivizimin e TIPC është e nevojshme ngarkimi i modulit bërthamor tipc.ko dhe konfigurimi i lidhjes me ndërfaqen rrjetore përmes netlink ose mjetit tipc.
Vulnerabiliteti shfaqet në funksionin tipc_crypto_key_rc dhe shkaktohet nga mungesa e kontrollit të duhur të përputhjes midis madhësisë së specifikuar në krye dhe asaj aktuale të të dhënave gjatë analizës së pakove me tipin MSG_CRYPTO, që përdoren për të marrë çelësa të enkriptimit nga nyja të tjera në klaster me qëllim dekryptimin e mesazheve të dërguara nga këto nyje. Madhësia e të dhënave të kopjuara në memorie llogaritet si diferenca midis vlerave të fushave me madhësinë e mesazhit dhe madhësinë e krye, por pa marrë parasysh madhësinë reale të emrit të algoritmit të enkriptimit dhe përmbajtjen e çelësit që kalon në mesazh. Supozohët se madhësia e emrit të algoritmit është fikse, dhe për çelësin, për të moshuarit, modulus ia kalon një atribut të veçantë me madhësinë, dhe sulmuesi mund të tregojë në këtë atribut një vlerë të ndryshme nga ajo reale, e cila do të çojë në shkruajturin e hendekut të mesazhit përtej buffers së caktuar. struct tipc_aead_key { char alg_name[TIPC_AEAD_ALG_NAME]; unsigned int keylen; /* në byte */ char key[]; };

Burimi: opennet.ru
