Dobësi në distancë në zbatimin e protokollit TIPC në kernelin Linux

Një dobësi kritike (CVE-2021-43267) është identifikuar në zbatimin e protokollit të rrjetit TIPC (Transparent Inter-process Communication) të ofruar në kernel Linux, i cili ju lejon të ekzekutoni nga distanca kodin tuaj me privilegje kernel duke dërguar një të projektuar posaçërisht paketën e rrjetit. Rreziku i problemit zbutet nga fakti se sulmi kërkon aktivizimin e qartë të mbështetjes TIPC në sistem (ngarkimi dhe konfigurimi i modulit të kernelit tipc.ko), i cili nuk bëhet si parazgjedhje në shpërndarjet jo të specializuara të Linux.

Protokolli TIPC është mbështetur që nga kernel 3.19 Linux, por kodi që çon në dobësi u përfshi në kernel 5.10. Dobësia është rregulluar në kernel 5.15.0, 5.10.77 dhe 5.14.16. Problemi shfaqet dhe nuk është rregulluar ende në Debian 11, Ubuntu 21.04/21.10, SUSE (në degën SLE15-SP4 ende të pa lëshuar), RHEL (nuk është ende e detajuar nëse rregullimi i cenueshëm është raportuar prapa) dhe Fedora. Përditësimi i kernelit tashmë është lëshuar për Arch Linux. Shpërndarjet me një kernel më të vjetër se 5.10, si Debian 10 dhe Ubuntu 20.04, nuk preken nga problemi.

Protokolli TIPC u zhvillua fillimisht nga Ericsson, i krijuar për të organizuar komunikimin ndër-procesor në një grup dhe aktivizohet kryesisht në nyjet e grupimit. TIPC mund të funksionojë ose përmes Ethernetit ose UDP (porta e rrjetit 6118). Kur punoni mbi Ethernet, sulmi mund të kryhet nga rrjeti lokal, dhe kur përdorni UDP, nga rrjeti global nëse porti nuk mbulohet nga një mur zjarri. Sulmi mund të kryhet gjithashtu nga një përdorues lokal i paprivilegjuar i hostit. Për të aktivizuar TIPC, duhet të shkarkoni modulin e kernelit tipc.ko dhe të konfiguroni lidhjen me ndërfaqen e rrjetit duke përdorur netlink ose programin tipc.

Dobësia manifestohet në funksionin tipc_crypto_key_rc dhe shkaktohet nga mungesa e verifikimit të duhur të korrespondencës midis të dhënave të specifikuara në kokë dhe madhësisë aktuale të të dhënave kur analizohen paketat me llojin MSG_CRYPTO, të përdorura për të marrë çelësat e enkriptimit nga nyjet e tjera në grup me qëllim të deshifrimit të mëvonshëm të 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 kokës, por pa marrë parasysh madhësinë aktuale të emrit të algoritmit të kriptimit dhe përmbajtjes së çelësi i transmetuar në mesazh. Supozohet se madhësia e emrit të algoritmit është fikse, dhe një atribut i veçantë me madhësinë i kalohet gjithashtu çelësit, dhe një sulmues mund të specifikojë një vlerë në këtë atribut që ndryshon nga ajo aktuale, e cila do të çojë në shkrimin e bishti i mesazhit përtej tamponit të caktuar. struct tipc_aead_key { char alg_name[TIPC_AEAD_ALG_NAME]; i panënshkruar int keylen; /* në bajt */ tasti char[]; };

Dobësi në distancë në zbatimin e protokollit TIPC në kernelin Linux


Burimi: opennet.ru

Shto një koment