Pasukan dari Universiti Minnesota telah mendedahkan butiran tentang perubahan berniat jahat yang dihantar.

Susulan surat permohonan maaf terbuka, sekumpulan penyelidik dari Universiti Minnesota menerima perubahan ke dalam kernel Linux yang telah disekat oleh Greg Kroah-Hartman, mendedahkan maklumat terperinci tentang tampalan yang dihantar kepada pembangun kernel dan surat-menyurat dengan penyelenggara yang berkaitan dengan tampalan ini.

Perlu diperhatikan bahawa semua patch bermasalah telah ditolak atas inisiatif penyelenggara; tiada satu patch pun diluluskan. Fakta ini menjelaskan dengan jelas mengapa Greg Croah-Hartman bertindak begitu keras, kerana tidak jelas apa yang akan dilakukan oleh penyelidik jika patch telah diluluskan oleh penyelenggara. Di belakang, mereka mendakwa bahawa mereka berhasrat untuk melaporkan pepijat dan tidak akan membenarkan patch pergi ke Git, tetapi tidak jelas apa yang sebenarnya mereka akan lakukan dan sejauh mana mereka mungkin pergi.

Secara keseluruhannya, pada Ogos 2020, daripada alamat acostag tanpa nama.ubuntuLima tampalan telah dihantar ke @gmail.com dan jameslouisebond@gmail.com (emel tersebut adalah daripada James Bond): dua tampalan yang betul (1, 2) dan tiga tampalan yang mengandungi ralat tersembunyi (1, 2, 3) yang mewujudkan keadaan untuk kerentanan. Setiap tampalan hanya mengandungi 1-4 baris kod. Idea asas di sebalik tampalan yang salah adalah bahawa membetulkan kebocoran memori boleh mewujudkan kerentanan disebabkan oleh sistem bebas berganda. Seminggu kemudian, pembangun kernel telah dihubungi untuk membincangkan kemungkinan mempromosikan kerentanan tersebut di bawah nama pembetulan kebocoran memori yang remeh, tetapi tiada apa yang disebut tentang percubaan terdahulu untuk menghantar tampalan berniat jahat.

Tampalan bermasalah pertama membetulkan kebocoran memori dengan menambahkan panggilan ke kfree() sebelum mengembalikan kawalan sekiranya berlaku ralat, tetapi mewujudkan keadaan untuk mengakses kawasan memori selepas ia dibebaskan (guna-selepas-bebas). Tampalan ini telah ditolak oleh penyelenggara (Jiri Slaby), yang mengenal pasti masalah dan menunjukkan bahawa setahun yang lalu seseorang telah cuba mencadangkan perubahan yang sama dan pada mulanya diterima, tetapi kemudian dibuang selepas mengenal pasti syarat untuk kelemahan itu. > p2 = p1[n] = susunan_kmalloc(64, saiz(u16), GFP_KERNEL); > - jika (!p2) kembalikan -ENOMEM; > + jika (!p2) { > + kfree(p1); > + kembali -ENOMEM; > + }

Tampalan kedua juga mengandungi syarat untuk masalah bebas penggunaan. Tampalan yang ditentukan tidak diterima oleh penyelenggara (Dan Carpenter), yang menolak tampung itu kerana masalah lain dengan list_add_tail, tetapi tidak menyedari bahawa penunjuk "chdev" boleh dibebaskan dalam fungsi put_device, yang digunakan di bawah dalam panggilan dev_err(&chdev ->dev..). Walau bagaimanapun, tampalan itu tidak diterima, walaupun atas sebab yang tidak berkaitan dengan kelemahan. if (ret < 0) { + put_device(&chdev->dev); dev_err(&chdev->dev, DRV_NAME ": kfifo_alloc failed\n"); ret = -ENOMEM; goto err_fifo;

Patch ketiga juga tidak diterima oleh penyelenggara (Miquel Raynal) kerana pepijat lain yang tidak berkaitan dengan kelemahan (panggilan dua kali untuk meletakkan pdev). jika (!window->virt) { printk(KERN_ERR MOD_NAME ": ioremap(%08lx, %08lx) failed\n", window->phys, window->size); + pci_dev_put(pdev); keluar; } ... jika (!peta) { printk(KERN_ERR MOD_NAME ": kmalloc failed"); + pci_dev_put(pdev); keluar; } memset(peta, 0, sizeof(*map)); ... if (mtd_device_register(map->mtd, NULL, 0)) { map_destroy(map->mtd); peta->mtd = NULL; + pci_dev_put(pdev); keluar; }

Menariknya, 4 daripada 5 patch pada mulanya diandaikan mempunyai masalah, tetapi penyelidik sendiri membuat kesilapan dan dalam satu patch yang mereka fikir bermasalah, pembetulan yang betul telah dicadangkan, tanpa syarat yang dijangkakan untuk penggunaan memori selepas berlaku percuma. err = pci_request_mem_regions(pdev, nitrox_driver_name); if (err) { pci_disable_device(pdev); + dev_err(&pdev->dev, “Gagal meminta wilayah mem!\n”); kembali err; }

Sumber: opennet.ru

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS 🔥 Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster