په OpenBSD IPv6 سټیک کې لیرې زیان

د شاليد پروسې slaacd کې، کوم چې په OpenBSD کې د IPv6 آدرس آټو کنفیګریشن (IPv6 Stateless Address Autoconfiguration, RFC 4862) مسولیت لري، یو زیانمنونکي پیژندل شوي چې د ځانګړي ډیزاین شوي IPv6 روټر اعلاناتو (RA, Router Advertisement) ترلاسه کولو پر مهال د بفر اوور فلو لامل کیږي. .

په پیل کې، د IPv6 پته د اتوماتیک کنفیګریشن فعالیت د کرنل په کچه پلي شوی و، مګر د OpenBSD 6.2 سره پیل کولو سره دا یو جلا غیر مراعات شوي slaacd پروسې ته لیږدول شوی و. دا پروسه د RS (Router Solicitation) پیغامونو لیږلو او د روټر او د شبکې اتصال پیرامیټونو په اړه معلوماتو سره د RA (Router Advertisement) ځوابونو پارس کولو مسؤلیت لري.

په فبروري کې، slaacd یوه ستونزه حل کړه چې دا د خرابیدو لامل کیږي که چیرې 7 سرورونه د RDNSS (د تکرار DNS سرورونو) لیست کې مشخص شوي وي. دې نظارت د خپلواکو څیړونکو پام ځانته را اړولی چې هڅه یې کړې د نورو غلطیو لپاره د سلاکډ کوډ معاینه کړي چې د RA پیغامونو کې د ساحو تحلیل کولو پرمهال پیښیږي. تحلیل ښودلې چې په کوډ کې بله ستونزه شتون لري ، کوم چې د DNSSL (DNS لټون لیست) ساحې پروسس کولو پرمهال څرګندیږي ، چې پکې د DNS لپاره د ډومین نومونو لیست او کوربه ټیمپلیټونه شامل دي.

د DNSSL لیست کې هر نوم د نل ډیلیمیټر او مداخلې یو بایټ ټاګونو په کارولو سره کوډ شوی چې د لاندې معلوماتو اندازه ټاکي. زیانمنتیا د دې حقیقت له امله رامینځته کیږي چې په لیست کې د پارس کولو کوډ کې ، د اندازې سره ساحه د لاسلیک شوي انټیجر ډول ("len = data[pos]") سره متغیر کې کاپي شوې. په دې اساس، که یو ارزښت په ساحه کې د خورا مهم بټ سیټ سره مشخص شوی وي، دا ارزښت به په مشروط آپریټر کې د منفي شمیرې په توګه وپیژندل شي او د اعظمي اجازه وړ اندازې لپاره چیک ("که (len> 63 || len + pos) + 1 > datalen) {“) به کار ونکړي، کوم چې به memcpy ته د یو پیرامیټر سره زنګ وهي چې د کاپي شوي ډیټا اندازه د بفر اندازې څخه زیاته وي.

په OpenBSD IPv6 سټیک کې لیرې زیان
په OpenBSD IPv6 سټیک کې لیرې زیان


سرچینه: opennet.ru

Add a comment