Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

CVE-2026-97437

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
24/09/2026
Última modificación:
25/09/2026

Descripción

*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> ntfs3: fix out-of-bounds read in ntfs_dir_emit() and hdr_find_e()<br /> <br /> The bounds check in ntfs_dir_emit() compares fname-&gt;name_len (a<br /> character count) against e-&gt;size (a byte count) without accounting<br /> for the 2-byte-per-character UTF-16LE encoding or the ATTR_FILE_NAME<br /> header size:<br /> <br /> if (fname-&gt;name_len + sizeof(struct NTFS_DE) &gt; le16_to_cpu(e-&gt;size))<br /> <br /> This computes: name_len + 16 &gt; e_size<br /> <br /> The correct check must account for the ATTR_FILE_NAME header (66 bytes<br /> before the name) and the UTF-16LE character size (2 bytes each):<br /> <br /> sizeof(NTFS_DE) + offsetof(ATTR_FILE_NAME, name) +<br /> name_len * sizeof(short) &gt; e_size<br /> <br /> Which computes: 16 + 66 + name_len * 2 &gt; e_size<br /> <br /> The correct calculation already exists as fname_full_size() in ntfs.h<br /> and is used in cmp_fnames(), namei.c, and fslog.c, but was not used<br /> in the readdir path.<br /> <br /> A crafted NTFS image with an index entry containing a small e-&gt;size<br /> but large fname-&gt;name_len bypasses the current check, causing<br /> ntfs_utf16_to_nls() to read past the entry boundary.<br /> <br /> Additionally, add a key_size validation in hdr_find_e() to ensure the<br /> declared key_size does not exceed the available entry data, preventing<br /> comparison functions from reading past entry boundaries on the lookup<br /> path.