Освобождаване на Linux ядрото от променящ поведението код за процеси, започващи с X

Джейсън А. Доненфелд, автор на VPN WireGuard, насочи вниманието на разработчиците към мръсен хак, присъстващ в кода на ядрото на Linux, който променя поведението на процеси, чието име започва със знака "X". На пръв поглед корекции като тази обикновено се прилагат в руткитове, за да оставят скрита вратичка в обвързването на процеса, но анализът показа, че промяната е добавена през 2019 г., за да коригира временно нарушение на съвместимостта на потребителското пространство, което се появи, в съответствие с принципа, че промените в ядрото не трябва да нарушават съвместимостта на приложенията.

Проблеми възникнаха при опит за използване на атомния механизъм за промяна на режима на видео в драйвера xf86-video-modesetting DDX, използван в сървъра на X.Org, което доведе до обвързване към процеси, започващи със знака „X“ (предполагаше се, че е приложено заобиколното решение към „xorg“). Почти веднага проблемът в X.Org беше коригиран (използването на атомарния API беше деактивирано по подразбиране), но междинната корекция беше забравена да бъде премахната от ядрото и опит за изпращане на ioctl за атомна промяна на режима за всички процеси, започващи със знака "X", все още продължават да връщат грешка. if (current->comm[0] == 'X' && req->value == 1) { pr_info("открито е счупено потребителско пространство на atomic modeset, дезактивиране на atomic\n"); връщане -EOPNOTSUPP; }

Източник: opennet.ru

Добавяне на нов коментар