{"id":"CVE-2026-80808","state":"PUBLISHED","title":"ext4: stop retrying saturated xattr cache entries","description":"In the Linux kernel, the following vulnerability has been resolved:\n\next4: stop retrying saturated xattr cache entries\n\next4_xattr_block_set() retries when a cache entry selected for reuse\nhas a saturated reference count after taking the buffer lock. The retry\nreturns to the mbcache lookup without making that entry ineligible, so\nit can select the same unusable entry indefinitely. A task spinning\nthere can hold the parent directory's i_rwsem and leave concurrent\nrmdir callers blocked.\n\nNormally a reusable entry has a reference count below\nEXT4_XATTR_REFCOUNT_MAX because the count and MBE_REUSABLE_B are\nupdated under the same buffer lock. A corrupted filesystem can violate\nthat invariant. The syzbot reproducer reports allocator and xattr\ncorruption before triggering this retry loop.\n\nCheck the untrusted on-disk count before incrementing it, avoiding\noverflow, and clear MBE_REUSABLE_B when it is already saturated. The\nnext lookup then skips the entry that was just proven unusable. This\nmirrors the normal transition at EXT4_XATTR_REFCOUNT_MAX; the release\npath marks the entry reusable again on the exact 1024-to-1023\ntransition.\n\nUsing the same QEMU harness and guest parameters, current unpatched\nLinux hung in 6 of 8 420-second trials with the do_rmdir signature;\nrepresentative NMI backtraces caught the owner spinning in\next4_xattr_block_set(). The patched kernel completed 28 of 28 trials\nwithout a hung-task report; the final twelve trials exercised the\nreviewed overflow-safe form of the change. syzbot's patch testing also\ncompleted without reproducing the hang.","publishedAt":"2026-09-04T15:13:28.562Z","updatedAt":"2026-10-19T08:44:01.677Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1a56cd972ce121b6cf2517a47a578782bbd2ec95","status":"affected","lessThan":"119a2f053242ed75bdd2ebc95baf3ae7db6ccacf","versionType":"git"},{"version":"1be97463696c7291a3e1547614e96432b0bd3add","status":"affected","lessThan":"61631352a5b405c89be579de00903b72e6888aa4","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"8865cd664484517703df5c18a965dc3227572b87","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"a40c45268f4358207aa9c53764fed2e05f62986a","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"889ec86464d261f026f6c334040cfc6c58c99d58","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"4902a5cba21aeaf91e6b29e20e0967a5f6abdcd9","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"55ee6533c1db7f7656fa8dd19637f3f8b8c08dc5","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"dbd4aea175ad3c46436acb251e817b4374628072","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"54b6bd40898de7906acb2bccc9a96d1b8e6b4323","versionType":"git"},{"version":"98953044b3cdb2cb7d82e7365b659e2ed4f4ca4d","status":"affected","versionType":"git"},{"version":"af8ecc8d20e72130771cc076bce7fcf17ccda6c4","status":"affected","versionType":"git"},{"version":"c6fac5cf5a5098732623bcd00a8a3eb9f5465144","status":"affected","versionType":"git"},{"version":"96fa141fa295ae9428da73c56c9852053b575c04","status":"affected","versionType":"git"},{"version":"5.10.163","status":"affected","lessThan":"5.10.267","versionType":"semver"},{"version":"5.15.61","status":"affected","lessThan":"5.15.218","versionType":"semver"},{"version":"4.19.270","status":"affected","lessThan":"4.20","versionType":"semver"},{"version":"5.4.229","status":"affected","lessThan":"5.5","versionType":"semver"},{"version":"5.18.18","status":"affected","lessThan":"5.19","versionType":"semver"},{"version":"5.19.2","status":"affected","lessThan":"5.20","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/xattr.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.0","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/ext4/xattr.c"]}],"references":["https://git.kernel.org/stable/c/119a2f053242ed75bdd2ebc95baf3ae7db6ccacf","https://git.kernel.org/stable/c/61631352a5b405c89be579de00903b72e6888aa4","https://git.kernel.org/stable/c/8865cd664484517703df5c18a965dc3227572b87","https://git.kernel.org/stable/c/a40c45268f4358207aa9c53764fed2e05f62986a","https://git.kernel.org/stable/c/889ec86464d261f026f6c334040cfc6c58c99d58","https://git.kernel.org/stable/c/4902a5cba21aeaf91e6b29e20e0967a5f6abdcd9","https://git.kernel.org/stable/c/55ee6533c1db7f7656fa8dd19637f3f8b8c08dc5","https://git.kernel.org/stable/c/dbd4aea175ad3c46436acb251e817b4374628072","https://git.kernel.org/stable/c/54b6bd40898de7906acb2bccc9a96d1b8e6b4323"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:07.220Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/80xxx/CVE-2026-80808.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80808","state":"PUBLISHED","datePublished":"2026-09-04T15:13:28.562Z","dateUpdated":"2026-10-19T08:44:01.677Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-26T14:34:25.794Z"},"containers":{"cna":{"title":"ext4: stop retrying saturated xattr cache entries","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\next4: stop retrying saturated xattr cache entries\n\next4_xattr_block_set() retries when a cache entry selected for reuse\nhas a saturated reference count after taking the buffer lock. The retry\nreturns to the mbcache lookup without making that entry ineligible, so\nit can select the same unusable entry indefinitely. A task spinning\nthere can hold the parent directory's i_rwsem and leave concurrent\nrmdir callers blocked.\n\nNormally a reusable entry has a reference count below\nEXT4_XATTR_REFCOUNT_MAX because the count and MBE_REUSABLE_B are\nupdated under the same buffer lock. A corrupted filesystem can violate\nthat invariant. The syzbot reproducer reports allocator and xattr\ncorruption before triggering this retry loop.\n\nCheck the untrusted on-disk count before incrementing it, avoiding\noverflow, and clear MBE_REUSABLE_B when it is already saturated. The\nnext lookup then skips the entry that was just proven unusable. This\nmirrors the normal transition at EXT4_XATTR_REFCOUNT_MAX; the release\npath marks the entry reusable again on the exact 1024-to-1023\ntransition.\n\nUsing the same QEMU harness and guest parameters, current unpatched\nLinux hung in 6 of 8 420-second trials with the do_rmdir signature;\nrepresentative NMI backtraces caught the owner spinning in\next4_xattr_block_set(). The patched kernel completed 28 of 28 trials\nwithout a hung-task report; the final twelve trials exercised the\nreviewed overflow-safe form of the change. syzbot's patch testing also\ncompleted without reproducing the hang."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1a56cd972ce121b6cf2517a47a578782bbd2ec95","status":"affected","lessThan":"119a2f053242ed75bdd2ebc95baf3ae7db6ccacf","versionType":"git"},{"version":"1be97463696c7291a3e1547614e96432b0bd3add","status":"affected","lessThan":"61631352a5b405c89be579de00903b72e6888aa4","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"8865cd664484517703df5c18a965dc3227572b87","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"a40c45268f4358207aa9c53764fed2e05f62986a","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"889ec86464d261f026f6c334040cfc6c58c99d58","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"4902a5cba21aeaf91e6b29e20e0967a5f6abdcd9","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"55ee6533c1db7f7656fa8dd19637f3f8b8c08dc5","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"dbd4aea175ad3c46436acb251e817b4374628072","versionType":"git"},{"version":"65f8b80053a1b2fd602daa6814e62d6fa90e5e9b","status":"affected","lessThan":"54b6bd40898de7906acb2bccc9a96d1b8e6b4323","versionType":"git"},{"version":"98953044b3cdb2cb7d82e7365b659e2ed4f4ca4d","status":"affected","versionType":"git"},{"version":"af8ecc8d20e72130771cc076bce7fcf17ccda6c4","status":"affected","versionType":"git"},{"version":"c6fac5cf5a5098732623bcd00a8a3eb9f5465144","status":"affected","versionType":"git"},{"version":"96fa141fa295ae9428da73c56c9852053b575c04","status":"affected","versionType":"git"},{"version":"5.10.163","status":"affected","lessThan":"5.10.267","versionType":"semver"},{"version":"5.15.61","status":"affected","lessThan":"5.15.218","versionType":"semver"},{"version":"4.19.270","status":"affected","lessThan":"4.20","versionType":"semver"},{"version":"5.4.229","status":"affected","lessThan":"5.5","versionType":"semver"},{"version":"5.18.18","status":"affected","lessThan":"5.19","versionType":"semver"},{"version":"5.19.2","status":"affected","lessThan":"5.20","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/xattr.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.0","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/ext4/xattr.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/119a2f053242ed75bdd2ebc95baf3ae7db6ccacf"},{"url":"https://git.kernel.org/stable/c/61631352a5b405c89be579de00903b72e6888aa4"},{"url":"https://git.kernel.org/stable/c/8865cd664484517703df5c18a965dc3227572b87"},{"url":"https://git.kernel.org/stable/c/a40c45268f4358207aa9c53764fed2e05f62986a"},{"url":"https://git.kernel.org/stable/c/889ec86464d261f026f6c334040cfc6c58c99d58"},{"url":"https://git.kernel.org/stable/c/4902a5cba21aeaf91e6b29e20e0967a5f6abdcd9"},{"url":"https://git.kernel.org/stable/c/55ee6533c1db7f7656fa8dd19637f3f8b8c08dc5"},{"url":"https://git.kernel.org/stable/c/dbd4aea175ad3c46436acb251e817b4374628072"},{"url":"https://git.kernel.org/stable/c/54b6bd40898de7906acb2bccc9a96d1b8e6b4323"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T08:44:01.677Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.163","versionEndExcluding":"5.10.267"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.61","versionEndExcluding":"5.15.218"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.1.185"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.6.154"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.12.106"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.18.47"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"7.1.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"7.2.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"7.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.270"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4.229"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.18.18"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.19.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}