Skip to content
CVE PROGRAM SOURCE RECORD7.5 High

CVE-2026-80631

btrfs: lzo: reject compressed segment that overflows the compressed input

Description

In the Linux kernel, the following vulnerability has been resolved: btrfs: lzo: reject compressed segment that overflows the compressed input lzo_decompress_bio() validates each on-disk segment length seg_len only against the workspace cbuf size, not against the compressed input size (compressed_len, the total folio bytes of the bio). A crafted extent can carry a segment whose seg_len passes the cbuf check but runs past the end of the bio, so copy_compressed_segment() walks off the last folio: get_current_folio() then returns the NULL folio from bio_next_folio(), and with CONFIG_BTRFS_ASSERT disabled (default) folio_size(NULL) faults. BUG: KASAN: null-ptr-deref in lzo_decompress_bio (fs/btrfs/lzo.c:383) Read of size 8 at addr 0000000000000000 by task kworker/u8:1/29 Workqueue: btrfs-endio simple_end_io_work kasan_report (mm/kasan/report.c:590) lzo_decompress_bio (fs/btrfs/lzo.c:383) end_bbio_compressed_read (fs/btrfs/compression.c:1065) btrfs_bio_end_io (fs/btrfs/bio.c:135) btrfs_check_read_bio (fs/btrfs/bio.c:180 fs/btrfs/bio.c:285) simple_end_io_work process_one_work worker_thread Reject any segment whose payload would extend beyond compressed_len before copying it, treating it as corruption like the other on-disk validation failures in this function.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • a6e66e6f8c1b685e11b778bef614480a9c1a5278 to < e4325fb00e0c7269cb67f97d7148507787a57fd7affected
  • a6e66e6f8c1b685e11b778bef614480a9c1a5278 to < d9b17f9ce67d00e48fab62dcae197612a58f625faffected
  • a6e66e6f8c1b685e11b778bef614480a9c1a5278 to < 1c48c8c807e49ac4f72819a89035fb8d2d094015affected
  • a6e66e6f8c1b685e11b778bef614480a9c1a5278 to < be7fb59512ffc2da5d98214a00117dfe9eccab78affected
  • a6e66e6f8c1b685e11b778bef614480a9c1a5278 to < 1641d058adfbd50cf95d54581ed5d142ee82c07faffected
  • a6e66e6f8c1b685e11b778bef614480a9c1a5278 to < b0d27d43791b7a3057c3c4aedf9b4aa033d37c46affected

Linux Linux

Default version status: affected

  • 5.15affected
  • 0 to < 5.15unaffected
  • 6.1.191 to ≤ 6.1.*unaffected
  • 6.6.160 to ≤ 6.6.*unaffected
  • 6.12.114 to ≤ 6.12.*unaffected
  • 6.18.57 to ≤ 6.18.*unaffected
  • 7.1.5 to ≤ 7.1.*unaffected
  • 7.2 to ≤ *unaffected

References