Jueves, 22 de octubre de 2026

Lo más relevante del hosting en el mundo, en español · ehost.ec →

Linux elimina las funciones inseguras __get_user() y __put_user() del kernel

El mantenedor del kernel, Linus Torvalds, fusionó un cambio que retira las históricas funciones __get_user() y __put_user() del árbol principal del kernel. La modificación fue anunciada por desarrolladores y aparece en el trabajo de integración reciente del kernel.

Por Equipo ehost3 min de lecturaFuente: Phoronix
Linux elimina las funciones inseguras __get_user() y __put_user() del kernel
Imagen ilustrativa generada con inteligencia artificial.

El árbol principal del kernel de Linux ha recibido un cambio que elimina las funciones __get_user() y __put_user(), consideradas históricas y potencialmente inseguras para el manejo de datos entre espacio de usuario y espacio kernel. La decisión forma parte de una limpieza del código que busca reducir el riesgo de errores relacionados con accesos a memoria y mejorar la seguridad y mantenibilidad del núcleo.

Qué cambió y por qué importa

Las funciones __get_user() y __put_user() se usan para copiar datos puntuales desde y hacia el espacio de usuario desde el código del kernel. Históricamente han servido en multitud de controladores y subsistemas, pero su diseño y uso han causado problemas: son susceptibles a errores por manejo incorrecto de tipos, alineamiento y comprobaciones insuficientes de acceso, lo que puede derivar en fallos o vulnerabilidades.

Al retirar estas funciones del árbol principal, los mantenedores buscan que el código del kernel utilice alternativas más explícitas y seguras para las operaciones entre espacios de memoria, como wrappers que validen tamaños, alineamientos y errores, o las funciones más modernas y específicas que ya existen en el kernel.

A quién afecta

  • Desarrolladores de controladores y subsistemas del kernel: deben dejar de usar __get_user() y __put_user() y adaptar el código a las alternativas recomendadas por los mantenedores.
  • Distribuciones y mantenedores de parches externos: si tienen código fuera del árbol principal que usa esas funciones, deberán parchearlo antes de integrar versiones del kernel que ya no las incluyan.
  • Administradores de sistemas y operadores de infraestructuras: el cambio no afecta directamente al uso diario del sistema, pero sí puede requerir actualizaciones de módulos externos o controladores fuera del árbol que no se mantengan al día.

Qué deben hacer los administradores y desarrolladores

  • Revisar módulos externos y parches para detectar usos de __get_user() y __put_user(). Sustituirlos por las funciones alternativas que validen correctamente tamaños y errores o por APIs modernas del kernel.
  • Compilar módulos y controladores con versiones recientes del kernel en un entorno de prueba antes de desplegar en producción para detectar problemas de compilación o comportamiento.
  • Actualizar flujos de integración continua que apliquen parches al kernel, evitando depender de funciones eliminadas.

Impacto práctico y explicación técnica

Las operaciones entre espacio de usuario y espacio kernel son delicadas porque el kernel no puede confiar en punteros provenientes del usuario: deben comprobarse accesos y copiar datos de forma segura. Las funciones eliminadas eran atómicas para tipos puntuales, pero su interfaz permitía errores comunes (por ejemplo, asumir alineamiento o no comprobar correctamente errores de lectura/escritura). Reemplazarlas por alternativas que hagan comprobaciones explícitas reduce la superficie de fallos y facilita auditorías.

Para desarrolladores esto implica escribir llamadas más claras: usar helpers que devuelvan códigos de error bien definidos, comprobar tamaños antes de copiar y preferir APIs que manejen buffers completos cuando proceda.

Contexto

La retirada de funciones históricas forma parte de la limpieza y modernización continuas del kernel. Cambios de este tipo suelen ser introducidos tras discusión entre mantenedores y pruebas en el árbol principal; los módulos fuera del árbol tienen más probabilidad de romperse si no se actualizan.

Nota: esta noticia resume el cambio de integración en el kernel y sus implicaciones técnicas. Si necesita adaptar código que interactúe con el kernel, pruebe las modificaciones en entornos controlados y revise la documentación del árbol principal para las alternativas recomendadas.

Lee también:

Fuente: Phoronix

Compartir