Ekipa iray avy amin'ny Oniversiten'i Minnesota dia nanambara ny antsipiriany momba ny fanovana ratsy nalefa.

Taorian'ny taratasy fifonana misokatra, vondrona mpikaroka avy ao amin'ny Oniversiten'i Minnesota, izay nosakanan'i Greg Croah-Hartman ny fanovana ny kernel Linux, dia nanambara fampahalalana amin'ny antsipiriany momba ireo patch nalefa tany amin'ny mpamorona kernel sy ny fifandraisana tamin'ny mpitaiza. mifandraika amin'ireo patch ireo.

Marihina fa nolavina avokoa ireo patch misy olana rehetra noho ny fandraisana andraikitra nataon’ny mpikarakara fa tsy nisy na dia iray aza nankatoavina. Io zava-misy io dia manazava mazava ny antony nanaovan'i Greg Croah-Hartman fihetsika henjana, satria tsy fantatra mazava izay mety ho nataon'ny mpikaroka raha nankatoavin'ny mpikarakara ny patch. Rehefa dinihina tokoa, dia nilaza izy ireo fa nikasa ny hitatitra bibikely ary tsy namela ny patch ho any amin'ny Git, saingy tsy fantatra mazava hoe inona marina no ho nataon'izy ireo ary hatraiza no mety ho lasa.

Total tamin'ny Aogositra 2020 avy amin'ny adiresy tsy fantatra anarana [email voaaro] ΠΈ [email voaaro] (taratasy avy amin'i James Bond) dimy no nalefa: roa marina (1, 2) ary telo misy lesoka miafina (1, 2, 3), mamorona fepetra ho an'ny vulnerabilities. Ny patch tsirairay dia tsy misy afa-tsy 1-4 andalana code. Ny hevi-dehibe tao ambadik'ireo paty diso dia ny hoe ny fanamboarana ny fitadidiana dia mety hiteraka toe-javatra mora mora roa. Herinandro taty aoriana, nisy fampahalalana nalefa tany amin'ireo mpamorona kernel miaraka amin'ny tolo-kevitra hifanakalozan-kevitra momba ny mety hampiroborobo ny vulnerabilities amin'ny endrika fanamboarana tsy dia misy dikany amin'ny fiparitahan'ny fahatsiarovana, saingy tsy nisy nilaza momba ny fikasana handefa patch ratsy teo aloha.

Ny patch manahirana voalohany dia nanamboatra ny leak ny fahatsiarovana tamin'ny alΓ lan'ny fampidirana antso amin'ny kfree() alohan'ny hamerenana ny fanaraha-maso raha sendra misy hadisoana, fa namorona fepetra hidirana amin'ny faritra fitadidiana taorian'ny nanafahana azy (ampiasaina tsy misy dikany). Ity patch ity dia nolavin'ny mpikarakara (Jiri Slaby), izay nanondro ny olana ary nanamarika fa herintaona lasa izay dia efa nisy olona nanandrana nanolotra fanovana mitovy amin'izany ary nekena tamin'ny voalohany, saingy nariana rehefa avy namaritra ny fepetra momba ny vulnerability. > p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL); > - raha (!p2) miverina -ENOMEM; > + raha (!p2) { > + kfree(p1); > + miverina -ENOMEM; > + }

Ny patch faharoa dia nahitana fepetra momba ny olana tsy misy fampiasana aorian'ny fampiasana. Ny patch voatondro dia tsy neken'ny mpikarakara (Dan Carpenter), izay nandΓ  ny patch noho ny olana hafa amin'ny list_add_tail, saingy tsy nahatsikaritra fa ny pointer "chdev" dia azo nafahana tao amin'ny fiasa put_device, izay ampiasaina eto ambany amin'ny antso. dev_err(&chdev ->dev..). Na izany aza, ny patch dia tsy nekena, na dia noho ny antony tsy mifandray amin'ny vulnerability. raha (ret <0) { + put_device(&chdev->dev); dev_err(&chdev->dev, DRV_NAME ": tsy nahomby ny kfifo_alloc\n"); ret = -ENOMEM; goto err_fifo;

Ny patch fahatelo dia tsy neken'ny mpikarakara (Miquel Raynal) ihany koa noho ny bibikely hafa tsy misy ifandraisany amin'ny vulnerability (antsoina roa ho an'ny pdev). raha (!window->virt) { printk(KERN_ERR MOD_NAME ": ioremap(%08lx, %08lx) tsy nahomby\n", window->phys, window->habe); + pci_dev_put(pdev); mivoaka; } ... raha (!map) { printk(KERN_ERR MOD_NAME ": kmalloc tsy nahomby"); + pci_dev_put(pdev); mivoaka; } memset(sarintany, 0, sizeof(*saritany)); ... raha (mtd_device_register(map->mtd, NULL, 0)) { map_destroy(map->mtd); sarintany->mtd = NULL; + pci_dev_put(pdev); mivoaka; }

Mahaliana fa ny patch 4 amin'ny 5 dia noheverina fa nanana olana tamin'ny voalohany, fa ny mpikaroka ihany no nanao fahadisoana ary tao anatin'ny patch iray izay nanahiran-tsaina, araka ny hevitr'izy ireo, dia naroso ny fanamboarana marina, tsy misy fepetra andrasana amin'ny fampiasana fahatsiarovana aorian'ny fisehoan-javatra maimaim-poana. err = pci_request_mem_regions(pdev, nitrox_driver_name); raha (diso) {pci_disable_device(pdev); + dev_err(&pdev->dev, β€œTsy nahavita nangataka faritra mem!\n”); miverina diso; }

Source: opennet.ru

Add a comment