Універсітэт Мінесоты адхілены ад распрацоўкі ядра Linux за адпраўку сумнеўных патчаў

Грег Кроа-Хартман (Greg Kroah-Hartman), які адказвае за падтрымку стабільнай галінкі ядра Linux, прыняў рашэнне забараніць прыём у ядро ​​Linux любых змен, якія паступаюць з Універсітэта Мінесоты, а таксама адкаціць усе раней прынятыя патчы і правесці іх паўторнае рэцэнзаванне. Чыннікам блакавання стала дзейнасць даследчай групы, якая вывучае магчымасць пасоўвання ўтоеных уразлівасцяў у код адчыненых праектаў. Указаная група адпраўляла патчы, якія ўключаюць рознага роду памылкі, назірала за рэакцыяй супольнасці і вывучала шляхі падману працэсу рэцэнзавання змен. Па меркаванні Грега правядзенне падобных эксперыментаў па ўкараненні шкоднасных змен з'яўляецца непрымальным і неэтычным.

Падставай блакіроўкі паслужыла адпраўка ўдзельнікамі дадзенай групы патча, які дадаваў праверку паказальніка для выключэння магчымага падвойнага выкліку функцыі "free". З улікам кантэксту выкарыстання паказальніка праверка была бессэнсоўная. Мэтай адпраўкі патча было вывучэнне таго, ці пройдзе памылковае змяненне рэцэнзаванне распрацоўшчыкамі ядра. Акрамя названага патча ўсплылі і іншыя спробы распрацоўшчыкаў з Універсітэта Мінесоты ўнесці сумнеўныя змены ў ядро, у тым ліку звязаныя з даданнем утоеных уразлівасцяў.

Які адправіў патчы ўдзельнік паспрабаваў апраўдацца тым, што адчувае новы статычны аналізатар і змена падрыхтавана на аснове вынікаў праверкі ў ім. Але Грег звярнуў увагу на тое, што прапанаваныя выпраўленні не характэрны для памылак, якія выяўляюцца статычнымі аналізатарамі, і ўсе дасланыя патчы наогул нічога не выпраўляюць. З улікам таго, што разгляданая група даследнікаў ужо спрабавала ў мінулым прасоўваць выпраўленні са ўтоенымі ўразлівасцямі, відавочна, што яны працягнулі свае эксперыменты над супольнасцю распрацоўнікаў ядра.

Цікава, што ў мінулым кіраўнік якая праводзіць эксперыменты групы прымаў удзел у легітымным выпраўленні ўразлівасцяў, напрыклад, выявіў уцечкі інфармацыі ў USB-стэку (CVE-2016-4482) і сеткавай падсістэме (CVE-2016-4485). У даследаванні схаванага прасоўвання ўразлівасцяў група з Універсітэта Мінесоты прыводзіць прыклад уразлівасці CVE-2019-12819, выкліканай выпраўленнем, прынятым у ядро ​​ў 2014 годзе. Выпраўленне дадавала ў блок апрацоўкі памылкі ў mdio_bus выклік put_device, але праз пяць гадоў усплыло, што падобная маніпуляцыя прыводзіць да звароту да блока памяці пасля яго вызвалення ("use-after-free").

Пры гэтым аўтары даследавання сцвярджаюць, што ў сваёй працы яны абагульнілі дадзеныя аб 138 патчах, якія ўносяць памылкі і не звязаных з удзельнікамі даследавання. Спробы ж адпраўкі ўласных патчаў з памылкамі абмяжоўваліся email-перапіскай, і падобныя змены не патрапілі ў Git (калі пасля адпраўкі патча па email мэйнтэйнер лічыў патч нармальным, то яго прасілі не ўключаць змену бо там памылка, пасля чаго дасылалі правільны патч).

Дадатак 1: Мяркуючы па актыўнасці аўтара раскрытыкаванага выпраўлення ён ужо даўно адпраўляе патчы ў розныя падсістэмы ядра. Напрыклад, у драйверы radeon і nouveau нядаўна былі прыняты змены з выклікам pm_runtime_put_autosuspend(dev->dev) у блоку памылкі, не выключана, што які прыводзіць да выкарыстання буфера пасля вызвалення злучанай з ім памяці.

Дадатак 2: Грег адкаціў 190 комітаў, звязаных з адрасамі "@umn.edu" і ініцыяваў іх паўторнае рэцэнзаванне. Праблема ў тым, што ўдзельнікі з адрасамі «@umn.edu» не толькі эксперыментавалі з прасоўваннем сумнеўных патчаў, але і ўхілялі рэальныя ўразлівасці, і адкат змен можа прывесці да вяртання раней выпраўленых праблем з бяспекай. Некаторыя мэйнтэйнеры ўжо пераправерылі адмененыя змены і не знайшлі праблем, але адзін з мэйнтэйнераў паказаў, што ў адным з адпраўленых яму патчаў былі памылкі.

Крыніца: opennet.ru

Дадаць каментар