يونيورسٽي آف مينيسوٽا جي هڪ ٽيم نازل ڪيل بدسلوڪي تبديلين جا تفصيل ظاهر ڪيا آهن.

معافي جي هڪ کليل خط کان پوءِ، يونيورسٽي آف منيسوٽا جي محققن جي هڪ گروپ ڪرنل ۾ تبديلين کي قبول ڪيو Linux جنهن مان گريگ ڪروه-هارٽمن بلاڪ ڪيو هو، ڪرنل ڊولپرز ڏانهن موڪليل پيچس ۽ انهن پيچس سان لاڳاپيل سنڀاليندڙن سان خط و ڪتابت بابت تفصيلي معلومات ظاهر ڪئي.

اهو قابل ذڪر آهي ته سڀني مشڪلاتي پيچن کي سنڀاليندڙن پاران رد ڪيو ويو هو؛ انهن مان ڪنهن کي به منظور نه ڪيو ويو. هي حقيقت وضاحت ڪرڻ ۾ مدد ڪري ٿي ته گريگ ڪروه-هارٽمن ايترو سخت ڇو ڪم ڪيو، ڇاڪاڻ ته اهو واضح ناهي ته محقق ڇا ڪن ها جيڪڏهن پيچ سنڀاليندڙن پاران منظور ڪيا وڃن ها. پوئتي موٽڻ ۾، انهن دعويٰ ڪئي ته انهن جو ارادو بگ جي رپورٽ ڪرڻ هو ۽ پيچن کي گٽ ۾ ڌڪڻ کان روڪي ها، پر اهو واضح ناهي ته اهي اصل ۾ ڇا ڪن ها يا اهي ڪيترو پري ويا هوندا.

مجموعي طور تي، آگسٽ 2020 ۾، گمنام ايڪوسٽاگ پتي کان.ubuntuپنج پيچ @gmail.com ۽ jameslouisebond@gmail.com تي موڪليا ويا (اي ميل جيمس بانڊ کان هئي): ٻه صحيح (1، 2) ۽ ٽي جن ۾ لڪيل غلطيون شامل هيون (1، 2، 3) جيڪي ڪمزورين لاءِ حالتون پيدا ڪيون. هر پيچ ۾ صرف 1-4 لائينون ڪوڊ هيون. غلط پيچن جي پويان بنيادي خيال اهو هو ته ميموري ليڪ کي درست ڪرڻ سان ڊبل فري جي ڪري ڪمزوري پيدا ٿي سگهي ٿي. هڪ هفتي کان پوءِ، ڪرنل ڊولپرز سان رابطو ڪيو ويو ته جيئن معمولي ميموري ليڪ فڪسس جي آڙ ۾ ڪمزورين کي فروغ ڏيڻ جي امڪان تي بحث ڪيو وڃي، پر خراب پيچ جمع ڪرائڻ جي پوئين ڪوششن بابت ڪجهه به ذڪر نه ڪيو ويو.

پهرين مسئلي واري پيچ غلطي تي واپس اچڻ کان اڳ kfree() کي ڪال ڪندي ميموري ليڪ کي درست ڪيو، پر هڪ استعمال کان پوءِ آزاد حالت متعارف ڪرائي. هن پيچ کي سنڀاليندڙ (جيري سليبي) پاران رد ڪيو ويو، جنهن مسئلي جي سڃاڻپ ڪئي ۽ نشاندهي ڪئي ته ڪنهن هڪ سال اڳ ساڳئي تبديلي جي تجويز پيش ڪئي هئي، جيڪا شروعات ۾ قبول ڪئي وئي هئي پر پوءِ ڪمزوري دريافت ٿيڻ کان پوءِ رد ڪئي وئي. > p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL); > — if (!p2) return -ENOMEM; > + if (!p2) { > + kfree(p1); > + return -ENOMEM; > + }

ٻئي پيچ ۾ استعمال کان پوءِ آزاد مسئلي لاءِ شرطون پڻ شامل هيون. هي پيچ سنڀاليندڙ (ڊين ڪارپينٽر) پاران قبول نه ڪيو ويو، جنهن list_add_tail سان هڪ ٻئي مسئلي جي ڪري پيچ کي رد ڪري ڇڏيو، پر اهو نوٽيس نه ڪيو ته "chdev" پوائنٽر، جيڪو بعد ۾ dev_err(&chdev->dev..) کي ڪال ۾ استعمال ڪيو ويندو آهي، put_device فنڪشن ۾ آزاد ٿي سگهي ٿو. بهرحال، پيچ قبول نه ڪيو ويو، جيتوڻيڪ هڪ سبب جي ڪري جيڪو ڪمزوري سان لاڳاپيل نه هو. جيڪڏهن (ret < 0) { + put_device(&chdev->dev); dev_err(&chdev->dev, DRV_NAME ": kfifo_alloc ناڪام\n"); ret = -ENOMEM; goto err_fifo;

ٽيون پيچ پڻ سنڀاليندڙ (مائيڪل رينال) پاران قبول نه ڪيو ويو ڇاڪاڻ ته هڪ ٻيو بگ ڪمزوري سان لاڳاپيل نه هو (pdev ڏانهن ڊبل پٽ ڪال). جيڪڏهن (!window->virt) { printk(KERN_ERR MOD_NAME ": iormap(%08lx, %08lx) ناڪام\n", window->phys, window->size); + pci_dev_put(pdev); ٻاهر نڪري ويو; } … جيڪڏهن (!map) { printk(KERN_ERR MOD_NAME ": kmalloc ناڪام"); + pci_dev_put(pdev); ٻاهر نڪري ويو; } memset(map, 0, sizeof(*map)); … جيڪڏهن (mtd_device_register(map->mtd, NULL, 0)) { map_destroy(map->mtd); map->mtd = NULL; + pci_dev_put(pdev); ٻاهر نڪري ويو; }

دلچسپ ڳالهه اها آهي ته، 5 مان 4 پيچن کي شروعات ۾ مسئلا سمجهيو ويو هو، پر محققن پاڻ غلطي ڪئي ۽ هڪ پيچ لاءِ صحيح حل پيش ڪيو جيڪو انهن کي مسئلو سمجهيو ويندو هو، بغير متوقع استعمال کان پوءِ آزاد حالتون پيدا ٿيڻ جي. err = pci_request_mem_regions(pdev, nitrox_driver_name); if (err) { pci_disable_device(pdev); + dev_err(&pdev->dev, "ميم علائقن جي درخواست ڪرڻ ۾ ناڪام!\n"); return err; }

جو ذريعو: opennet.ru

DDoS تحفظ سان سائيٽن لاءِ قابل اعتماد هوسٽنگ خريد ڪريو، VPS VDS سرور 🔥 DDoS تحفظ سان قابل اعتماد ويب سائيٽ هوسٽنگ خريد ڪريو، VPS VDS سرورز | ProHoster