Zehfbûna dûr a di staka OpenBSD IPv6 de

Di pêvajoya paşîn a slaacd de, ku di OpenBSD de berpirsiyarê veavakirina navnîşana IPv6-ê (IPv6 Veavakirina Xweseriya Navnîşana Bêdewlet, RFC 4862) e, di OpenBSD de qelsiyek hate nas kirin ku dema ku reklamek routerê IPv6-ya taybetî hatî sêwirandin (RA, Reklama Router) distîne rê li ber zêdebûna tamponê vedike. .

Di destpêkê de, fonksiyona konfigurasyona xweser a navnîşana IPv6 di asta kernelê de hate bicîh kirin, lê bi OpenBSD 6.2-ê dest pê kir ew veguherî pêvajoyek slaacd-a bêdestûr a cihê. Ev pêvajo ji şandina peyamên RS (Daxwaza Router) û parkirina bersivên RA (Reklama Router) bi agahdariya li ser rêgez û pîvanên girêdana torê berpirsiyar e.

Di sibatê de, slaacd xeletiyek rast kir ku eger 7 pêşkêşker di navnîşa RDNSS (Pêşkêşkerên DNS-ya Recursive) de hatine destnîşan kirin xeletiyek çêbibe. Vê çavdêriyê bala lêkolînerên serbixwe kişand ku hewl dan ku koda slaacd ji bo xeletiyên din ên ku di dema parskirina zeviyên di peyamên RA de çêdibin vekolînin. Analîzê destnîşan kir ku di kodê de pirsgirêkek din heye, ku dema ku qada DNSSL (Lîsteya Lêgerîna DNS) hildiweşîne, ku navnîşên navên domain û şablonên mêvandar ên DNS-ê vedihewîne, xwe diyar dike.

Her navek di navnîşa DNSSL-ê de bi karanîna veqetandek null û navberek etîketên yek-byte tête kod kirin ku mezinahiya daneya ku li pey tê destnîşan dike. Zehfbûn ji ber vê yekê ye ku di koda parskirina navnîşê de, qadek bi mezinahî di nav guhêrbarek bi celebek jimare ya nîşankirî ("len = data[pos]") tê kopî kirin. Li gorî vê yekê, heke nirxek li qada bi set bit ya herî girîng were destnîşan kirin, ev nirx dê di operatora şertî de wekî hejmarek neyînî û kontrolkirina mezinahiya herî zêde ya destûr were dîtin ("eger (len > 63 || len + pos + 1 > datalen) {“) dê nexebite, ku dê bibe sedema bangek memcpy bi pîvanek ku mezinahiya daneya kopîkirî ji mezinahiya tamponê zêdetir e.

Zehfbûna dûr a di staka OpenBSD IPv6 de
Zehfbûna dûr a di staka OpenBSD IPv6 de


Source: opennet.ru

Add a comment