Copy Fail, la última vulnerabilidad en Linux, y el pollo que se está formando por detrás

Copy Fail es la última vulnerabilidad de escalado de privilegios encontrada en Linux, que permite a un atacante obtener una shell root en un sistema. ¿En qué consiste? ¿Cómo puedo saber si la versión que uso es vulnerable? ¿Por qué los responsables de algunas distros se han quejado de la manera en la que se ha comunicado la amenaza?

Esta semana, los principales agregadores de noticias de tecnología empezaron a portar un link a copy.fail, una web donde se alerta de una nueva vulnerabilidad encontrada en el núcleo Linux que afecta a todas las distribuciones Linux lanzadas desde 2017. El nombre real de la vulnerabilidad es CVE-2026-31431, pero fiel a las costumbres modernas, las vulnerabilidades más importantes comercialmente suelen tener algún tipo de nombre, logo y marketing detrás.

En el caso de Copy Fail, las primeras reacciones fueron muy variadas. Por un lado, la web creada alrededor de esta vulnerabilidad es puro marketing de la herramienta de seguridad que la ha encontrado. Sin embargo, la vulnerabilidad es auténtica, y a medida que han ido pasando los días, la cosa se ha ido poniendo cada vez más seria.

Continuar leyendo «Copy Fail, la última vulnerabilidad en Linux, y el pollo que se está formando por detrás»

Ahora puedes ejecutar Linux en Windows 95 (no es coña)

wsl9x es un programa para Windows 95, 98 y ME que permite ejecutar el kernel Linux 6.19 y un userland directamente como una aplicación más del sistema. En otras palabras, es una copia de WSL, pero que se ejecuta sobre versiones viejas de Microsoft Windows, sin requerir Windows 10 o Windows 11.

Está disponible en internet para descarga de código, y se puede compilar el driver que lo hace funcionar con el viejo compilador OpenWatcom.

Pantallazo de Windows 95 mostrando una terminal Linux ejecutando fastfetch, así como otras terminales.
wsl9x corriendo Linux 6.19 sobre Windows 95

¿Por qué existiría algo así? Ni idea, cada cual hace lo que quiere en su tiempo libre. El archivo de información en su repositorio abre con un «Orgullosamente escrito sin IA» que suena hasta celestial.

Es el año de Linux en… la Dreamcast

La Sega Dreamcast es una videoconsola que salió al mercado inicialmente en Japón en 1998. Dato curioso: aunque Sega desarrolló su propio sistema operativo para la consola, Microsoft adaptó Windows CE a la Dreamcast. El objetivo era facilitar a los programadores de juegos portar sus juegos para PC a Dreamcast llevando las mismas APIs de Microsoft.

¿Qué tiene que ver esto con Linux? Esta semana se han incorporado dos parches bastante inusuales en el kernel. El primero es un parche fechado a 5 de abril que corrige errores en el driver de GD-ROM. El GD-ROM es un disco propietario usado por la Dreamcast, desarrollado por Yamaha. De lejos, parece un CD, pero este disco óptico tiene más densidad y alcanza el gigabyte de capacidad.

El segundo, fechado a 10 de abril, agrega soporte para la VMUFAT. La VMU es la tarjeta de memoria que tenía la Dreamcast. Que no os engañe el nombre: ese bicho tiene una pantalla integrada, botones, y se conecta al mando de la consola. VMUFAT es el sistema de archivos que emplea.

Aunque es curioso que dediquen tiempo a asegurar que Linux funcione en dispositivos retro y exóticos, hace unos días también se empezó a retirar el soporte para arquitecturas antiguas como el 486, argumentando que es mejor que los desarrolladores empleen su tiempo en cosas más útiles. Por lo que esta dualidad en cuanto a qué drivers mantener o no resulta llamativa.

linux-libre 7.0 ya disponible

Tras la salida de Linux 7.0, había dos cosas que eran inminentes. Una es la apertura de la merge window de la 7.1, que ocurrirá hoy. Otra es que salga linux-libre 7.0.

linux-libre es una versión del kernel Linux donde todos los blobs privativos han sido retirados. De este modo, se cumple de forma más estricta el principio de la FSF de que el software debe ser libre y su código debe ser accesible.

Los blobs privativos son drivers que han sido incorporados al kernel, pero donde el código realmente no está disponible. linux-libre los elimina. Algunas distros, como Trisquel Linux, utilizan linux-libre. En otros casos, es posible cambiar a linux-libre.

Del anuncio de linux-libre 7.0, la lista de módulos retirados incluye estos blobs: amdgpu, adreno, TI PRUeth, air_en8811h, ath12k, TI VPE, rtw8852b, rt1320, rt5575 SPI, tas2783, Intel catpt. También se han tenido que limpiar partes de la documentación para que no se rompan al eliminar estos blobs privativos.

Novedades en Linux 7.0

Linux 7.0 ya está aquí. Pese al cambio de número, es una versión como cualquier otra. Linux siempre incrementa el contador cada 20 versiones. Aun así, esta versión trae mucha limpieza de código que ya no se usa, y soporte para nuevos dispositivos.

Linux 7.0 ya está aquí. Realmente lleva entre nosotros casi dos meses, pero sumando semanas, ya es el momento de sacar la primera versión de Linux 7.0 que no lleva la etiqueta de Release Candidate, así que para mucha gente ahora sí está aquí.

Pese al cambio de número, es una versión como cualquier otra. Linux incrementa el número que va antes del punto cada 20 versiones, de modo que de Linux 6.19 saltamos a Linux 7.0. Pero esto no significa que la 7.0 sea necesariamente más interesante que otras.

Hardware soportado

Por supuesto, no voy a enumerarlo todo. Primero, porque soy más de software que de hardware, así que no soy la mejor persona para hablar de estas cosas. KernelNewbies ya tiene la lista de parches ya enumerados y detallados para quien busque algo en detalle.

Lo más destacado es que esta versión ya trae soporte para Nova Lake de Intel y para el Zen 6 de AMD, que son los próximos procesadores de nueva generación que van a sacar ambas marcas. De hecho, AMD ha integrado un montón de dispositivos nuevos en esta versión.

Hay soporte para nuevos chips Bluetooth de Realtek y Mediatek. Soporte mejorado para el teclado Logitech K980. Y además, el módulo HID de Sony ahora soporta la guitarra del Rock Band 4, uniéndose a la larga lista de guitarras y controladores especializados de juegos de Play Station soportadas por el driver. Perfecto para echarte unos riffs mientras se actualizan paquetes.

No todo es código nuevo. Linux 7.0 elimina el modo portátil (laptop_mode) de su controlador de disco. El modo portátil permitía reducir y agrupar el acceso a disco para mantener los discos de aguja rotando el menor tiempo posible y ahorrar batería. Pero estos discos se han quedado atrás, lo que ha hecho que mantener ese código ya no sea relevante. Así que después de 20 años de servicio, esta característica ha sido eliminada.

Almacenamiento y sistemas de archivos

Linux 7.0 trae un nuevo tipo de sistema de archivos llamado nullfs. Pero no vas a interactuar mucho con él. Es el nuevo pseudo sistema de archivos que se usará durante el arranque como base para montar los discos y sistemas de archivos reales sobre él.

El driver del sistema de archivos XFS ahora tiene un mecanismo para reportar errores y estado de salud al kernel, lo que permite que existan herramientas que detecten estos cambios de estado, para registrarlo o, incluso, para iniciar un proceso de reparación. De hecho, como parte de este cambio, ahora cualquier sistema de archivos puede reportar al kernel información de estado y errores IO.

Se han introducido mejoras que incrementan el rendimiento de sistemas de archivos como ext4 o btrfs, y se han introducido parches que hacen más robustas las particiones NTFS en Linux.

Rust, ciudadano de primera clase

Aunque la forma de comunicarlo fue bastante lamentable, sobre todo por los titulares que nos dejaron esos días, el experimento «Rust en Linux» acabó hace unos meses. El resultado fue positivo, por lo que Rust ha echado raíces en el kernel y ahora está más integrado que nunca.

Por supuesto, cualquier subsistema puede decidir no participar todavía, pero como ya no es ningún tipo de experimento, se invita a desarrolladores y mantenedores de subsistemas a participar e integrar Rust.

Este carácter experimental nunca fue muy respetado porque hubo partes del núcleo que llevaban escritas en Rust desde hace versiones, pero ahora es oficial.

GNOME 50 ya está disponible en Manjaro Testing

En el último anuncio de novedades del foro de Manjaro se comunica que GNOME 50 ya está disponible en testing. Si utilizas Manjaro y estás en esta rama, estás a una actualización de probar la versión más reciente del entorno de escritorio.

Además, si usas KDE, ahora hay una migración clara para cambiar de SDDM a Plasma Login Manager, facilitando la transición al nuevo gestor de pantalla de KDE que está poco a poco empezando a sustituir al viejo SDDM.

Flatpak 1.16.4 disponible, importante actualizar

Si usas Flatpak, te conviene asegurarte de que está actualizado. La versión 1.16.4 acaba de ser publicada.

Corrige varios agujeros de seguridad. Uno de ellos, el más crítico, permite a una aplicación escapar de la sandboxy tener acceso al sistema sobre el que corre Flatpak, accediendo a archivos y pudiéndolos borrar. Para evitar que una aplicación malintencionada borre archivos fuera de la sandbox, xdg-desktop-portal ha sacado también la versión 1.20.4, una importante actualización que previene esto.

Es “curioso” como dar acceso a programas privativos y de código cerrado, aunque sean empaquetados dentro de entornos restringidos, introducen sorpresas interesantes.

Linux 7.1 empieza a retirar el soporte para 486

El 486 es un procesador de la serie x86 de Intel que salió al mercado en 1989. No hay que confundirlo con el Pentium (de hecho, ése es conocido como 586). Se trata de un procesador mucho más antiguo que, en algunos casos, ni siquiera tenía unidad FPU (la que permite hacer cálculos con decimales). Hasta ahora, Linux todavía le daba soporte, pero todo el código necesario para hacerlo compatible va a empezar a ser retirado.

El parche ha sido propuesto para la próxima versión a recomendación del propio Linus Torvalds. «Creo que va siendo hora de dejar el soporte para el i486 atrás. Hay cero motivos para que nadie gaste un segundo de esfuerzo en este tipo de problemas». En verdad, razón no le falta. Una cosa es arrancar el kernel, otra cosa es conseguir que el userland de GNU y el resto de programas logren funcionar en un procesador tan antiguo sin necesidad de capas y capas de emulación.

Si tienes un ordenador realmente antiguo y te apetece probar cosas que no sea el Windows 95, a partir de ahora tus opciones son versiones antiguas de GNU/Linux, o NetBSD, que no tiene problema en soportar docenas de arquitecturas exóticas y poco conocidas.

VitruvianOS sigue su desarrollo

Después de que diese de hablar la semana pasada con su anuncio oficial, esta semana VitruvianOS ha sacado dos nuevas actualizaciones del proyecto, la 0.3.1 y la 0.3.2. De acuerdo con los anuncios, han seguido avanzando con el desarrollo de las aplicaciones que forman parte del entorno de escritorio, y corregidos algunos de los problemas que la comunidad ha hecho llegar tras el anuncio de la semana pasada.

VitruvianOS es un sistema operativo que utiliza un núcleo Linux, pero con modificaciones que le permiten ofrecer la capa de servicios de BeOS y HaikuOS, lo que permite ejecutar aplicaciones para este sistema operativo con un mínimo número de cambios.

MX-Linux también rechaza un sistema de verificación de edad en Linux

En su último informe semanal, MX-Linux se ha posicionado también en contra de la nefasta implementación del protocolo de verificación de edad en systemd que lleva causando reacciones este mes.

“Nadie en el equipo de MX quiere implementar algo como una verificación de edad”, dicen en su nota. Pero también mencionan que nadie quiere implementar una función así, sea la distro que sea, por lo que, como dicen, a quien hay que perseguir y boicotear es a los gobiernos que tratan de aprobar leyes así en el planeta, no a las distribuciones GNU/Linux.

VitruvianOS: ¿el regreso de BeOS?

En redes y foros hoy se está hablando de VitruvianOS (o simplemente v-OS). Es un sistema operativo salido de la nada pero que, según su página web, ejecuta un núcleo Linux en tiempo real junto con una capa de compatibilidad llamada Nexus, que lo vuelve compatible con BeOS, un viejo sistema operativo de finales de los años 90, y su sucesor espiritual, Haiku-OS.

De acuerdo con las notas de versión más recientes, su entorno de escritorio no es ni X ni Wayland, y a la vista de los pantallazos, intenta rescatar la metáfora de escritorio que gastaba BeOS.

Desconozco sus intenciones y si es seguro o si es fruto de una alucinación hecha por IA. Constantemente aparecen sistemas operativos independientes creados de la nada por personas interesadas en el tema, pero normalmente suelen ser un pasatiempo en vez de algo serio.

Linux 6.12 ya disponible

Este fin de semana ha salido el kernel Linux versión 6.12. ¿Qué hay de nuevo? Bueno, tienes el anuncio escrito por Torvalds, pero si al igual que la mayoría de nosotros, no lo entiendes, y te has cansado de aparentar como que no pasa nada, este es un resumen de lo más destacado que se ha visto por la lista de correo estas semanas.

Nuevos «pantallazos de la muerte» y soporte para Raspberry Pi 5

El driver gráfico ahora tiene una característica interesante: puede generar códigos QR cuando se produzca un kernel panic, es decir, cuando el sistema operativo deje de funcionar por un error y pida reinicio. Es verdad que no le solemos prestar mucha atención a estos errores (tampoco es que se produzcan muchos, admitámoslo), pero para la gente que desarrolla cosas del núcleo o drivers sí les puede venir bien porque es quien más errores va a ver, y además a menudo en las máquinas virtuales que usa para trabajar.

Como un kernel panic suele ser muy largo y tener muchos números, a menudo no suele caber en pantalla. La solución: ahora Linux podrá generar un código QR que se puede escanear con el móvil para poder copiar de golpe todo el error y así poder buscarlo luego en internet. Muy rollo Windows 11, pero más útil. 😉

Un código QR y un mensaje en pequeño dice "reinicia el ordenador"
Fuente: kdj0c/panic_report en GitHub.

Por otra parte: si tienes una Raspberry Pi 5; lo primero, enhorabuena por la compra. Lo segundo, Linux 6.12 introduce soporte oficial para la Raspberry Pi 5, así que debería funcionar mejor. Sí, evidentemente hasta ahora te ha funcionado, pero se deberá a parches extra que podría estar aplicando la distribución que uses en tu Pi. La diferencia es que ahora esas mejoras y optimizaciones están en mainline, es decir, en el mismo kernel, por lo que ya son universales y no hacen falta parches.

No es el único aparato que ahora funciona mejor con el kernel. Otras tarjetas gráficas y procesadores también van a ver mejorado el soporte. Además, hay mejoras en el stack de red, mejoras en los sistemas de archivos soportados, y mejoras a la hora de virtualizar Linux en servidores. Además, se ha introducido código Rust que facilitará futuros desarrollos y conversiones de partes del núcleo a este lenguaje de programación.

Linux en tiempo real, 20 años después

En cualquier caso, una de las novedades más interesantes de esta versión será de interés de las perosnas que trabajen con sistemas automatizados especializados que necesitan usar lo que se conoce como un sistema operativo en tiempo real. (Si no sabes lo que es esto, tranqui, que en el siguiente párrafo te lo intento presentar.) Hasta ahora, para poder usar el kernel Linux en tiempo real, era necesario usar muchos parches o tirar de otro kernel como RTLinux, pero esa funcionalidad está por fin integrada en mainline.

Pero, ¿qué es un sistema operativo en tiempo real? Para explicar esto, hay que entender que los sistemas operativos modernos basados en multitarea a menudo suelen ser permisivos a la hora de orquestar el ritmo al que el procesador de tu máquina va repartiéndose el trabajo. Y eso puede provocar que a veces, cierto comando o cierta tarea que un programa necesita para poder funcionar, como puede ser enviar un paquete de datos a través de uno de los puertos del ordenador, se demore un poco más de lo normal. Aquí hablamos del rango de los milisegundos, así que tampoco es algo que puedas percibir con la vista, pero es suficiente para crear caos en algunos programas.

Por ejemplo, imagina un ordenador que se esté usando para capturar música de un instrumento durante una sesión de grabación, o el que controla las cámaras con las que se transmite un partido de fútbol. Aquí un microsegundo de latencia de más debido a que el sistema operativo estaba demasiado ocupado atendiendo otros procesos puede suponer microcortes y tener un impacto severo.

O en el caso de un sistema más científico, imagina el ordenador que controla un satélite espacial, lo preciso que debe ser a la hora de llevar a cabo los comandos de los programas que ejecuta. Los sistemas operativos en tiempo real permiten acotar con una precisión nanométrica cuándo los comandos que los programas solicitan al núcleo tienen que ser atendidos, para asegurarse de que los procesos más críticos no llegan tarde.

Lo dicho: hasta ahora para poder hacer esto en GNU/Linux era necesario utilizar un kernel especial para poder obtener algo parecido. Sin embargo, desde Linux 6.12, esta función va a estar disponible directamente con el mismo kernel Linux principal. Esta función llevaba 20 años en desarrollo, y por fin está disponible.

El panorama de Linux 6.13

Se espera que Linux 6.13 sea la primera versión del kernel Linux de 2025. Entre los cambios que hay preparados para ser incluidos en esta versión, continúa la adaptación de más componentes del kernel a Rust para poder integrarlos en drivers hechos en este lenguaje de programación.

Otro de los puntos fuertes de Linux 6.13 será la eliminación del driver para sistemas de archivo de tipo ReiserFS. Este sistema de archivos fue declarado obsoleto hace varios años, y se estableció que 2025 sería el momento en el que se retiraría del núcleo, para dar tiempo a hacer la migración a otro sistema de archivos diferente.