Ang kahinaan sa Linux kernel na maaaring magdulot ng pag-crash sa pamamagitan ng pagpapadala ng UDP packet

Sa Linux kernel nakilala kahinaan (CVE-2019-11683), na nagbibigay-daan sa iyong malayuang magdulot ng pagtanggi sa serbisyo sa pamamagitan ng pagpapadala ng mga espesyal na idinisenyong UDP packet (packet-of-death). Ang problema ay sanhi ng isang error sa udp_gro_receive_segment handler (net/ipv4/udp_offload.c) sa pagpapatupad ng GRO (Generic Receive Offload) na teknolohiya at maaaring humantong sa pinsala sa mga nilalaman ng kernel memory area kapag nagpoproseso ng mga UDP packet na may zero padding (walang laman na kargamento).

Ang problema ay nakakaapekto lamang sa kernel 5.0dahil ang suporta ng GRO para sa mga socket ng UDP ay ipinatupad noong Nobyembre noong nakaraang taon at nakapasok lamang sa pinakabagong stable kernel release. Binibigyang-daan ka ng teknolohiya ng GRO na pabilisin ang pagproseso ng malaking bilang ng mga papasok na packet sa pamamagitan ng pagsasama-sama ng maramihang mga packet sa mas malalaking bloke na hindi nangangailangan ng hiwalay na pagproseso ng bawat packet.
Para sa TCP, hindi nangyayari ang problema, dahil hindi sinusuportahan ng protocol na ito ang pagsasama-sama ng packet nang walang payload.

Ang kahinaan ay hanggang ngayon ay naayos lamang sa anyo patch, hindi pa nai-publish ang corrective update (update kahapon 5.0.11 fix hindi kasama). Mula sa mga distribution kit, ang kernel 5.0 ay nagawang maisama sa Fedora 30, Ubuntu 19.04, Arch Linux, Gentoo at iba pang patuloy na na-update na mga pamamahagi. Debian, Ubuntu 18.10 at mas maaga, RHEL/CentOS ΠΈ SUSE/openSUSE hindi nakakaapekto ang problema.

Ang problema ay natagpuan bilang isang resulta gamitin Ang awtomatikong fuzzing testing system na ginawa ng Google syzbot at analisador KASAN (KernelAddressSanitizer), na naglalayong tukuyin ang mga error kapag nagtatrabaho gamit ang memorya at mga katotohanan ng hindi tamang pag-access sa memorya, tulad ng pag-access sa mga lugar ng libreng memorya at paglalagay ng code sa mga lugar ng memorya na hindi nilayon para sa mga naturang manipulasyon.

Pinagmulan: opennet.ru

Magdagdag ng komento