Resumen
El CVE público de Linux describe un problema de anchura de enteros en dbExtendFS(), en fs/jfs/jfs_dmap.c. JFS calculaba el tamaño de un grupo de asignación con la expresión 1 << l2agsize. Un desplazamiento grande aplicado a un operando de 32 bits podía producir un comportamiento indefinido y un tamaño de grupo no válido.
La corrección convierte el operando izquierdo a s64 antes del desplazamiento: (s64)1 << l2agsize. Así, el cálculo se realiza con aritmética de 64 bits, en consonancia con el tipo en el que se almacena el tamaño del grupo. Convertir solo el resultado dejaría la operación problemática con su anchura original.
Un tamaño de grupo de asignación no válido puede afectar a operaciones posteriores del sistema de archivos. El aviso público menciona posibles corrupciones del sistema de archivos y caídas del kernel. También enlaza la corrección upstream y los registros de versiones afectadas; las correcciones propias de cada distribución deben contrastarse con el aviso del proveedor del paquete.
Para la revisión de código, la lección más amplia es examinar los tipos de las operaciones aritméticas intermedias, en especial los desplazamientos y los cálculos de tamaño. Una variable de destino amplia no hace segura, por sí sola, una expresión más estrecha.
Datos clave
- Registro CVE
- 2025
- Registro público
- Linux kernel · National Vulnerability Database
- Código afectado
- JFS filesystem · dbExtendFS() in fs/jfs/jfs_dmap.c
- Temas
- CVE-2025-37858 · JFS · Aritmética de enteros · Tipos intermedios