Hilit nga kahuyang sa OpenBSD IPv6 stack

Sa background nga proseso slaacd, nga maoy responsable sa IPv6 address autoconfiguration (IPv6 Stateless Address Autoconfiguration, RFC 4862) sa OpenBSD, usa ka vulnerability ang giila nga mosangpot sa buffer overflow sa dihang nakadawat ug espesyal nga gidisenyo nga IPv6 router advertisement (RA, Router Advertisement) .

Sa sinugdan, ang IPv6 address autoconfiguration functionality gipatuman sa kernel level, apan sugod sa OpenBSD 6.2 kini gibalhin ngadto sa usa ka separado nga walay pribilihiyo nga proseso sa slaacd. Kini nga proseso ang responsable sa pagpadala sa mga mensahe sa RS (Router Solicitation) ug pag-parse sa mga tubag sa RA (Router Advertisement) nga adunay kasayuran bahin sa mga parameter sa koneksyon sa router ug network.

Niadtong Pebrero, giayo sa slaacd ang usa ka bug nga hinungdan sa pag-crash kung 7 nga mga server ang gitakda sa lista sa RDNSS (Recursive DNS Servers). Kini nga pagdumala nakadani sa atensyon sa mga independente nga tigdukiduki nga misulay sa pagsusi sa slaacd code alang sa ubang mga sayup nga mahitabo kung nag-parse sa mga natad sa mga mensahe sa RA. Gipakita sa pag-analisar nga adunay lain nga problema sa code, nga nagpakita sa kaugalingon kung giproseso ang field sa DNSSL (DNS Search List), nga naglakip sa mga lista sa mga domain name ug host templates alang sa DNS.

Ang matag ngalan sa listahan sa DNSSL gi-encode gamit ang null delimiter ug intervening one-byte tags nga nagtino sa gidak-on sa data nga nagsunod. Ang pagkahuyang tungod sa kamatuoran nga sa listahan sa parsing code, ang usa ka field nga adunay gidak-on gikopya ngadto sa usa ka variable nga adunay gipirmahan nga integer type ("len = data[pos]"). Sumala niini, kung ang usa ka kantidad gitakda sa natad nga adunay labing hinungdanon nga bit set, kini nga kantidad mahibal-an sa conditional operator ingon usa ka negatibo nga numero ug ang tseke alang sa labing taas nga gitugot nga gidak-on ("kung (len> 63 || len + pos) + 1 > datalen) {β€œ) dili molihok, nga moresulta sa usa ka tawag sa memcpy nga adunay parameter kansang gidak-on sa gikopya nga datos milapas sa gidak-on sa buffer.

Hilit nga kahuyang sa OpenBSD IPv6 stack
Hilit nga kahuyang sa OpenBSD IPv6 stack


Source: opennet.ru

Idugang sa usa ka comment