CVE-2025-37858

In the Linux kernel, the following vulnerability has been resolved: fs/jfs: Prevent integer overflow in AG size calculation The JFS filesystem calculates allocation group (AG) size using 1 << l2agsize in dbExtendFS(). When l2agsize exceeds 31 (possible with >2TB aggregates on 32-bit systems), this 32-bit shift operation causes undefined behavior and improper AG sizing. On 32-bit architectures: - Left-shifting 1 by 32+ bits results in 0 due to integer overflow - This creates invalid AG sizes (0 or garbage values) in sbi->bmap->db_agsize - Subsequent block allocations would reference invalid AG structures - Could lead to: - Filesystem corruption during extend operations - Kernel crashes due to invalid memory accesses - Security vulnerabilities via malformed on-disk structures Fix by casting to s64 before shifting: bmp->db_agsize = (s64)1 << l2agsize; This ensures 64-bit arithmetic even on 32-bit architectures. The cast matches the data type of db_agsize (s64) and follows similar patterns in JFS block calculation code. Found by Linux Verification Center (linuxtesting.org) with SVACE.
CVSS

No CVSS.

Configurations

No configuration.

History

12 May 2025, 17:32

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: fs/jfs: Evitar el desbordamiento de enteros en el cálculo del tamaño de AG El sistema de archivos JFS calcula el tamaño del grupo de asignación (AG) usando 1 &lt;&lt; l2agsize en dbExtendFS(). Cuando l2agsize supera 31 (posible con agregados de &gt;2 TB en sistemas de 32 bits), esta operación de desplazamiento de 32 bits provoca un comportamiento indefinido y un tamaño de AG incorrecto. En arquitecturas de 32 bits: - Desplazar 1 a la izquierda por 32+ bits da como resultado 0 debido al desbordamiento de enteros - Esto crea tamaños de AG no válidos (0 o valores basura) en sbi-&gt;bmap-&gt;db_agsize - Las asignaciones de bloques posteriores harían referencia a estructuras AG no válidas - Podría conducir a: - Corrupción del sistema de archivos durante las operaciones de extensión - Fallos del kernel debido a accesos a memoria no válidos - Vulnerabilidades de seguridad mediante estructuras en disco malformadas Solución mediante la conversión a s64 antes del desplazamiento: bmp-&gt;db_agsize = (s64)1 &lt;&lt; l2agsize; Esto garantiza operaciones aritméticas de 64 bits incluso en arquitecturas de 32 bits. La conversión coincide con el tipo de dato de db_agsize (s64) y sigue patrones similares en el código de cálculo de bloques JFS. Encontrado por el Centro de Verificación de Linux (linuxtesting.org) con SVACE.

09 May 2025, 07:16

Type Values Removed Values Added
New CVE

Information

Published : 2025-05-09 07:16

Updated : 2025-05-12 17:32


NVD link : CVE-2025-37858

Mitre link : CVE-2025-37858

CVE.ORG link : CVE-2025-37858


JSON object : View

Products Affected

No product.

CWE

No CWE.