Pozbycie się jądra Linuksa z kodu, który zmienia zachowanie procesów zaczynających się od znaku X

Jason A. Donenfeld, autor VPN WireGuard, zwrócił uwagę programistów na brudny hack obecny w kodzie jądra Linuksa, który zmienia zachowanie procesów, których nazwy zaczynają się na znak „X”. Na pierwszy rzut oka takie poprawki są zwykle stosowane w rootkitach, aby pozostawić ukryty backdoor w powiązaniu procesów, ale analiza wykazała, że ​​zmiana została dodana w 2019 r., aby tymczasowo naprawić naruszenie kompatybilności wyskakujących okienek użytkownika, zgodnie z zasadą, że zmiany w jądro nie powinno zakłócać kompatybilności z aplikacjami.

Problemy pojawiły się przy próbie wykorzystania mechanizmu atomowej zmiany trybu wideo w sterowniku DDX xf86-video-modesetting zastosowanego w serwerze X.Org, co wynikało z powiązania z procesami rozpoczynającymi się od znaku „X” (zakładano że obejście zostało zastosowane w procesie „ Xorg”). Niemal natychmiast problem w X.Org został naprawiony (domyślnie wyłączone było użycie atomowego API), ale zapomniano usunąć tymczasową poprawkę z jądra i spróbować wysłać ioctl, aby atomowo zmienić tryb dla wszystkich procesów zaczynających się od znak „X” nadal powoduje zwrócenie błędu. if (current->comm[0] == 'X' && req->value == 1) { pr_info("Wykryto uszkodzoną przestrzeń użytkownika atomowego zestawu trybów, wyłączenie atomowego\n"); powrót -EOPNOTSUPP; }

Źródło: opennet.ru

Dodaj komentarz