CVE-2026-80631

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

State
Published
Severity
7.5 High
Published
Aug 28, 2026
Updated
Oct 30, 2026
Reserved
Aug 26, 2026

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.17.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • a6e66e6f8c1b685e11b778bef614480a9c1a5278 to before e4325fb00e0c7269cb67f97d7148507787a57fd7Affected
  • a6e66e6f8c1b685e11b778bef614480a9c1a5278 to before d9b17f9ce67d00e48fab62dcae197612a58f625fAffected
  • a6e66e6f8c1b685e11b778bef614480a9c1a5278 to before 1c48c8c807e49ac4f72819a89035fb8d2d094015Affected
  • a6e66e6f8c1b685e11b778bef614480a9c1a5278 to before be7fb59512ffc2da5d98214a00117dfe9eccab78Affected
  • a6e66e6f8c1b685e11b778bef614480a9c1a5278 to before 1641d058adfbd50cf95d54581ed5d142ee82c07fAffected
  • a6e66e6f8c1b685e11b778bef614480a9c1a5278 to before b0d27d43791b7a3057c3c4aedf9b4aa033d37c46Affected
LinuxLinux
  • 5.15Affected
  • before 5.15Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.18.57 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.