Sa kaibuturan Linux kahinaan (), 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 dahil ang suporta ng GRO para sa mga socket ng UDP ay 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 , hindi pa nai-publish ang corrective update (update kahapon 5.0.11 fix ). Mula sa mga distribution kit, ang kernel 5.0 ay nagawang maisama sa , , , at iba pang patuloy na na-update na mga pamamahagi. , , и hindi nakakaapekto ang problema.
Ang problema ay natagpuan bilang isang resulta Ang awtomatikong fuzzing testing system na ginawa ng Google at analisador (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
