Desarrolladores de Linux discuten si se debe eliminar ReiserFS
Matthew Wilcox de Oracle, conocido por crear el controlador nvme (NVM Express) y el mecanismo para el acceso directo al sistema de archivos DAX, sugirió eliminar el sistema de archivos ReiserFS del kernel de Linux por analogía con los sistemas de archivos obsoletos ext y xiafs o acortando el código ReiserFS, dejando solo el soporte de «solo lectura».
Se menciona que el motivo de la eliminación fueron las dificultades adicionales con la actualización de la infraestructura del kernel, provocadas por el hecho de que, específicamente para ReiserFS, los desarrolladores se ven obligados a dejar el controlador de bandera obsoleto AOP_FLAG_CONT_EXPAND en el kernel, ya que ReiserFS sigue siendo el único sistema de archivos que usa esta funcion «write_begin» en el Kernel.
Al mismo tiempo, la última corrección en el código ReiserFS data de 2019, y no está claro cuánta demanda tiene este FS y si continúan usándolo.
Ante ello, un desarrollador de SUSE estuvo de acuerdo en que ReiserFS está en camino a la obsolescencia, pero no está claro si es lo suficientemente obsoleto como para eliminarlo del kernel, ya que menciona que ReiserFS continúa distribuyéndose con openSUSE y SLES, pero la base de usuarios del sistema de archivos es pequeña y se está reduciendo.
Para los usuarios corporativos, la compatibilidad con ReiserFS en SUSE se suspendió hace 3 o 4 años y el módulo ReiserFS no se incluye con el kernel de forma predeterminada. Como opción, Ian sugirió que empezáramos a mostrar una advertencia de obsolescencia al montar particiones ReiserFS y consideráramos este sistema de archivos listo para eliminar si nadie nos informa sobre el deseo de continuar usando este sistema de archivos dentro de uno o dos años.
Eduard Shishkin, que mantiene el sistema de archivos de ReiserFS, se unió a la discusión y proporcionó un parche que elimina el uso del indicador AOP_FLAG_CONT_EXPAND del código de ReiserFS. Matthew Wilcox aceptó el parche en su compilacion. Por lo tanto, se eliminó el motivo de la eliminación, y la cuestión de excluir ReiserFS del kernel se puede considerar pospuesta durante bastante tiempo.
No será posible descartar por completo el tema de la obsolescencia de ReiserFS debido al trabajo de exclusión del kernel de los sistemas de archivos con un problema no resuelto de 2038.
Por ejemplo, por este motivo, ya se preparó un cronograma para eliminar la cuarta versión del formato del sistema de archivos XFS del kernel (el nuevo formato XFS se propuso en el kernel 5.10 y cambió el desbordamiento del contador de tiempo a 2468). La compilación XFS v4 se desactivará de forma predeterminada en 2025 y el código se eliminará en 2030). Se propone elaborar un cronograma similar para ReiserFS, proporcionando al menos cinco años para la migración a otros sistemas de archivos o un formato de metadatos modificado.
Ademas de ello, tambien se destaca que hace ya algunos dias se dio a conocer la noticia de la vulnerabilidad (CVE-2022-25636) en Netfilter, que podría permitir la ejecución de código a nivel del kernel.
La vulnerabilidad se debe a un error al calcular el tamaño de la matriz flow->rule->action.entries en la función nft_fwd_dup_netdev_offload (definida en el archivo net/netfilter/nf_dup_netdev.c), lo que puede provocar que los datos controlados por el atacante escrito en un área de memoria fuera del búfer asignado.
El error se manifiesta al configurar las reglas «dup» y «fwd» en cadenas para las que se utiliza la aceleración de hardware del procesamiento de paquetes (descarga). Dado que el desbordamiento se produce antes de que se cree la regla de filtrado de paquetes y se verifique la compatibilidad con la descarga, la vulnerabilidad también se aplica a los dispositivos de red que no admiten la aceleración de hardware, como una interfaz de bucle invertido.
Se observa que el problema es bastante fácil de explotar, ya que los valores que van más allá del búfer pueden sobrescribir el puntero a la estructura net_device y los datos sobre el valor sobrescrito se devuelven al espacio del usuario, lo que permite averiguar las direcciones en memoria necesarias para llevar a cabo el ataque.
La explotación de la vulnerabilidad requiere la creación de ciertas reglas en nftables, lo que solo es posible con los privilegios CAP_NET_ADMIN, que puede obtener un usuario sin privilegios en un espacio de nombres de red separado (espacios de nombres de red). La vulnerabilidad también se puede utilizar para atacar los sistemas de aislamiento de contenedores.
Se ha anunciado un ejemplo de un exploit que permite a un usuario local elevar sus privilegios en Ubuntu 21.10 con el mecanismo de seguridad KASLR desactivado. El problema se manifiesta a partir del kernel 5.4. La solución todavía está disponible como parche.