CVE-2025-39835 in Linux
Resumen
por VulDB • 2026-05-21
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
xfs: no propagar errores de disco ENODATA al código de xattr
ENODATA (también conocido como ENOATTR) tiene un significado muy específico en el código de xattr de xfs; concretamente, indica que el nombre de atributo solicitado no se ha encontrado.
Sin embargo, un error de nivel medio del disco también puede devolver ENODATA. En el mejor de los casos, este error de nivel medio puede filtrarse al espacio de usuario como "atributo no encontrado" cuando, de hecho, se trata de un error de E/S (disco).
En el peor de los casos, podemos provocar un oops en xfs_attr_leaf_get() cuando ejecutamos:
error = xfs_attr_leaf_hasname(args, &bp); if (error == -ENOATTR) {
xfs_trans_brelse(args->trans, bp); return error; }
debido a que un error ENODATA/ENOATTR procedente del disco nos deja con un bp nulo, y la llamada a xfs_trans_brelse provocará entonces una desreferenciación nula (null-deref).
Como se ha discutido en la lista de correo, realmente necesitamos modificar las funciones de E/S de nivel inferior para interceptar todos los errores de disco y garantizar que no permitamos que errores únicos como este se filtren hacia arriba a funciones xfs de nivel superior; muchos de estos errores deberían mapearse a EIO.
Sin embargo, este parche aborda directamente un bug reportado en el código de xattr, y debería ser seguro para su incorporación (backport) en kernels estables. Un parche de mayor alcance para gestionar más errores únicos en niveles inferiores podría seguir más adelante.
(Nota, antes de 07120f1abdff no se producía un oops, pero sí se devolvía el código de error incorrecto al espacio de usuario).
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.