Zelalbûna kernel Linux VFS ku destûrê dide zêdekirina îmtiyazê

Di API-ya Têkoşîna Pelê ya ku ji hêla kernel Linux ve hatî peyda kirin de qelsiyek (CVE-2022-0185) hate nas kirin, ku destûrê dide bikarhênerek herêmî ku li ser pergalê îmtiyazên root bigire. Lekolînerê ku pirsgirêk nas kir, xwenîşandanek îstismarek weşand ku dihêle hûn kodê wekî root li Ubuntu 20.04-ê di veavakirina xwerû de bicîh bikin. Koda îstîsmarê tê plan kirin ku di nav hefteyekê de li ser GitHub were şandin piştî ku belavok nûvekirinek ku qelsiyê rast dike derxist.

Zelalbûn di fonksiyona legacy_parse_param() ya VFS-ê de heye û ji ber têkçûna bi rêkûpêk kontrolkirina mezinahiya herî zêde ya parametreyên ku li ser pergalên pelan ên ku piştgirî nadin API-ya Têkoşîna Filesystemê têne peyda kirin pêk tê. Derbaskirina parametreyek ku pir mezin e dikare bibe sedema zêdebûnek guhêrbara yekjimar ku ji bo hesabkirina mezinahiya daneya ku tê nivîsandin tê bikar anîn - koda kontrolek zêde ya tampon "eger (len > PAGE_SIZE - 2 - mezinahî)" heye, ku nayê heke nirxa mezinbûnê ji 4094 mezintir be bixebite. ji bo serhejmariya yekjimar di binê sînorê jêrîn de (hejmarek binerdî, dema ku 4096 - 2 - 4095 diavêje întên bê îmze, encam 2147483648 e).

Ev xeletî dihêle, dema ku meriv xwe bigihîne wêneyek pergala pelê ya taybetî hatî sêwirandin, ku bibe sedema zêdebûnek tampon û daneyên kernelê li dû qada bîranînê ya veqetandî binivîsîne. Ji bo îstismarkirina lawaziyê, divê hûn xwediyê mafên CAP_SYS_ADMIN bin, yanî. hêzên rêveber. Pirsgirêk ev e ku bikarhênerek bêdestûr dikare di konteynirek veqetandî de destûrnameyên weha werbigire ger ku pergalê piştgirî ji cîhên navên bikarhêner çalak bike. Mînakî, cîhên navên bikarhêner li ser Ubuntu û Fedora ji hêla xwerû ve têne çalak kirin, lê li ser Debian û RHEL nayê çalak kirin (heya ku platformên veqetandina konteynerê neyên bikar anîn).

Pirsgirêk ji kernel Linux 5.1 derketiye û di nûvekirinên duh 5.16.2, 5.15.16, 5.10.93, 5.4.173 de hate rast kirin. Nûvekirinên pakêtê yên ku qelsiyê rast dikin jixwe ji bo RHEL, Debian, Fedora, û Ubuntu hatine berdan. Rastkirin hîn li Arch Linux, Gentoo, SUSE û openSUSE peyda nabe. Wekî çareseriyek ewlehiyê ji bo pergalên ku veqetandina konteyneran bikar naynin, hûn dikarin nirxa sysctl "user.max_user_namespaces" li ser 0 destnîşan bikin: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

Source: opennet.ru

Add a comment