CVE-2026-80809

ocfs2: fix missing metadata reservation for large xattrs

State
Published
Severity
Not scored
Published
Sep 4, 2026
Updated
Oct 19, 2026
Reserved
Aug 26, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

ocfs2: fix missing metadata reservation for large xattrs

[BUG] lsetxattr() panics the kernel when setting a large xattr value on a fragmented filesystem where the file already has an external xattr block.

[CAUSE] ocfs2_calc_xattr_set_need() never reserves metadata blocks for a new xattr value's extent tree when the file already has an external xattr block. The not_found path leaves meta_add at zero, so meta_ac is NULL when ocfs2_xattr_extend_allocation() runs.

A new value root has room for a single extent record. On a fragmented filesystem, the allocator cannot satisfy the xattr value in one contiguous run, so each non-contiguous run requires its own extent record. When the value root's extent list is full and meta_ac is NULL, ocfs2_add_clusters_in_btree() returns RESTART_META, and ocfs2_xattr_extend_allocation() hits BUG_ON(why == RESTART_META).

[FIX] The case where no xattr block exists yet already calls ocfs2_extend_meta_needed(&def_xv.xv.xr_list) to reserve value tree metadata. Add the same reservation to the case where an xattr block already exists, making the two cases consistent.

Replace the BUG_ON with a -ENOSPC return so that if RESTART_META is returned despite the reservation, the error propagates to userspace instead of panicking the kernel.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • a78f9f4668949a6588b8872f162e86685c63d023 to before 743ac908282ac97ef6e73ac3a92df2cc8ecb7479Affected
  • a78f9f4668949a6588b8872f162e86685c63d023 to before 04ba24bce61c917b5b3009f0db470cbb72e26a0dAffected
  • a78f9f4668949a6588b8872f162e86685c63d023 to before b4663405ae29d36011cd712d243456f3f9ab700dAffected
  • a78f9f4668949a6588b8872f162e86685c63d023 to before 6a009f1e61b11d9e23d3c5aa1dacfb010945da45Affected
  • a78f9f4668949a6588b8872f162e86685c63d023 to before b9eb5c9fdd81d82976d4d5be2b2458eb7d7e46ecAffected
  • a78f9f4668949a6588b8872f162e86685c63d023 to before 6176313622e34fa3e2b66b9d0682d1e1c6b365c5Affected
  • a78f9f4668949a6588b8872f162e86685c63d023 to before a3ccb57086dd7652d5ecb826486144198a98a8e9Affected
  • a78f9f4668949a6588b8872f162e86685c63d023 to before 50f0cbec45b0f3fd7e1263d01916518dbf31eb3fAffected
  • a78f9f4668949a6588b8872f162e86685c63d023 to before 0cdc7dde00ec63ac714271fa8b2918d630b8da1aAffected
  • 92f61d8a31e270f9391e7bcc0ac638bd4262a8e0Affected
  • 2.6.34.2 to before 2.6.35Affected
LinuxLinux
  • 2.6.35Affected
  • before 2.6.35Not affected
  • 5.10.267 through 5.10.*Not affected
  • 5.15.218 through 5.15.*Not affected
  • 6.1.185 through 6.1.*Not affected
  • 6.6.154 through 6.6.*Not affected
  • 6.12.106 through 6.12.*Not affected
  • 6.18.47 through 6.18.*Not affected
  • 7.1.11 through 7.1.*Not affected
  • 7.2.1 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.