Kwesbaarheid in die Linux Netfilter kern-substelsel

'n Kwesbaarheid (CVE-2021-22555) is geïdentifiseer in Netfilter, 'n substelsel van die Linux-kern wat gebruik word om netwerkpakkies te filter en te wysig, wat 'n plaaslike gebruiker in staat stel om wortelvoorregte op die stelsel te verkry, insluitend terwyl hy in 'n geïsoleerde houer is. 'n Werkende prototipe van 'n ontginning wat die KASLR-, SMAP- en SMEP-beskermingsmeganismes omseil, is voorberei vir toetsing. Die navorser wat die kwesbaarheid ontdek het, het 'n beloning van $20 XNUMX van Google ontvang vir die identifisering van 'n metode om die isolasie van Kubernetes-houers in 'n kCTF-groepering te omseil.

Die probleem bestaan ​​sedert kern 2.6.19, wat 15 jaar gelede vrygestel is, en word veroorsaak deur 'n fout in die IPT_SO_SET_REPLACE- en IP6T_SO_SET_REPLACE-hanteerders wat 'n bufferoorloop veroorsaak wanneer spesiaal geformateerde parameters via 'n setsockopt-oproep in compat-modus gestuur word. Onder normale omstandighede kan slegs die wortelgebruiker 'n oproep maak na compat_setsockopt(), maar die voorregte wat nodig is om die aanval uit te voer, kan ook verkry word deur 'n onbevoorregte gebruiker op stelsels met ondersteuning vir gebruikernaamruimtes geaktiveer.

'n Gebruiker kan 'n houer met 'n aparte wortelgebruiker skep en die kwesbaarheid daarvandaan ontgin. Byvoorbeeld, "gebruikersnaamruimtes" is by verstek geaktiveer op Ubuntu en Fedora, maar nie geaktiveer op Debian en RHEL nie. Die pleister wat die kwesbaarheid regstel, is op 13 April in die Linux-kern aangeneem. Pakketopdaterings is reeds deur die Debian-, Arch Linux- en Fedora-projekte gegenereer. In Ubuntu, RHEL en SUSE word opdaterings voorberei.

Die probleem kom voor in die xt_compat_target_from_user() funksie as gevolg van verkeerde berekening van die geheue grootte wanneer kernstrukture gestoor word na omskakeling van 32-bis na 64-bis voorstelling. Die fout laat vier nulgrepe toe om geskryf te word na enige posisie buite die toegewese buffer wat deur offset 0x4C begrens word. Hierdie kenmerk blyk genoeg te wees om 'n uitbuiting te skep wat 'n mens toegelaat het om wortelregte te verkry - deur die m_list->next pointer in die msg_msg-struktuur skoon te maak, is toestande geskep vir toegang tot data nadat geheue vrygestel is (use-after-free), wat is dan gebruik om inligting oor adresse en veranderinge aan ander strukture te bekom deur die manipulasie van die msgsnd()-stelseloproep.

Bron: opennet.ru

Voeg 'n opmerking