Linux kodola ievainojamība, kas var izraisīt avāriju, nosūtot UDP paketi

Linux kodolā identificēts ievainojamība (CVE-2019-11683), kas ļauj attālināti izraisīt pakalpojuma atteikumu, nosūtot īpaši izstrādātas UDP paketes (packet-of-death). Problēmu izraisa kļūda udp_gro_receive_segment apstrādātājā (net/ipv4/udp_offload.c), ieviešot GRO (Generic Receive Offload) tehnoloģiju, un tā var izraisīt kodola atmiņas apgabalu satura bojājumus, apstrādājot UDP paketes ar nulles polsterējumu. (tukša krava).

Problēma skar tikai kodolu 5.0kopš GRO atbalsts UDP ligzdām bija īstenota pagājušā gada novembrī un tikai izdevās iekļūt jaunākajā stabilā kodola laidienā. GRO tehnoloģija ļauj paātrināt liela skaita ienākošo pakešu apstrādi, apkopojot vairākas paketes lielākos blokos, kuriem nav nepieciešama katras paketes atsevišķa apstrāde.
TCP gadījumā problēma nerodas, jo šis protokols neatbalsta pakešu apkopošanu bez kravas.

Ievainojamība līdz šim ir novērsta tikai formā plāksteris, koriģējošais atjauninājums vēl nav publicēts (vakardienas atjauninājuma 5.0.11 labojums nav iekļauts). No izplatīšanas komplektiem izdevās iekļaut kodolu 5.0 Fedora 30, ubuntu 19.04, Arch Linux, Gentoo un citi pastāvīgi atjaunināti izplatījumi. Debian, Ubuntu 18.10 un vecākas versijas, RHEL/CentOS и SUSE/openSUSE problēma neietekmē.

Rezultātā problēma tika atrasta izmantot Google izveidota automatizēta izplūdes testēšanas sistēma syzbot un analizators KASAN (KernelAddressSanitizer), kuras mērķis ir identificēt kļūdas, strādājot ar atmiņu, un faktus par nepareizu piekļuvi atmiņai, piemēram, piekļuvi atbrīvotajiem atmiņas apgabaliem un koda ievietošanu atmiņas apgabalos, kas nav paredzēti šādām manipulācijām.

Avots: opennet.ru

Pievieno komentāru