Ядро Linux избавлено от изменения процессов с символа X

10 ноября 2022 года

Маскот системы.

Джейсон Доненфилд (англ. Jason A. Donenfeld), автор VPN WireGuard, обратил внимание разработчиков на присутствующий в коде ядра Linux грязный хак, изменяющий поведение для процессов, имя которых начинается на символ «X». На первый взгляд подобные исправления обычно применяются в руткитах для оставления скрытой лазейки в привязке к процессу, но разбор показал, что изменение было добавлено в 2019 году для временного устранения всплывшего нарушения совместимости с пространством пользователя, в соответствии с принципом, что изменения в ядре не должны нарушать совместимость с приложениями.

Проблемы возникали при попытке использования механизма атомарного изменения видеорежима в применяемом в X.Org-сервере DDX-драйвере xf86-video-modesetting, чем и была обусловлена привязка к процессам, начинающимся на символ «X» (подразумевалось, что обходной манёвр применяется к процессу «Xorg»). Почти сразу проблема в X.Org была устранена (использование атомарного API было отключено по умолчанию), но из ядра временное исправление убрать забыли и попытка отправки ioctl для атомарного изменения режима для всех процессов, начинающихся на символ «X», до сих пор продолжает приводить к возвращению ошибки.


   if (current->comm[0] == 'X' && req->value == 1) {
	pr_info("broken atomic modeset userspace detected, disabling atomic\n");
	return -EOPNOTSUPP;
   }

Источники

править

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.