Джейсон Доненфилд (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;}
// cc-by opennet.ru
// converted with crypt’s opennet autoreposter
>>> Подробности