Vulnerability · CVE-2026-98959
btrfs: fix xattr replace when multiple xattrs are packed in the same item
Published Oct 23, 2026 · catalog updated Oct 25, 2026 · Linux Linux
Last checked Nov 3, 2026. A connected source was read within the last 7 days.
Check if you run it
No confirmed exploitation is on record for CVE-2026-98959. EPSS is 0.61%. Act only if a listed version of Linux Linux is installed.
Gaps on this record
- No vendor fix or required action is stored. Compare the linked advisory before you change production.
Same product and reporting
- CVE-2026-99260 · Unknown
- CVE-2026-99259 · Unknown
- CVE-2026-99258 · Unknown
- CVE-2026-99257 · Unknown
- CVE-2026-99255 · Unknown
- Severity
- Critical9.8
- Known exploitation
- Not in CISA/VulnCheck KEV
- EPSS
- 0.61%
- Remediation
- Advisory link
- Affected products
- Linux Kernel · vendor Linux Linux
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix xattr replace when multiple xattrs are packed in the same item If we have a btrfs_dir_item item that packs multiple xattrs and then we replace the value of one of them (with the setxattr(2) family of syscalls) with another value of a different size, we end up not having a fully initialized btrfs_dir_item, resulting in a corruption that the tree checker will detect at extent buffer writeback time. This is because in btrfs_setxattr() when we find a btrfs_dir_item with multiple xattrs (due to the crc32c hash of their name being the same) we delete one of the xattr items (btrfs_dir_item) and then insert a new one, but the deletion and insertion results in shifting existing data in the leaf and therefore when the new value of a xattr has a different size, the new btrfs_dir_item is placed in a leaf section that was not initialized and we only copy the value's data and set the value's length in the new btrfs_dir_item, without setting the name, the name's length, the key (which must be all zeroes for xattrs), flags (BTRFS_FT_XATTR) and transaction ID. The following script reproduces the issue: $ cat test.sh #!/bin/bash DEV=/dev/sdi MNT=/mnt/sdi mkfs.btrfs -f $DEV mount $DEV $MNT touch $MNT/testfile # Add two xattrs that, on btrfs, have the same hash (crc32c) for their # name and therefore are packed into the same btrfs_dir_item. setfattr -n user.foobar -v 123 $MNT/testfile setfattr -n user.WvG1c1Td -v qwerty $MNT/testfile # Verify the xattrs are present. echo "xattrs before:" getfattr --absolute-names --dump $MNT/testfile # Now replace the value of the foobar xattr with a significantly larger # value. setfattr -n user.foobar -v abcdefghijklmnopqrstuvwxyz $MNT/testfile # Check the xattrs have the expected values. echo "xattrs after:" getfattr --absolute-names --dump $MNT/testfile umount $MNT Running it: $ ./test.sh (...) xattrs before: # file: /mnt/sdi/testfile user.WvG1c1Td="qwerty" user.foobar="
Are you affected?
Enter the version you run. The result uses only the ranges stored on this record.
The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.
- Linux Kernel3.19.0 → 6.6.160; 6.7.0 → 6.12.113; 6.13.0 → 6.18.57
- vendor Linux Linuxversion unspecified
How to fix CVE-2026-98959
Upgrade
CVE-2026-98959 lists a fix boundary at 6.6.160. Compare the installed build with that boundary before you change production.
Version check
Seen in 3.19.0 → 6.6.160; 6.7.0 → 6.12.113; 6.13.0 → 6.18.57
Advisory
Open the cve_org record and follow its fix.
Official advisories
What to do
Three questions, each answered from this record only. Confirm the vendor advisory before you patch.
Should you patch?
No confirmed exploitation is on record for CVE-2026-98959. EPSS is 0.61%. Act only if a listed version of Linux Linux is installed.
Which versions are affected?
Compare what you have installed with Kernel 3.19.0 → 6.6.160; 6.7.0 → 6.12.113; 6.13.0 → 6.18.57. Compare the installed version with the linked vendor advisory before you change production.
What should an analyst verify?
No weakness class is stored. EPSS 0.61%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.
Code
The project this record applies to. Exploit listings stay in References.
Timeline
Detection, updates, and resolution for this record.
Oct 24, 2026 · CVE.org
Updated
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix xattr replace when multiple xattrs are packed in the same item If we have a btrfs_dir_item item that packs multiple xattrs and then we replace the value of one of them (with the setxattr(2) family of syscalls) with another value of a different size, we end up not having a fully initialized btrfs_dir_item, resulting in a
Oct 24, 2026 · OpenCVE
Detected
CVE-2026-98959 is named on the public OpenCVE page.
Oct 25, 2026 · OpenSSF OSV / OSV Scanner
Fix available
Kernel fixed in 6.6.160; Kernel fixed in 6.12.113; Kernel fixed in 6.18.57; Kernel fixed in 7.2.11
Oct 25, 2026 · OpenSSF OSV / OSV Scanner
Fix available
Kernel fixed in 6.6.160; 6.7.0
Oct 25, 2026 · OpenSSF OSV / OSV Scanner
Updated
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix xattr replace when multiple xattrs are packed in the same item If we have a btrfs_dir_item item that packs multiple xattrs and then we replace the value of one of them (with the setxattr(2) family of syscalls) with another value of a different size, we end up not having a fully initialized btrfs_dir_item, resulting in a
Sources
- CVE.orgVulnerability recordCVE-2026-98959
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix xattr replace when multiple xattrs are packed in the same item If we have a btrfs_dir_item item that packs multiple xattrs and then we replace the value of one of them (with the setxattr(2) family of s
cve.org - FIRST EPSSExploitation probabilityCVE-2026-98959
30-day exploitation probability 0.61%
first.org - OpenCVEVendor advisoryCVE-2026-98959
CVE-2026-98959 is named on the public OpenCVE page.
opencve.io - OpenSSF OSV / OSV ScannerPackage advisoryCVE-2026-98959
btrfs: fix xattr replace when multiple xattrs are packed in the same item
osv.dev - Tenable CVE DatabaseVulnerability recordCVE-2026-98959
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix xattr replace when multiple xattrs are packed in the same item If we have a btrfs_dir_item item that packs multiple xattrs and then we replace the value of one of them (with the setxattr(2) family of syscalls) with another value of a different size, we end up not having a fully initialized btrfs_dir_item, resulting in a
tenable.com
References
Freshness
Last verified in this catalog Nov 3, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.
- FIRST EPSSOct 28, 2026
- OpenSSF OSV / OSV ScannerOct 25, 2026
- Tenable CVE DatabaseOct 25, 2026
- CVE.orgOct 25, 2026
- OpenCVEOct 24, 2026