Oddaljena ranljivost v skladu OpenBSD IPv6

V procesu slaacd v ozadju, ki je odgovoren za samodejno konfiguracijo naslova IPv6 (IPv6 Stateless Address Autoconfiguration, RFC 4862) v OpenBSD, je bila ugotovljena ranljivost, ki povzroči prepolnitev medpomnilnika ob prejemu posebej zasnovanega oglasa usmerjevalnika IPv6 (RA, Router Advertisement). .

Sprva je bila funkcija samodejne konfiguracije naslova IPv6 implementirana na ravni jedra, vendar je bila z OpenBSD 6.2 premaknjena v ločen neprivilegirani proces slaacd. Ta proces je odgovoren za pošiljanje sporočil RS (Router Solicitation) in razčlenjevanje odgovorov RA (Router Advertisement) z informacijami o usmerjevalniku in parametrih omrežne povezave.

Februarja je slaacd odpravil napako, zaradi katere se je zrušil, če je bilo na seznamu RDNSS (Recursive DNS Servers) navedenih 7 strežnikov. Ta spregled je pritegnil pozornost neodvisnih raziskovalcev, ki so poskušali preučiti kodo slaacd za druge napake, ki se pojavijo pri razčlenjevanju polj v sporočilih RA. Analiza je pokazala, da je v kodi še en problem, ki se pokaže pri obdelavi polja DNSSL (DNS Search List), ki vključuje sezname domenskih imen in gostiteljskih predlog za DNS.

Vsako ime na seznamu DNSSL je kodirano z uporabo ničelnega ločila in vmesnih enobajtnih oznak, ki določajo velikost podatkov, ki sledijo. Ranljivost je posledica dejstva, da je v kodi za razčlenjevanje seznama polje z velikostjo prekopirano v spremenljivko s predznačenim celoštevilskim tipom (»len = data[pos]«). V skladu s tem, če je vrednost določena v polju z nastavljenim najpomembnejšim bitom, bo ta vrednost v pogojnem operatorju zaznana kot negativno število in preverjanje največje dovoljene velikosti (»če (len > 63 || len + pos + 1 > datalen) {“) ne bo delovalo, kar bo povzročilo klic memcpy s parametrom, katerega velikost kopiranih podatkov presega velikost medpomnilnika.

Oddaljena ranljivost v skladu OpenBSD IPv6
Oddaljena ranljivost v skladu OpenBSD IPv6


Vir: opennet.ru

Dodaj komentar