Athari za mbali katika rafu ya OpenBSD IPv6

Katika mchakato wa chinichini slaacd, ambayo inawajibika kwa usanidi otomatiki wa anwani ya IPv6 (Usanidi Kiotomatiki wa Anwani ya IPv6, RFC 4862) katika OpenBSD, athari imetambuliwa ambayo husababisha kufurika kwa bafa wakati wa kupokea tangazo maalum la kipanga njia cha IPv6 (RA, Tangazo la Kidhibiti) .

Hapo awali, utendakazi wa usanidi otomatiki wa anwani ya IPv6 ulitekelezwa katika kiwango cha kernel, lakini kuanzia na OpenBSD 6.2 ulihamishwa hadi kwa mchakato tofauti wa slaacd usio na upendeleo. Mchakato huu unawajibika kutuma ujumbe wa RS (Uombaji wa Njia) na kuchanganua majibu ya RA (Tangazo la Njia) na maelezo kuhusu kipanga njia na vigezo vya muunganisho wa mtandao.

Mnamo Februari, slaacd ilirekebisha hitilafu iliyosababisha kuacha kufanya kazi ikiwa seva 7 zilibainishwa kwenye orodha ya RDNSS (Seva za Recursive DNS). Uangalizi huu ulivutia umakini wa watafiti huru ambao walijaribu kuchunguza msimbo wa slaacd kwa makosa mengine yanayotokea wakati wa kuchanganua sehemu katika jumbe za RA. Uchambuzi ulionyesha kuwa kuna shida nyingine katika msimbo, ambayo inajidhihirisha wakati wa kusindika shamba la DNSSL (Orodha ya Utafutaji ya DNS), ambayo inajumuisha orodha za majina ya kikoa na templeti za mwenyeji kwa DNS.

Kila jina katika orodha ya DNSSL husimbwa kwa kutumia kiondoa kikomo na lebo za baiti moja ambazo huamua saizi ya data inayofuata. Athari hii inasababishwa na ukweli kwamba katika msimbo wa uchanganuzi wa orodha, sehemu yenye ukubwa inakiliwa katika kigezo chenye aina kamili iliyotiwa sahihi ("len = data[pos]"). Ipasavyo, ikiwa thamani iliyo na biti muhimu zaidi imebainishwa kwenye sehemu, thamani hii itatambuliwa kwa opereta kwa masharti kama nambari hasi na hundi ya ukubwa unaokubalika zaidi (β€œikiwa (len > 63 || len + pos + 1 > datalen) {β€œ) haitafanya kazi, ambayo itasababisha wito kwa memcpy na kigezo ambacho saizi yake ya data iliyonakiliwa inazidi saizi ya bafa.

Athari za mbali katika rafu ya OpenBSD IPv6
Athari za mbali katika rafu ya OpenBSD IPv6


Chanzo: opennet.ru

Kuongeza maoni