Linux kernel VFS kwetsberens wêrtroch privileezje eskalaasje mooglik makket

In kwetsberens (CVE-2022-0185) is identifisearre yn 'e Filesystem Context API levere troch de Linux-kernel, wêrtroch in lokale brûker root-privileges op it systeem kin krije. De ûndersiker dy't it probleem identifisearre publisearre in demonstraasje fan in eksploitaasje wêrmei jo koade kinne útfiere as root op Ubuntu 20.04 yn 'e standertkonfiguraasje. De eksploitaasjekoade is pland om binnen in wike op GitHub te pleatsen neidat de distribúsjes in update frijlitte dy't de kwetsberens reparearje.

De kwetsberens bestiet yn 'e funksje legacy_parse_param() yn VFS en wurdt feroarsake troch in mislearring om de maksimale grutte fan parameters goed te kontrolearjen op bestânsystemen dy't de Filesystem Context API net stypje. It trochjaan fan in parameter dy't te grut is, kin in oerstreaming fan 'e heule getal fariabele feroarsaakje dy't brûkt wurdt om de grutte fan' e te skriuwen gegevens te berekkenjen - de koade hat in bufferoverflowkontrôle "if (len> PAGE_SIZE - 2 - grutte)", dy't net docht wurkje as de grutte wearde is grutter as 4094. foar integer oerstreaming troch de legere grins (integer underflow, doe't casting 4096 - 2 - 4095 to unsigned int, it resultaat is 2147483648).

Dizze flater makket it mooglik, as jo tagong krije ta in spesjaal ûntworpen triemsysteemôfbylding, in bufferoerlêst feroarsaakje en kernelgegevens oerskriuwe nei it tawiisde ûnthâldgebiet. Om de kwetsberens te eksploitearjen, moatte jo CAP_SYS_ADMIN-rjochten hawwe, d.w.s. behearder foech. It probleem is dat in net-befoarrjochte brûker sokke tagongsrjochten kin krije yn in isolearre kontener as it systeem stipe hat foar brûkersnammeromten ynskeakele. Bygelyks, brûkersnammeromten binne standert ynskeakele op Ubuntu en Fedora, mar net ynskeakele op Debian en RHEL (útsein as kontener-isolaasjeplatfoarms wurde brûkt).

It probleem is ferskynde sûnt Linux kernel 5.1 en waard reparearre yn juster updates 5.16.2, 5.15.16, 5.10.93, 5.4.173. Pakketupdates dy't de kwetsberens reparearje binne al frijjûn foar RHEL, Debian, Fedora en Ubuntu. De fix is ​​noch net beskikber op Arch Linux, Gentoo, SUSE en openSUSE. As befeiligingsoplossing foar systemen dy't gjin container-isolaasje brûke, kinne jo de sysctl "user.max_user_namespaces"-wearde op 0 ynstelle: echo "user.max_user_namespaces=0"> /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

Boarne: opennet.ru

Add a comment