CVE-2026-80631
largeNULL pointer dereference in Linux kernel btrfs LZO decompression
CVE-2026-80631 is a missing bounds check in the Linux kernel's btrfs LZO decompression path: lzo_decompress_bio() validates each on-disk segment length (seg_len) only against the workspace cbuf size and not against the total compressed input size (compressed_len). A crafted or corrupt btrfs extent can therefore contain a segment whose length passes the cbuf check but runs past the end of the compressed input, so copy_compressed_segment() walks off the last folio, bio_next_folio() returns NULL, and folio_size(NULL) faults, crashing the kernel (KASAN null-pointer read at address 0 in lzo_decompress_bio, fs/btrfs/lzo.c:383). An attacker who can get such crafted on-disk data read from an LZO-compressed btrfs volume gains a kernel denial of service; the CVSS vector (AV:N/AC:L/PR:N/UI:N, A:H only) indicates no confidentiality or integrity impact. Any Linux system running a kernel with the flawed btrfs LZO code is potentially affected, but only when btrfs volumes using LZO compression are read; note the crash occurs by default (CONFIG_BTRFS_ASSERT disabled). No public proof-of-concept, in-the-wild exploitation, or KEV listing is known, and EPSS estimates a 0.3% probability of exploitation within 30 days.
What to do: Install kernel updates from your distribution that incorporate the upstream btrfs LZO fix (the advisory does not list fixed version numbers, so track your vendor's kernel advisory). Until patched, avoid mounting or attaching btrfs filesystems or images of untrusted provenance that use LZO compression, and treat any null-pointer-deref crash reports in lzo_decompress_bio (fs/btrfs/lzo.c) as this vulnerability rather than failing hardware.
| Linux (kernel.org) Linux kernel — btrfs filesystem, LZO decompression (lzo_decompress_bio / copy_compressed_segment) | Version range not enumerated in the advisory; kernels containing the vulnerable btrfs LZO validation are affected, resolved by the upstream btrfs patch that rej |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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.
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
In the news0 stories
No ingested article mentions this CVE yet.