Kwetsberens yn it Linux Netfilter kernel subsysteem

In kwetsberens (CVE-2021-22555) is identifisearre yn Netfilter, in subsysteem fan 'e Linux-kernel dy't brûkt wurdt om netwurkpakketten te filterjen en te wizigjen, wêrtroch in lokale brûker root-privileezjes op it systeem kin krije, ynklusyf yn in isolearre kontener. In wurkjend prototype fan in eksploitaasje dy't de KASLR-, SMAP- en SMEP-beskermingsmeganismen omgiet is taret foar testen. De ûndersiker dy't de kwetsberens ûntduts krige in beleanning fan $ 20 fan Google foar it identifisearjen fan in metoade om it isolearjen fan Kubernetes-konteners yn in kCTF-kluster te omgean.

It probleem bestiet sûnt kernel 2.6.19, útbrocht 15 jier lyn, en wurdt feroarsake troch in brek yn de IPT_SO_SET_REPLACE en IP6T_SO_SET_REPLACE handlers dy't feroarsaket in buffer oerstreaming by it ferstjoeren fan spesjaal opmakke parameters fia in setsockopt oprop yn compat modus. Under normale omstannichheden, allinnich de root brûker kin meitsje in oprop oan compat_setsockopt (), mar de privileezjes nedich foar in útfiere de oanfal kin ek krigen wurde troch in unprivileged brûker op systemen mei stipe foar brûkersnammeromten ynskeakele.

In brûker kin in kontener meitsje mei in aparte root-brûker en de kwetsberens fan dêrút eksploitearje. Bygelyks, "brûkersnammeromten" is standert ynskeakele op Ubuntu en Fedora, mar net ynskeakele op Debian en RHEL. De patch dy't de kwetsberens reparearret, waard op 13 april oannaam yn 'e Linux-kernel. Pakketupdates binne al generearre troch de Debian, Arch Linux en Fedora-projekten. Yn Ubuntu, RHEL en SUSE binne updates yn tarieding.

It probleem komt foar yn de xt_compat_target_from_user () funksje fanwege ferkearde berekkening fan it ûnthâld grutte by it bewarjen fan kernel struktueren nei bekearing fan 32-bit nei 64-bit fertsjintwurdiging. De brek lit fjouwer nulbytes skreaun wurde nei elke posysje bûten de tawiisde buffer begrinze troch offset 0x4C. Dizze funksje die bliken genôch te wêzen om in eksploitaasje te meitsjen wêrtroch ien rootrjochten koe krije - troch it wiskjen fan de m_list->next pointer yn 'e msg_msg-struktuer, waarden betingsten makke foar tagong ta gegevens nei it befrijen fan ûnthâld (use-na-fergees), wat waard doe brûkt om ynformaasje te krijen oer adressen en feroarings oan oare struktueren troch manipulaasje fan de msgsnd () systeemoprop.

Boarne: opennet.ru

Add a comment