Ua fa'ailoa mai e Qualys se vaivaiga (CVE-2021-4034) i totonu o le vaega o le Polkit (sa ta'ua muamua o le PolicyKit), lea e fa'aaogaina i tufatufaga e fa'ataga ai tagata fa'aoga e le'i fa'apitoa e fa'atino gaioiga e mana'omia ai aia tatau maualuga. O le vaivaiga e mafai ai e se tagata fa'aoga i le lotoifale e le'i fa'apitoa ona fa'ateleina a latou aia tatau e fa'aoga ai le root ma maua le pulea atoatoa o le faiga. O le fa'afitauli, ua faaigoaina o le PwnKit, e iloga i le atina'eina o se exploit galue e galue i le fa'atulagaga masani i le tele o tufatufaga. Linux.
O le faʻafitauli o loʻo i ai i le PolKit's pkexec utility, lea e sau ma le fuʻa aʻa SUID ma ua mamanuina e faʻatautaia ai faʻatonuga ma avanoa o se isi tagata faʻaoga e tusa ai ma tulafono faʻapitoa PolKit. Ona o le le sa'o o le fa'afoeina o fa'aupuga o le laina fa'atonu na tu'uina atu i le pkexec, e mafai e se tagata fa'apitoa ona fa'aogaina le fa'amaoni ma mafua ai ona fa'agasolo le latou code e avea ma a'a, tusa lava po'o le a le fa'atonuga o tulafono fa'atonu. Mo se osofaʻiga, e le afaina po o le a le faʻatulagaga ma tapulaʻa o loʻo faʻamaonia i PolKit, ua lava le faʻatulagaina o le aʻa o le SUID mo le faila faila ma le aoga pkexec.
E le siakiina e le Pkexec le aoga o le numera o finauga o le laina poloaiga (argc) na tuŹ»uina atu pe a amata se faiga. Na manatu le au atiaŹ»e o le pkexec o le uluaŹ»i ulufale o le argv array e iai lava le igoa o le faiga (pkexec), ma o le lona lua o le NULL poŹ»o le igoa o le poloaiga na faŹ»alauiloa e ala i le pkexec. Talu ai o le numera o finauga e leŹ»i siakiina e faŹ»asaga i mea moni o loŹ»o i totonu o le array ma e manatu e sili atu i le 1 i taimi uma, afai e tuŹ»uina atu se argv array gaogao i le faiga, lea e faŹ»atagaina e le execve function i totonu Linux, na fa'aaogaina e pkexec le NULL o le finauga muamua (le igoa o le fa'agasologa), ma le manatua e mulimuli mai i le fa'ai'uga o le buffer o le vaega o totoe o le fa'asologa. |āāā+āāā+āāāāā|āāāā+āāā+āāā| | argv[0] | argv[1] | ⦠| argv[argc] | envp[0] | envp[1] | ⦠| envp[envc] | |ā-|ā-+ā-|ā-+āā+āā|āā|ā-|ā-+ā-|ā-+āā+āā|āā| VVVVVVV "polokalame" "-option" NULL "taua" "PATH=igoa" NULL
O le faʻafitauli o le a maeʻa le argv array o loʻo i ai se envp array i le manatua o loʻo i ai suiga o le siosiomaga. O lea la, afai o le argv array e gaogao, pkexec aveese faʻamatalaga e uiga i le faʻatonuga o loʻo faʻatautaia ma tulaga maualuga mai le elemene muamua o le laina faʻatasi ai ma fesuiaiga o le siosiomaga (argv [1] ua tutusa ma envp [0]), o mea e mafai ona pulea. e le tagata osofaia.
O le mauaina o le tau o le argv[1], e taumafai le pkexec, i le amanaia o ala faila i le PATH, e fuafua le ala atoa i le faila faila ma tusi se faasinoala i le manoa ma le ala atoa i tua i argv[1], lea e taʻitaʻia ai le soloia o le tau o le suiga muamua o le siosiomaga, talu ai argv[1] e tutusa ma envp[0]. E ala i le faʻaogaina o le igoa o le suiga muamua o le siosiomaga, e mafai e le tagata osofaʻi ona suitulaga i se isi fesuiaiga o le siosiomaga i pkexec, mo se faʻataʻitaʻiga, sui le "LD_PRELOAD" fesuiaiga o le siosiomaga, lea e le faʻatagaina i suid polokalame, ma faʻatulaga a latou faletusi faʻasoa e utaina i totonu o le faiga.
O le fa'aogaina o galuega e aofia ai le suitulaga o le GCONV_PATH fesuia'i, lea e fa'aaogaina e fuafua ai le ala i le fa'ailoga transcoding faletusi, fa'atumuina fa'amalosi pe a vala'au i le g_printerr() galuega, o le fa'ailoga lea e fa'aaoga ai iconv_open(). E ala i le toe faʻamalamalamaina o le ala i le GCONV_PATH, e mafai e le tagata osofaʻi ona faʻamautinoa e le o le faletusi iconv masani o loʻo faʻapipiʻiina, ae o lana lava faletusi, o le a faʻataunuʻuina le au faʻatonu pe a faʻaalia se feʻau sese i le tulaga o loʻo faʻaauau pea le pkexec. aia tatau a'a ma a'o le'i fa'alauiloa fa'atagaga e siaki.
Ua matauina, e ui lava i le mea moni e mafua le faʻafitauli i le faʻaleagaina o le manatua, e mafai ona faʻaaogaina ma le faʻatuatuaina ma le toe faia e tusa lava po o le a le fausaga o masini faʻapitoa na faʻaaogaina. O le faʻaaogaina na saunia na faʻataʻitaʻiina ma le manuia i le Ubuntu, Debian, Fedora ma CentOS, ae e mafai fo'i ona fa'aaogaina i isi tufatufaga. O le fa'aaogaina muamua e le'i maua lautele, o lona uiga e faigofie ma e faigofie ona toe faia e isi tagata su'esu'e. O le mea lea, e taua le fa'apipi'iina o le patch i se taimi vave e mafai ai i luga o faiga e tele tagata fa'aoga. E maua fo'i le Polkit mo faiga BSD ma Solaris, ae e le'i su'esu'eina le fa'aaogaina i luga o ia mea. Ua na'o le iloa e le mafai ona fa'atinoina le osofa'iga i luga o le OpenBSD, aua e le fa'atagaina e le kernel OpenBSD se tau zero argc e tu'uina atu i le vala'au execve().
Ua i ai le faʻafitauli talu mai Me 2009, ina ua faʻaopoopoina le poloaiga pkexec. O loʻo maua nei se faʻaleleia mo le vaivaiga i le PolKit o se patch (e leai se faʻasaʻoga faʻasaʻo ua faʻalauiloa), ae talu ai na logoina muamua le au atiaʻe tufatufaina i le faʻafitauli, o le tele o tufatufaina na lolomiina se faʻafouga i le taimi e tasi ma le faʻalauiloaina o le vaivaiga. Ua faʻaleleia le faʻafitauli i le RHEL 6/7/8. Debian, Ubuntu, openSUSE, SUSE, Fedora, ALT Linux, ROSA, Gentoo, Leai se aoga Linux, Arch Linux ma Manjaro. I le avea ai o se fuafuaga le tumau e poloka ai le vaivaiga, e mafai ona e aveese le fu'a a'a SUID mai le polokalame /usr/bin/pkexec ("chmod 0755 /usr/bin/pkexec").
puna: opennet.ru
