Malayong kahinaan sa Linux kernel na nangyayari kapag gumagamit ng TIPC protocol

Ang isang kahinaan (CVE-2022-0435) ay natukoy sa Linux kernel module na nagsisiguro sa pagpapatakbo ng TIPC (Transparent Inter-process Communication) network protocol, na potensyal na nagpapahintulot sa code na maisakatuparan sa antas ng kernel sa pamamagitan ng pagpapadala ng isang espesyal na idinisenyong network pakete. Ang isyu ay nakakaapekto lamang sa mga system na may tipc.ko kernel module na na-load at ang TIPC stack ay na-configure, na karaniwang ginagamit sa mga cluster at hindi pinapagana bilang default sa mga hindi espesyal na pamamahagi ng Linux.

Napansin na kapag binubuo ang kernel sa "CONFIG_FORTIFY_SRC=y" mode (ginamit sa RHEL), na nagdaragdag ng karagdagang mga bound check sa memcpy() function, ang operasyon ay limitado sa isang emergency stop (ang kernel panic). Kung naisakatuparan nang walang karagdagang pagsusuri at kung ang impormasyon tungkol sa mga tag ng canary na ginamit upang protektahan ang stack ay na-leak, ang problema ay maaaring samantalahin para sa remote na pagpapatupad ng code na may mga karapatan sa kernel. Sinasabi ng mga mananaliksik na tumukoy sa problema na ang pamamaraan ng pagsasamantala ay walang halaga at ibubunyag pagkatapos ng malawakang pag-aalis ng kahinaan sa mga pamamahagi.

Ang kahinaan ay sanhi ng isang stack overflow na nangyayari kapag nagpoproseso ng mga packet, ang halaga ng field na may bilang ng mga node ng miyembro ng domain kung saan lumampas sa 64. Upang mag-imbak ng mga parameter ng node sa tipc.ko module, isang nakapirming array na β€œu32 members[64]. ]” ay ginagamit, ngunit sa proseso ng pagproseso ng tinukoy sa packet Hindi sinusuri ng numero ng node ang halaga ng "member_cnt", na nagpapahintulot sa mga halagang higit sa 64 na magamit para sa kinokontrol na pag-overwrit ng data sa lugar ng memorya sa susunod sa "dom_bef" na istraktura sa stack.

Ang bug na humahantong sa kahinaan ay ipinakilala noong Hunyo 15, 2016 at isinama sa Linux 4.8 kernel. Ang kahinaan ay natugunan sa Linux kernel releases 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266, at 4.9.301. Sa mga kernel ng karamihan sa mga distribusyon ang problema ay nananatiling hindi naayos: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

Ang protocol ng TIPC ay orihinal na binuo ni Ericsson, na idinisenyo upang ayusin ang inter-process na komunikasyon sa isang cluster at ito ay aktibo pangunahin sa mga cluster node. Maaaring gumana ang TIPC sa alinman sa Ethernet o UDP (network port 6118). Kapag nagtatrabaho sa Ethernet, ang pag-atake ay maaaring isagawa mula sa lokal na network, at kapag gumagamit ng UDP, mula sa pandaigdigang network kung ang port ay hindi sakop ng isang firewall. Ang pag-atake ay maaari ding isagawa ng isang walang pribilehiyong lokal na gumagamit ng host. Para i-activate ang TIPC, kailangan mong i-download ang tipc.ko kernel module at i-configure ang binding sa network interface gamit ang netlink o ang tipc utility.

Pinagmulan: opennet.ru

Magdagdag ng komento