Befri Linux-kernen for adfærdsændrende kode for processer, der starter med X

Jason A. Donenfeld, forfatter til VPN WireGuard, henledte udviklernes opmærksomhed på et beskidt hack til stede i Linux-kernekoden, som ændrer adfærden for processer, hvis navn begynder med tegnet "X". Ved første øjekast anvendes rettelser som denne normalt i rootkits for at efterlade et skjult smuthul i procesbinding, men analyse viste, at ændringen blev tilføjet i 2019 for midlertidigt at rette en overtrædelse af bruger-space-kompatibilitet, der var dukket op, i overensstemmelse med princippet om, at ændringer i kernen bør ikke bryde applikationskompatibiliteten.

Der opstod problemer, da man forsøgte at bruge mekanismen til ændring af atomvideotilstand i xf86-video-modesetting DDX-driveren, der blev brugt i X.Org-serveren, hvilket forårsagede binding til processer, der startede med tegnet "X" (det blev antaget, at løsningen blev anvendt til " xorg"). Næsten øjeblikkeligt blev problemet i X.Org rettet (brugen af ​​atomic API var deaktiveret som standard), men den midlertidige rettelse blev glemt at blive fjernet fra kernen, og et forsøg på at sende en ioctl for at atomisk ændre tilstanden for alle processer, der starter med tegnet "X", fortsætter stadig med at resultere for at returnere en fejl. if (current->comm[0] == 'X' && req->value == 1) { pr_info("brudt atomic modeset userspace opdaget, deaktiverer atomic\n"); returnere -EOPNOTSUPP; }

Kilde: opennet.ru

Tilføj en kommentar