CVE-2026-80809 PUBLISHED

ocfs2: fix missing metadata reservation for large xattrs

Assigner: Linux
Reserved: 26.08.2026 Published: 04.09.2026 Updated: 04.09.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from a78f9f4668949a6588b8872f162e86685c63d023 to 743ac908282ac97ef6e73ac3a92df2cc8ecb7479 (excl.)
  • affected from a78f9f4668949a6588b8872f162e86685c63d023 to 04ba24bce61c917b5b3009f0db470cbb72e26a0d (excl.)
  • affected from a78f9f4668949a6588b8872f162e86685c63d023 to b4663405ae29d36011cd712d243456f3f9ab700d (excl.)
  • affected from a78f9f4668949a6588b8872f162e86685c63d023 to 6a009f1e61b11d9e23d3c5aa1dacfb010945da45 (excl.)
  • affected from a78f9f4668949a6588b8872f162e86685c63d023 to b9eb5c9fdd81d82976d4d5be2b2458eb7d7e46ec (excl.)
  • affected from a78f9f4668949a6588b8872f162e86685c63d023 to 6176313622e34fa3e2b66b9d0682d1e1c6b365c5 (excl.)
  • affected from a78f9f4668949a6588b8872f162e86685c63d023 to a3ccb57086dd7652d5ecb826486144198a98a8e9 (excl.)
  • affected from a78f9f4668949a6588b8872f162e86685c63d023 to 50f0cbec45b0f3fd7e1263d01916518dbf31eb3f (excl.)
  • affected from a78f9f4668949a6588b8872f162e86685c63d023 to 0cdc7dde00ec63ac714271fa8b2918d630b8da1a (excl.)
  • Version 92f61d8a31e270f9391e7bcc0ac638bd4262a8e0 is affected
  • affected from 2.6.34.2 to 2.6.35 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 2.6.35 is affected
  • unaffected from 0 to 2.6.35 (excl.)
  • unaffected from 5.10.267 to 5.10.* (incl.)
  • unaffected from 5.15.218 to 5.15.* (incl.)
  • unaffected from 6.1.185 to 6.1.* (incl.)
  • unaffected from 6.6.154 to 6.6.* (incl.)
  • unaffected from 6.12.106 to 6.12.* (incl.)
  • unaffected from 6.18.47 to 6.18.* (incl.)
  • unaffected from 7.1.11 to 7.1.* (incl.)
  • unaffected from 7.2.1 to 7.2.* (incl.)
  • unaffected from 7.3-rc1 to * (incl.)

References