¿Rust es realmente seguro? Hallan la primera vulnerabilidad en el nuevo código del núcleo de Linux

¿Rust es realmente seguro? Hallan la primera vulnerabilidad en el nuevo código del núcleo de Linux

Detectan un fallo en la versión en Rust de Android Binder que corrompe punteros de listas y provoca un bloqueo

image

En el núcleo de Linux cerraron la vulnerabilidad CVE-2025-68260 — la primera CVE oficialmente asignada a código en Rust en la rama principal del núcleo. El problema fue reportado por Greg Kroah-Hartman: afecta al controlador Android Binder, que fue reescrito en Rust, y en el peor de los casos puede provocar caídas del sistema.

Resumen del fallo — en una operación insegura dentro del Binder en Rust, donde se elimina un elemento de una lista enlazada y existe el riesgo de que otro hilo toque en paralelo los mismos punteros prev/next. Los desarrolladores partieron de la suposición de que el objeto NodeDeath nunca estaría en una lista "ajena", sin embargo en la práctica surgía una situación en la que el elemento podía procesarse simultáneamente desde distintos contextos.

Esto lo provocaba la lógica de Node::release: primero se adquiría el bloqueo, luego todos los elementos se trasladaban a una lista temporal en la pila, después se liberaba el bloqueo y comenzaba el recorrido de esa lista local. Si en paralelo otro hilo llamaba a remove inseguro en la lista original, surgía una condición de carrera que corrompía prev/next, y a continuación todo terminaba en corrupción de memoria y caídas. En el informe se muestra un ejemplo de caída con el error "Unable to handle kernel paging request" en el módulo rust_binder.

La corrección consistió en reescribir Node::release y extraer los elementos directamente de la lista original, sin trasladarlos a la lista local en la pila. Según el equipo de CVE del kernel de Linux, el problema apareció en Linux 6.18 (commit eafedbc7c050c44744fbdf80bdf3315e860b7513) y se solucionó en 6.18.1 (3428831264096d32f830a7fcfc7885dd263e511a), así como en 6.19-rc1 (3e0ae02ba831da2b707905f4e602e43f8507b8cc). El archivo afectado es drivers/android/binder/node.rs.

Como medida de protección, el equipo de CVE recomienda actualizarse a la versión estable actual del núcleo: los cambios individuales no se prueban "de forma aislada", y la aplicación selectiva de parches en el proyecto no cuenta con soporte oficial. Si la actualización no es posible, las correcciones necesarias se pueden encontrar en los commits indicados en el repositorio de la rama stable.

¿Estás cansado de que Internet sepa todo sobre ti?

¡Únete a nosotros y hazte invisible!