د ریش فکس د لینکس کرنل کې د سپیکٹر زیانمنتیا لپاره د نامکمل فکس په پایله کې

د Grsecurity پروژې پراختیا کونکي شریک کړی یو احتیاطي کیسه چې دا ښیې چې څنګه د تالیف کونکي خبرداری بې احتیاطي له مینځه وړل کولی شي په کوډ کې د زیانونو لامل شي. د می په پای کې، د لینکس کرنل لپاره، د ptrace سیسټم کال له لارې د سپیکٹر زیانمننې د استخراج نوي ویکتور لپاره یو فکس وړاندیز شوی و.

د پیچ ​​​​ټیسټ کولو په پروسه کې ، پراختیا کونکو ولیدل چې د جوړولو پرمهال ، تالیف کونکی د مخلوط کوډ او تعریفونو په اړه خبرداری ښیې ( جوړښت د موجوده متغیر ته د ارزښت ټاکلو سره د کوډ وروسته تعریف شوی و):

int index = n;
که (n < HBP_NUM) { index = array_index_nospec(index, HBP_NUM)؛ جوړښت perf_event *bp = thread->ptrace_bps[index]؛

لینس ومنله اصلاح ستاسو ماسټر څانګې ته، له منځه وړل له خبرتیا څخه د متغیر تعریف په یو if بلاک کې لپاسه:

که (n < HBP_NUM) { int index = array_index_nospec(n, HBP_NUM); جوړښت perf_event *bp = thread->ptrace_bps[index]؛

د جولای په میاشت کې، فکس د 4.4، 4.9، 4.14، 4.19، او 5.2 مستحکم کرنل څانګو ته هم لیږدول شوی و. مستحکم ساتونکي هم د اخطار سره مخ شول ، او د دې پرځای چې وګوري چې ایا دا دمخه د لینس ماسټر برانچ کې تنظیم شوی و ، دوی پخپله پیچ کړ. ستونزه دا ده چې دوی، پرته له دې چې ډیر فکر وکړي، یوازې خوځول د جوړښت تعریف پورته کړئ، نو د array_index_nospec ته زنګ، کوم چې په مستقیم ډول د زیان مننې په وړاندې محافظت چمتو کوي، نور د جوړښت په تعریف کې نه کارول کیږي، او د "index" متغیر پر ځای، "n" متغیر تل کارول کیده:

int index = n;
که (n < HBP_NUM ){ ساخت perf_event *bp = موضوع->ptrace_bps[index];
index = array_index_nospec(index, HBP_NUM);

سرچینه: opennet.ru

Add a comment