University of Minnesota suspenderet fra Linux-kerneudvikling for at sende tvivlsomme patches

Greg Kroah-Hartman, ansvarlig for at vedligeholde den stabile gren af ​​Linux-kernen, besluttede at forbyde accept af ændringer, der kommer fra University of Minnesota til Linux-kernen, og også at rulle alle tidligere accepterede patches tilbage og gennemgå dem igen. Årsagen til blokeringen var aktiviteterne i en forskergruppe, der studerede muligheden for at fremme skjulte sårbarheder i koden for open source-projekter. Denne gruppe indsendte patches, der indeholdt forskellige typer fejl, observerede fællesskabets reaktion og undersøgte måder at snyde gennemgangsprocessen for ændringer. Ifølge Greg er det uacceptabelt og uetisk at udføre sådanne eksperimenter for at indføre ondsindede ændringer.

Årsagen til blokeringen var, at medlemmerne af denne gruppe sendte en patch, der tilføjede et pointercheck for at eliminere det mulige dobbeltkald af "gratis"-funktionen. I betragtning af sammenhængen med markørens brug var kontrollen meningsløs. Formålet med at indsende patchen var at se, om den fejlagtige ændring ville blive gennemgået af kerneudviklerne. Ud over denne patch er andre forsøg fra udviklere fra University of Minnesota dukket op på at lave tvivlsomme ændringer af kernen, inklusive dem, der er relateret til tilføjelsen af ​​skjulte sårbarheder.

Deltageren, der sendte plastrene, forsøgte at retfærdiggøre sig selv ved at sige, at han testede en ny statisk analysator, og ændringen blev forberedt på baggrund af resultaterne af testene i den. Men Greg henledte opmærksomheden på det faktum, at de foreslåede rettelser ikke er typiske for fejl opdaget af statiske analysatorer, og alle de sendte patches retter ikke noget som helst. I betragtning af at den pågældende forskergruppe tidligere har forsøgt at skubbe patches for skjulte sårbarheder, er det klart, at de har fortsat deres eksperimenter med kerneudviklingsfællesskabet.

Interessant nok var lederen af ​​den gruppe, der udførte eksperimenterne, tidligere involveret i lovlig patching af sårbarheder, for eksempel ved at identificere informationslækager i USB-stakken (CVE-2016-4482) og netværksundersystemet (CVE-2016-4485) . I en undersøgelse om udbredelse af stealth-sårbarhed citerer et hold fra University of Minnesota eksemplet med CVE-2019-12819, en sårbarhed forårsaget af en kerne-patch udgivet i 2014. Rettelsen tilføjede et kald til put_device til fejlhåndteringsblokken i mdio_bus, men fem år senere kom det frem, at en sådan manipulation fører til adgang til hukommelsesblokken, efter at den er frigivet ("brug-efter-fri").

Samtidig hævder forfatterne af undersøgelsen, at de i deres arbejde opsummerede data på 138 patches, der introducerede fejl og ikke var relateret til undersøgelsens deltagere. Forsøg på at sende deres egne patches med fejl var begrænset til e-mail-korrespondance, og sådanne ændringer kom ikke ind i Git (hvis, efter at have sendt patchen via e-mail, vedligeholderen anså patchen for normal, så blev han bedt om ikke at inkludere ændringen, da der var en fejl, hvorefter de sendte den korrekte patch).

Tilføjelse 1: At dømme efter aktiviteten hos forfatteren af ​​den kritiserede patch, har han i lang tid sendt patches til forskellige kerneundersystemer. For eksempel vedtog radeon- og nouveau-driverne for nylig ændringer med et kald til pm_runtime_put_autosuspend(dev->dev) i en fejlblok, hvilket muligvis forårsagede, at bufferen blev brugt efter frigørelse af den hukommelse, der er knyttet til den.

Tillæg 2: Greg har rullet 190 commits i forbindelse med "@umn.edu" tilbage og påbegyndt en fornyet gennemgang af dem. Problemet er, at medlemmer med "@umn.edu"-adresser ikke kun har eksperimenteret med at skubbe tvivlsomme programrettelser, men også har rettet reelle sårbarheder, og tilbagerulning af ændringer kan resultere i, at tidligere patchede sikkerhedsproblemer vender tilbage. Nogle vedligeholdere har allerede gentjekket de tilbageførte ændringer og fandt ingen problemer, men en af ​​vedligeholderne angav, at en af ​​de patches, der blev sendt til ham, havde fejl.

Kilde: opennet.ru

Tilføj en kommentar