Natuklasan nila ang isang kahinaan sa subsystem ng Linux eBPF

Kamakailan-lamang na ang balita ay sinira iyon ang isang kahinaan ay nakilala (CVE-2021-29154) sa subsystem ng eBPF, na pPinapayagan kang magpatakbo ng pagsubaybay, subsystem analysis, at mga kontrol sa kontrol ng trapiko na tumatakbo sa loob ng Linux kernel sa isang espesyal na JIT virtual machine na Pinapayagan ang isang lokal na gumagamit na patakbuhin ang iyong code sa antas ng kernel.

Ayon sa mga mananaliksik na kinilala ang kahinaan, nagawa nilang bumuo ng isang gumaganang prototype ng isang pagsasamantala para sa 86-bit at 32-bit x64 na mga system na maaaring magamit ng isang hindi sikat na gumagamit.

Kasabay nito, Sinabi ng Red Hat na ang kalubhaan ng problema ay nakasalalay sa pagkakaroon ng tawag sa system ng eBPF. para sa gumagamit. Halimbawa, sa RHEL at karamihan sa iba pang mga pamamahagi ng Linux bilang default, maaaring magamit ang kahinaan kapag pinagana ang BPF JIT at ang gumagamit ay may mga karapatan sa CAP_SYS_ADMIN.

Ang isang problema ay natuklasan sa kernel ng Linux na maaari nilang abusuhin
mga lokal na gumagamit na hindi pribelehiyo upang palakihin ang mga pribilehiyo.

Ang problema ay kung paano makalkula ang mga tagataguyod ng BPF JIT para sa ilang mga arkitektura
Mga offset ng sanga kapag bumubuo ng machine code. Maaari itong abusuhin
upang lumikha ng maanomalyang machine code at patakbuhin ito sa kernel mode,
kung saan ang daloy ng kontrol ay na-hijack upang magpatupad ng insecure code.

At ito ay na idetalye nila iyon ang problema ay sanhi ng isang error na nabuo kapag kinakalkula ang offset ng mga tagubilin sa pagsasanga sa panahon ng JIT tagatala na bumubuo ng machine code.

Sa partikular, nabanggit na kapag bumubuo ng mga tagubilin sa sangay, hindi ito isinasaalang-alang na ang pagbabago ay maaaring magbago pagkatapos dumaan sa yugto ng pag-optimize, kaya't ang kabiguang ito ay maaaring magamit upang makabuo ng maanomalyang machine code at ipatupad ito sa kernel.

Dapat itong nabanggit na Hindi lamang ito ang kahinaan sa subsystem ng eBPF na naging kilala sa mga nagdaang taon, dahil sa pagtatapos ng Marso, dalawa pang mga kahinaan ang nakilala sa kernel (CVE-2020-27170, CVE-2020-27171), na nagbibigay ng kakayahang gumamit ng eBPF upang ma-bypass ang proteksyon laban sa mga kahinaan ng klase ng Spectre, na nagpapahintulot sa nilalaman ng kernel memory na matukoy at kung aling mga resulta sa paglikha ng mga kundisyon para sa haka-haka na pagpapatupad ng ilang mga pagpapatakbo.

Ang pag-atake ng Spectre ay nangangailangan ng pagkakaroon ng isang tukoy na pagkakasunud-sunod ng mga utos sa may pribilehiyong code, na hahantong sa haka-haka na pagpapatupad ng mga tagubilin. Sa eBPF, maraming mga paraan ang natagpuan upang makabuo ng mga naturang tagubilin sa pamamagitan ng mga manipulasyon sa mga programang BPF na naihatid para sa kanilang pagpapatupad.

  • Ang kahinaan ng CVE-2020-27170 ay sanhi ng mga manipulasyong pointer sa checkup ng BPF, na nagdudulot ng mga pagpapatakbo ng haka-haka na ma-access ang isang lugar sa labas ng buffer.
  • Ang kahinaan ng CVE-2020-27171 ay nauugnay sa isang integer underflow bug kapag nagtatrabaho sa mga payo, na humahantong sa haka-haka na pag-access sa out-of-buffer data.

Ang mga isyung ito ay naayos na sa mga bersyon ng kernel na 5.11.8, 5.10.25, 5.4.107, 4.19.182, at 4.14.227, at isinama sa mga pag-update ng kernel para sa karamihan ng mga pamamahagi ng Linux. Inihanda ng mga mananaliksik ang isang pagsamantalahan na prototype na nagpapahintulot sa isang hindi sikat na gumagamit na kunin ang data mula sa memorya ng kernel.

Tulad ng para sa isa sa mga solusyon na iminungkahi sa loob ng Red Hat ay:

Pagpapagaan:

Ang problemang ito ay hindi nakakaapekto sa karamihan ng mga system bilang default. Kailangang payagan ng isang administrator ang BPF JIT na maapektuhan.

Maaari itong ma-disable kaagad sa utos:

# echo 0 > /proc/sys/net/core/bpf_jit_enable

O maaari itong hindi paganahin para sa lahat ng kasunod na mga bota ng system sa pamamagitan ng pagtatakda ng isang halaga sa /etc/sysctl.d/44-bpf -jit-disable

## start file ##
net.core.bpf_jit_enable=0</em>
end file ##

Sa wakas kung interesado kang malaman ang tungkol dito tungkol sa kahinaan na ito, maaari mong suriin ang mga detalye sa ang sumusunod na link.

Ito ay nagkakahalaga ng pagbanggit na ang problema ay nagpatuloy hanggang sa bersyon 5.11.12 (kasama) at hindi pa nalulutas sa karamihan ng mga pamamahagi, kahit na ang pagwawasto ay nasa lugar na. magagamit bilang isang patch.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.