Befria Linuxkärnan från beteendeförändrande kod för processer som börjar med X

Jason A. Donenfeld, författare till VPN WireGuard, uppmärksammade utvecklarna på ett smutsigt hack som finns i Linux-kärnkoden som ändrar beteendet hos processer vars namn börjar med tecknet "X". Vid första anblicken används sådana korrigeringar vanligtvis i rootkits för att lämna ett dolt kryphål i processbindning, men analys visade att ändringen lades till 2019 för att tillfälligt åtgärda en kompatibilitetsöverträdelse för popup-användarutrymme, i enlighet med principen att ändringar i kärnan ska inte bryta kompatibiliteten med applikationer.

Problem uppstod när man försökte använda mekanismen för att atomiskt ändra videoläget i DDX-drivrutinen xf86-video-modesetting som användes i X.Org-servern, vilket berodde på bindningen till processer som började med tecknet "X" (det antogs att lösningen tillämpades på processen " Xorg"). Nästan omedelbart åtgärdades problemet i X.Org (användningen av atomic API var inaktiverad som standard), men de glömde att ta bort den tillfälliga fixen från kärnan och ett försök att skicka en ioctl för att atomiskt ändra läget för alla processer som börjar med tecknet "X" fortsätter att resultera i att returnera ett fel. if (current->comm[0] == 'X' && req->value == 1) { pr_info("bruten atomic modeset userspace upptäckt, inaktiverar atomic\n"); returnera -EOPNOTSUPP; }

Källa: opennet.ru

Lägg en kommentar