Athari katika mfumo mdogo wa eBPF unaoruhusu utekelezaji wa msimbo katika kiwango cha kinu cha Linux

Udhaifu (CVE-2021-4204) umetambuliwa katika mfumo mdogo wa eBPF, unaokuruhusu kuendesha vishikilizi ndani ya kinu cha Linux katika mashine maalum ya mtandaoni iliyo na JIT, ikiruhusu mtumiaji wa ndani ambaye hajabahatika kufikia ongezeko la upendeleo na kutekeleza nambari zao kwenye Kiwango cha kernel ya Linux. Shida imekuwa ikionekana tangu Linux kernel 5.8 na bado haijatatuliwa (pamoja na kutolewa 5.16). Hali ya masasisho yanayotolewa ili kurekebisha tatizo katika usambazaji inaweza kufuatiliwa kwenye kurasa hizi: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Imetangazwa kuwa unyonyaji wa kufanya kazi umeundwa, ambao umepangwa kuchapishwa Januari 18 (watumiaji na watengenezaji wamepewa wiki ili kurekebisha udhaifu).

Athari hii inasababishwa na uthibitishaji usio sahihi wa programu za eBPF zinazotumwa ili kutekelezwa. Mfumo mdogo wa eBPF hutoa kazi za usaidizi, matumizi sahihi ambayo yanathibitishwa na kithibitishaji maalum. Baadhi ya chaguo za kukokotoa zinahitaji kupitisha thamani ya PTR_TO_MEM kama hoja, na ili kuzuia uwezekano wa kufurika kwa bafa, ni lazima kithibitishaji ajue ukubwa wa kumbukumbu inayohusishwa na hoja. Kwa bpf_ringbuf_submit na bpf_ringbuf_discard vitendaji, data kuhusu ukubwa wa kumbukumbu iliyohamishwa haikuripotiwa kwa kithibitishaji, ambayo inaweza kutumika kubatilisha maeneo ya kumbukumbu zaidi ya mpaka wa bafa wakati wa kutekeleza msimbo wa eBPF iliyoundwa mahususi.

Ili kutekeleza shambulio, mtumiaji lazima awe na uwezo wa kupakia programu yake ya BPF, na usambazaji mwingi wa Linux wa hivi majuzi huzuia uwezo huu kwa chaguo-msingi (ikiwa ni pamoja na ufikiaji usio na haki wa eBPF sasa umepigwa marufuku kwa chaguo-msingi kwenye kernel yenyewe, kuanzia na toleo la 5.16). Kwa mfano, athari inaweza kutumika katika usanidi chaguo-msingi katika Ubuntu 20.04 LTS, lakini katika mazingira Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 na Fedora 33 inaonekana tu ikiwa msimamizi ameweka. kigezo cha kernel.unprivileged_bpf_disabled hadi 0. Kama suluhu ya kuzuia kuathirika, unaweza kuzuia utekelezwaji wa programu za BPF na watumiaji wasio na haki kwa amri "sysctl -w kernel.unprivileged_bpf_disabled=1".

Chanzo: opennet.ru

Kuongeza maoni