{"id":"CVE-2026-80809","state":"PUBLISHED","title":"ocfs2: fix missing metadata reservation for large xattrs","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: fix missing metadata reservation for large xattrs\n\n[BUG]\nlsetxattr() panics the kernel when setting a large xattr value on a\nfragmented filesystem where the file already has an external xattr\nblock.\n\n[CAUSE]\nocfs2_calc_xattr_set_need() never reserves metadata blocks for a new\nxattr value's extent tree when the file already has an external xattr\nblock. The not_found path leaves meta_add at zero, so meta_ac is NULL\nwhen ocfs2_xattr_extend_allocation() runs.\n\nA new value root has room for a single extent record. On a fragmented\nfilesystem, the allocator cannot satisfy the xattr value in one\ncontiguous run, so each non-contiguous run requires its own extent\nrecord. When the value root's extent list is full and meta_ac is NULL,\nocfs2_add_clusters_in_btree() returns RESTART_META, and\nocfs2_xattr_extend_allocation() hits BUG_ON(why == RESTART_META).\n\n[FIX]\nThe case where no xattr block exists yet already calls\nocfs2_extend_meta_needed(&def_xv.xv.xr_list) to reserve value tree\nmetadata. Add the same reservation to the case where an xattr block\nalready exists, making the two cases consistent.\n\nReplace the BUG_ON with a -ENOSPC return so that if RESTART_META is\nreturned despite the reservation, the error propagates to userspace\ninstead of panicking the kernel.","publishedAt":"2026-09-04T15:13:29.769Z","updatedAt":"2026-10-19T08:44:02.755Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"743ac908282ac97ef6e73ac3a92df2cc8ecb7479","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"04ba24bce61c917b5b3009f0db470cbb72e26a0d","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"b4663405ae29d36011cd712d243456f3f9ab700d","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"6a009f1e61b11d9e23d3c5aa1dacfb010945da45","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"b9eb5c9fdd81d82976d4d5be2b2458eb7d7e46ec","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"6176313622e34fa3e2b66b9d0682d1e1c6b365c5","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"a3ccb57086dd7652d5ecb826486144198a98a8e9","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"50f0cbec45b0f3fd7e1263d01916518dbf31eb3f","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"0cdc7dde00ec63ac714271fa8b2918d630b8da1a","versionType":"git"},{"version":"92f61d8a31e270f9391e7bcc0ac638bd4262a8e0","status":"affected","versionType":"git"},{"version":"2.6.34.2","status":"affected","lessThan":"2.6.35","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ocfs2/xattr.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.35","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.35","versionType":"semver"},{"version":"5.10.267","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.218","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.185","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.154","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.106","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.47","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.11","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2.1","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ocfs2/xattr.c"]}],"references":["https://git.kernel.org/stable/c/743ac908282ac97ef6e73ac3a92df2cc8ecb7479","https://git.kernel.org/stable/c/04ba24bce61c917b5b3009f0db470cbb72e26a0d","https://git.kernel.org/stable/c/b4663405ae29d36011cd712d243456f3f9ab700d","https://git.kernel.org/stable/c/6a009f1e61b11d9e23d3c5aa1dacfb010945da45","https://git.kernel.org/stable/c/b9eb5c9fdd81d82976d4d5be2b2458eb7d7e46ec","https://git.kernel.org/stable/c/6176313622e34fa3e2b66b9d0682d1e1c6b365c5","https://git.kernel.org/stable/c/a3ccb57086dd7652d5ecb826486144198a98a8e9","https://git.kernel.org/stable/c/50f0cbec45b0f3fd7e1263d01916518dbf31eb3f","https://git.kernel.org/stable/c/0cdc7dde00ec63ac714271fa8b2918d630b8da1a"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:07.220Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/80xxx/CVE-2026-80809.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80809","state":"PUBLISHED","datePublished":"2026-09-04T15:13:29.769Z","dateUpdated":"2026-10-19T08:44:02.755Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-26T14:34:25.794Z"},"containers":{"cna":{"title":"ocfs2: fix missing metadata reservation for large xattrs","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: fix missing metadata reservation for large xattrs\n\n[BUG]\nlsetxattr() panics the kernel when setting a large xattr value on a\nfragmented filesystem where the file already has an external xattr\nblock.\n\n[CAUSE]\nocfs2_calc_xattr_set_need() never reserves metadata blocks for a new\nxattr value's extent tree when the file already has an external xattr\nblock. The not_found path leaves meta_add at zero, so meta_ac is NULL\nwhen ocfs2_xattr_extend_allocation() runs.\n\nA new value root has room for a single extent record. On a fragmented\nfilesystem, the allocator cannot satisfy the xattr value in one\ncontiguous run, so each non-contiguous run requires its own extent\nrecord. When the value root's extent list is full and meta_ac is NULL,\nocfs2_add_clusters_in_btree() returns RESTART_META, and\nocfs2_xattr_extend_allocation() hits BUG_ON(why == RESTART_META).\n\n[FIX]\nThe case where no xattr block exists yet already calls\nocfs2_extend_meta_needed(&def_xv.xv.xr_list) to reserve value tree\nmetadata. Add the same reservation to the case where an xattr block\nalready exists, making the two cases consistent.\n\nReplace the BUG_ON with a -ENOSPC return so that if RESTART_META is\nreturned despite the reservation, the error propagates to userspace\ninstead of panicking the kernel."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"743ac908282ac97ef6e73ac3a92df2cc8ecb7479","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"04ba24bce61c917b5b3009f0db470cbb72e26a0d","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"b4663405ae29d36011cd712d243456f3f9ab700d","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"6a009f1e61b11d9e23d3c5aa1dacfb010945da45","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"b9eb5c9fdd81d82976d4d5be2b2458eb7d7e46ec","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"6176313622e34fa3e2b66b9d0682d1e1c6b365c5","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"a3ccb57086dd7652d5ecb826486144198a98a8e9","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"50f0cbec45b0f3fd7e1263d01916518dbf31eb3f","versionType":"git"},{"version":"a78f9f4668949a6588b8872f162e86685c63d023","status":"affected","lessThan":"0cdc7dde00ec63ac714271fa8b2918d630b8da1a","versionType":"git"},{"version":"92f61d8a31e270f9391e7bcc0ac638bd4262a8e0","status":"affected","versionType":"git"},{"version":"2.6.34.2","status":"affected","lessThan":"2.6.35","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ocfs2/xattr.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.35","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.35","versionType":"semver"},{"version":"5.10.267","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.218","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.185","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.154","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.106","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.47","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.11","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2.1","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ocfs2/xattr.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/743ac908282ac97ef6e73ac3a92df2cc8ecb7479"},{"url":"https://git.kernel.org/stable/c/04ba24bce61c917b5b3009f0db470cbb72e26a0d"},{"url":"https://git.kernel.org/stable/c/b4663405ae29d36011cd712d243456f3f9ab700d"},{"url":"https://git.kernel.org/stable/c/6a009f1e61b11d9e23d3c5aa1dacfb010945da45"},{"url":"https://git.kernel.org/stable/c/b9eb5c9fdd81d82976d4d5be2b2458eb7d7e46ec"},{"url":"https://git.kernel.org/stable/c/6176313622e34fa3e2b66b9d0682d1e1c6b365c5"},{"url":"https://git.kernel.org/stable/c/a3ccb57086dd7652d5ecb826486144198a98a8e9"},{"url":"https://git.kernel.org/stable/c/50f0cbec45b0f3fd7e1263d01916518dbf31eb3f"},{"url":"https://git.kernel.org/stable/c/0cdc7dde00ec63ac714271fa8b2918d630b8da1a"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T08:44:02.755Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.35","versionEndExcluding":"5.10.267"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.35","versionEndExcluding":"5.15.218"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.35","versionEndExcluding":"6.1.185"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.35","versionEndExcluding":"6.6.154"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.35","versionEndExcluding":"6.12.106"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.35","versionEndExcluding":"6.18.47"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.35","versionEndExcluding":"7.1.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.35","versionEndExcluding":"7.2.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.35","versionEndExcluding":"7.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.34.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}