A'a vaivai i le fatu Linux ma le teenaina o le auaunaga i le systemd

O tagata suʻesuʻe saogalemu mai Qualys ua faʻaalia faʻamatalaga o ni faʻafitauli se lua e aʻafia ai le fatu Linux ma le systemd system manager. O se fa'aletonu i totonu o le fatu (CVE-2021-33909) e mafai ai e se tagata fa'aoga i le lotoifale ona ausia le fa'atinoina o tulafono fa'atasi ma aia tatau a'a e ala i le fa'aogaina o fa'atonuga sili ona fa'aputu.

O le lamatiaga o le faʻafitauli e faʻateleina ona o le mea moni na mafai e le au suʻesuʻe ona saunia galuega faʻaogaina e galue i le Ubuntu 20.04 / 20.10 / 21.04, Debian 11 ma Fedora 34 i le faʻaogaina le faʻaogaina. O loʻo maitauina o isi tufatufaga e leʻi faʻataʻitaʻiina, ae o loʻo faʻataʻitaʻia foi e aʻafia i le faʻafitauli ma e mafai ona osofaʻia. O le numera atoa o le faʻaogaina o loʻo folafola mai e faʻasalalau pe a uma ona faʻaumatia le faʻafitauli i soʻo se mea, ae mo le taimi nei naʻo se faʻataʻitaʻiga o le faʻatapulaʻaina o galuega o loʻo avanoa, ma mafua ai ona paʻu le faiga. O le faʻafitauli o loʻo iai talu mai Iulai 2014 ma aʻafia ai faʻamalolo fatu e amata mai le 3.16. O le faʻafitauli faʻafitauli na faʻamaopoopoina ma le alalafaga ma talia i totonu ole fatu ile Iulai 19th. O faʻasalalauga autu ua uma ona faʻaleleia faʻafouga i a latou pusa fatu (Debian, Ubuntu, Fedora, RHEL, SUSE, Arch).

O le fa'aletonu e mafua ona o le le mafai ona siaki le fa'ai'uga o le size_t i le int liua a'o le'i fa'atinoina galuega i le seq_file code, lea e fatuina ai faila mai se fa'asologa o fa'amaumauga. O le le mafai ona siaki e ono i'u ai i fafo-o- tuaoi tusi i le pa puipui pe a fatuina, faʻapipiʻi, ma tapeina se fausaga faʻapipiʻi faʻapipiʻi (le tele o le ala e sili atu i le 1 GB). O se taunuuga, e mafai e se tagata osofaʻi ona ausia se manoa 10-byte "//deleted" tusia i se faʻasalaga o le "-2 GB - 10 bytes" faʻasino i le vaega i luma atu o le paʻu tuʻufaʻatasia.

O le faʻaogaina saunia e manaʻomia ai le 5 GB o le manatua ma le 1 miliona inodes saoloto e faʻaogaina. O le faʻaogaina e galue e ala i le valaʻau mkdir() e fatu ai se faʻatonuga o le tusa ma le miliona subdirectories e ausia ai se faila ala tele e sili atu i le 1 GB. O lenei lisi o loʻo faʻapipiʻiina e ala i le bind-mount i se isi igoa ole igoa, a maeʻa ona faʻatautaia le galuega rmdir () e aveese ai. I se tulaga tutusa, ua faia se filo e utaina ai se polokalame eBPF laʻititi, lea e poloka i le tulaga pe a uma ona siaki le pseudocode eBPF, ae aʻo leʻi tuʻufaʻatasia le JIT.

I totonu ole igoa ole igoa ole igoa ole igoa, ua tatalaina le faila /proc/self/mountinfo ma faitau le igoa umi o le lisi o loʻo faʻapipiʻiina, ma mafua ai ona tusia le manoa "//delete" i le vaega aʻo leʻi amataina le pa. O le tulaga mo le tusiaina o le laina e filifilia ina ia toe faʻaaogaina le faatonuga i le polokalame eBPF ua uma ona faʻataʻitaʻiina ae e leʻi tuʻufaʻatasia.

O le isi, i le polokalame eBPF, o tusitusiga e le'i fa'atonutonuina i fafo e fa'aliliuina i le fa'atonutonuina o le faitau ma le tusitusi i isi fatu fatu e ala i le fa'aogaina o fausaga btf ma map_push_elem. O le iʻuga, o le faʻaogaina e fuafua ai le nofoaga o le modprobe_path [] paʻu i le fatu memory ma faʻauluina le "/ sbin / modprobe" ala i totonu, lea e mafai ai ona e amataina le faʻalauiloaina o soʻo se faila faila ma aia tatau pe a tupu se request_module() valaau, lea e faʻatinoina, mo se faʻataʻitaʻiga, pe a fatuina netlink socket.

E tu'uina atu e le au su'esu'e le tele o fofo e aoga mo na'o se fa'aoga fa'apitoa, ae aua le fa'ate'aina le fa'afitauli lava ia. E fautuaina le setiina o le "/proc/sys/kernel/unprivileged_userns_clone" i le 0 e faʻamalo ai le faʻapipiʻiina o faʻatonuga i se isi igoa ID ID, ma le "/proc/sys/kernel/unprivileged_bpf_disabled" i le 1 e faʻamalo ai le utaina o polokalame eBPF i totonu o le fatu.

E maitauina a o suʻesuʻeina se isi osofaʻiga e aofia ai le faʻaogaina o le masini FUSE nai lo le fusifusia-mound e faʻapipiʻi ai se lisi tele, na maua ai e le au suʻesuʻe se isi faʻafitauli (CVE-2021-33910) e aʻafia ai le systemd system manager. Na aliali mai pe a taumafai e faʻapipiʻi se lisi ma se auala e sili atu i le 8 MB e ala i le FUSE, o le faʻatonuga o le amataga o le faagasologa (PID1) e alu ese mai le faʻaputuga manatua ma faʻalavelave, lea e tuʻu ai le faiga i se tulaga "popole".

O le faʻafitauli o le systemd tracks ma faʻasalalau mea o loʻo i totonu o / proc / self / mountinfo, ma faʻagaoioia nofoaga taʻitasi i le iunite_name_path_escape() galuega, lea e faia ai se strdupa () faʻagaioiga e tuʻu ai faʻamaumauga i luga o le faaputuga nai lo le faʻaogaina o le mafaufau. . Talu ai e fa'atapula'aina le tele o fa'aputuga e ala i le RLIMIT_STACK, o le fa'agaioia tele o se ala i le mauga e mafua ai ona pa'u le PID1 ma taofi le faiga. Mo se osofaʻiga, e mafai ona e faʻaogaina le module FUSE sili ona faigofie faʻatasi ma le faʻaaogaina o se lisi faʻapipiʻi maualuga e pei o se mauga, o le ala e sili atu i le 8 MB.

O le faʻafitauli o loʻo faʻaalia talu mai le systemd 220 (Aperila 2015), ua uma ona faʻapipiʻiina i totonu o le fale teu oloa autu ma faʻamautu i tufatufaga (Debian, Ubuntu, Fedora, RHEL, SUSE, Arch). Aemaise lava, i le systemd release 248 e le aoga le faʻaogaina ona o se pusa i le code systemd e mafua ai ona le manuia le gaosiga o /proc/self/mountinfo. E manaia foi i le 2018, o se tulaga talitutusa na tulaʻi mai ma aʻo taumafai e tusi se faʻaoga mo le CVE-2018-14634 vaivai i le fatu Linux, na maua ai e le au suʻesuʻe Qualys ni faʻafitauli ogaoga se tolu i le systemd.

puna: opennet.ru

Faaopoopo i ai se faamatalaga