Varnarleysi í VFS Linux kjarnans sem gerir þér kleift að auka réttindi þín

Veikleiki (CVE-2022-0185) hefur verið auðkenndur í Filesystem Context API sem Linux kjarnann veitir, sem gerir staðbundnum notanda kleift að fá rótarréttindi á kerfinu. Rannsakandinn sem greindi vandamálið birti sýnikennslu á hagnýtingu sem gerir þér kleift að keyra kóða sem rót á Ubuntu 20.04 í sjálfgefna stillingu. Áætlað er að nýtingarkóði verði settur á GitHub innan viku eftir að dreifingarnar gefa út uppfærslu sem lagar varnarleysið.

Varnarleysið er til staðar í legacy_parse_param() aðgerðinni í VFS og stafar af bilun í að athuga rétta hámarksstærð færibreyta sem eru til staðar á skráarkerfum sem styðja ekki Filesystem Context API. Ef færibreytan er of stór getur það valdið yfirfalli á heiltölubreytunni sem notuð er til að reikna út stærð gagna sem á að skrifa - kóðinn er með biðminni yfirflæðisathugun "ef (len > PAGE_SIZE - 2 - stærð)", sem gerir það ekki vinna ef stærðargildið er stærra en 4094. fyrir heiltöluflæði í gegnum neðri mörkin (heiltala undirflæði, þegar 4096 - 2 - 4095 er steypt í óundirritaða int, er niðurstaðan 2147483648).

Þessi villa gerir, þegar opnað er fyrir sérhönnuð skráarkerfismynd, að valda biðminni flæði og skrifa yfir kjarnagögn í kjölfar úthlutaðs minnissvæðis. Til að nýta veikleikann verður þú að hafa CAP_SYS_ADMIN réttindi, þ.e. umboð stjórnenda. Vandamálið er að notandi án forréttinda getur fengið slíkar heimildir í einangruðum íláti ef kerfið hefur stuðning við notendanafnarými virkt. Til dæmis er nafnarými notenda sjálfkrafa virkt á Ubuntu og Fedora, en ekki virkt á Debian og RHEL (nema gámaeinangrunarpallar séu notaðir).

Vandamálið hefur verið að birtast síðan Linux kjarna 5.1 og var lagað í uppfærslum gærdagsins 5.16.2, 5.15.16, 5.10.93, 5.4.173. Pakkauppfærslur sem laga varnarleysið hafa þegar verið gefnar út fyrir RHEL, Debian, Fedora og Ubuntu. Lagfæringin er ekki enn fáanleg á Arch Linux, Gentoo, SUSE og openSUSE. Sem öryggislausn fyrir kerfi sem nota ekki gámaeinangrun geturðu stillt sysctl "user.max_user_namespaces" gildið á 0: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

Heimild: opennet.ru

Bæta við athugasemd