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] ocfs2calcxattrsetneed() never reserves metadata blocks for a new xattr value's extent tree when the file already has an external xattr block. The notfound path leaves metaadd at zero, so metaac is NULL when ocfs2xattrextendallocation() 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 metaac is NULL, ocfs2addclustersinbtree() returns RESTARTMETA, and ocfs2xattrextendallocation() hits BUGON(why == RESTART_META).
[FIX] The case where no xattr block exists yet already calls ocfs2extendmetaneeded(&defxv.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 BUGON with a -ENOSPC return so that if RESTARTMETA is returned despite the reservation, the error propagates to userspace instead of panicking the kernel.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80809.json",
"cna_assigner": "Linux"
}