Kahinaan sa pagpapatupad ng AF_PACKET socket ng Linux kernel

Tatlong taon pagkatapos ng alon ng mga kahinaan (1, 2, 3, 4, 5) sa AF_PACKET subsystem ng Linux kernel nakilala isa pang problema (CVE-2020-14386), na nagpapahintulot sa isang lokal na walang pribilehiyong user na magsagawa ng code bilang ugat o lumabas sa mga nakahiwalay na lalagyan kung mayroon silang root access.

Ang paggawa ng AF_PACKET socket at pagsasamantala sa kahinaan ay nangangailangan ng mga pribilehiyo ng CAP_NET_RAW. Gayunpaman, ang tinukoy na pahintulot ay maaaring makuha ng isang unprivileged user sa mga container na ginawa sa mga system na may suporta para sa user namespaces na pinagana. Halimbawa, ang mga namespace ng user ay pinagana bilang default sa Ubuntu at Fedora, ngunit hindi pinagana sa Debian at RHEL. Sa Android, ang proseso ng mediaserver ay may karapatang lumikha ng mga AF_PACKET na socket, kung saan maaaring magamit ang kahinaan.

Ang kahinaan ay naroroon sa tpacket_rcv function at sanhi ng isang error sa pagkalkula ng netoff variable. Ang isang attacker ay maaaring lumikha ng mga kundisyon kung saan ang netoff variable ay isinusulat sa isang value na mas mababa kaysa sa maclen variable, na magdudulot ng overflow kapag kinakalkula ang "macoff = netoff - maclen" at pagkatapos ay hindi tama ang pagtatakda ng pointer sa buffer para sa papasok na data. Bilang resulta, ang isang umaatake ay maaaring magsimulang magsulat mula 1 hanggang 10 byte sa isang lugar na lampas sa hangganan ng inilaan na buffer. Nabanggit na ang isang pagsasamantala ay nasa pag-unlad na nagpapahintulot sa iyo na makakuha ng mga karapatan sa ugat sa system.

Ang problema ay naroroon sa kernel mula noong Hulyo 2008, i.e. nagpapakita mismo sa lahat ng aktwal na nuclei. Ang pag-aayos ay kasalukuyang magagamit bilang patch. Maaari mong subaybayan ang pagkakaroon ng mga update sa package sa mga pamamahagi sa mga sumusunod na pahina: Ubuntu, Fedora, SUSE, Debian, RHEL, Arko.

Pinagmulan: opennet.ru

Magdagdag ng komento