Liberar el kernel de Linux del código que cambia el comportamiento de los procesos que comienzan con X

Jason A. Donenfeld, autor de VPN WireGuard, llamó la atención de los desarrolladores sobre un truco sucio presente en el código del kernel de Linux que cambia el comportamiento de los procesos cuyo nombre comienza con el carácter "X". A primera vista, las correcciones como esta generalmente se aplican en los rootkits para dejar una laguna oculta en el enlace del proceso, pero el análisis mostró que el cambio se agregó en 2019 para corregir temporalmente una violación de compatibilidad del espacio de usuario que había surgido, de acuerdo con el principio de que los cambios en el núcleo no deberían romper la compatibilidad de la aplicación.

Surgieron problemas al intentar usar el mecanismo de cambio de modo de video atómico en el controlador DDX de ajuste de modo de video xf86 que se usa en el servidor X.Org, lo que provocó la vinculación a los procesos que comenzaban con el carácter "X" (se asumió que se aplicó la solución). al “ xorg”). Casi de inmediato, se solucionó el problema en X.Org (el uso de la API atómica estaba deshabilitado de manera predeterminada), pero se olvidó eliminar la solución provisional del kernel y se intentó enviar un ioctl para cambiar atómicamente el modo de todos los procesos que comienzan con el carácter "X" continúan dando como resultado un error. if (current->comm[0] == 'X' && req->value == 1) { pr_info("Espacio de usuario de modo atómico roto detectado, deshabilitando atómico\n"); volver -EOPNOTSUPP; }

Fuente: opennet.ru

Añadir un comentario