ntfs3: fix out-of-bounds read in ntfs_dir_emit() and hdr_find_e() (Linux Linux)

CVE-2026-97437
HIGH 7.1

En bref

Source
NVD
EPSS
EPSS 0.14 % · centile 3 ()
État
PUBLISHED
Publiée
Mise à jour
Attribuée par
Linux
Statut NVD
Received

Description

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

Références

Scores

VersionScoreVecteurÉvalué par
CVSS 3.1HIGH 7.1CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:HLinux
CVSS 3.1HIGH 7.1CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:HNVD · 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary)

Références européennes

Avis du CERT-FR

Produits affectés

ProduitVersions
Linux · Linuxaffected 4342306f0f0d5ff4315a204d315c1b51b914fca5 < d1f98938e437732c0ecdfc8ee451e12a072f6d07 ; affected 4342306f0f0d5ff4315a204d315c1b51b914fca5 < 0505f1e7bb5b981b6ed62d98b26ddce76142865d ; affected 4342306f0f0d5ff4315a204d315c1b51b914fca5 < 2f7d0ec8c10dc7bf7a8c9a9cb169f9a4d1fac2ba ; affected 4342306f0f0d5ff4315a204d315c1b51b914fca5 < ed6da1abeec50db9060d714f03743fe0b63e4fe4 ; affected 4342306f0f0d5ff4315a204d315c1b51b914fca5 < 6a8149a20e46086c756c2a9202e377c0b649a0c3 ; affected 4342306f0f0d5ff4315a204d315c1b51b914fca5 < aa1bdbb39f49c5bc9779316891c40005517842a5
Linux · Linuxaffected 5.15 ; unaffected 0 < 5.15 ; unaffected 5.15.222 ≤ 5.15.* ; unaffected 6.1.189 ≤ 6.1.* ; unaffected 6.6.158 ≤ 6.6.* ; unaffected 6.12.111 ≤ 6.12.*

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD