CVE-2026-31580

HighCVSS 7.8/10Last modified Nov 11, 2026

Description

In the Linux kernel, the following vulnerability has been resolved:

bcache: fix cached_dev.sb_bio use-after-free and crash

In our production environment, we have received multiple crash reports regarding libceph, which have caught our attention:

``` [6888366.280350] Call Trace: [6888366.280452] blk_update_request+0x14e/0x370 [6888366.280561] blk_mq_end_request+0x1a/0x130 [6888366.280671] rbd_img_handle_request+0x1a0/0x1b0 [rbd] [6888366.280792] rbd_obj_handle_request+0x32/0x40 [rbd] [6888366.280903] __complete_request+0x22/0x70 [libceph] [6888366.281032] osd_dispatch+0x15e/0xb40 [libceph] [6888366.281164] ? inet_recvmsg+0x5b/0xd0 [6888366.281272] ? ceph_tcp_recvmsg+0x6f/0xa0 [libceph] [6888366.281405] ceph_con_process_message+0x79/0x140 [libceph] [6888366.281534] ceph_con_v1_try_read+0x5d7/0xf30 [libceph] [6888366.281661] ceph_con_workfn+0x329/0x680 [libceph] ```

After analyzing the coredump file, we found that the address of dc->sb_bio has been freed. We know that cached_dev is only freed when it is stopped.

Since sb_bio is a part of struct cached_dev, rather than an alloc every time. If the device is stopped while writing to the superblock, the released address will be accessed at endio.

This patch hopes to wait for sb_write to complete in cached_dev_free.

It should be noted that we analyzed the cause of the problem, then tell all details to the QWEN and adopted the modifications it made.

Metrics

CVSS 3.1 7.8/10CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Weakness enumeration

Affected software

VendorProductVersions
LinuxLinux>= cafe563591446cf80bfbc2fe3bc72a2e36cf1060, < 81f44ed8c3f54abb7561ece774ea4cca5070b2f2; >= cafe563591446cf80bfbc2fe3bc72a2e36cf1060, < f50e7c325ab1207fe941555bcff659f6d7050572; >= cafe563591446cf80bfbc2fe3bc72a2e36cf1060, < 9467d360be70e6ee55b0c1cd2a1f1424f57b5b85; >= cafe563591446cf80bfbc2fe3bc72a2e36cf1060, < 47fa09fe7f3e09df28a51cb2cbd8f5d2f7f6edc1; >= cafe563591446cf80bfbc2fe3bc72a2e36cf1060, < add4982510f3b7c318a2dd7438bdc9c63171e753; >= cafe563591446cf80bfbc2fe3bc72a2e36cf1060, < 2d6965581e164fa2ba3f7652ddae5535f6336576; >= cafe563591446cf80bfbc2fe3bc72a2e36cf1060, < 4f71c8ba2dc009042493021d94a9718fbe2ebf27; >= cafe563591446cf80bfbc2fe3bc72a2e36cf1060, < 383f7fec0de8cee1cf7ae1f9d9f14044a61f10f9; >= cafe563591446cf80bfbc2fe3bc72a2e36cf1060, < fec114a98b8735ee89c75216c45a78e28be0f128
LinuxLinux3.10
SiemensSIMATIC S7-1500 TM MFP - GNU/Linux subsystem< *

References

Timeline

Published
Apr 24, 2026
Last modified
Nov 11, 2026
NVD status
Modified

Related CVEs from 2026

CVE-2026-315817.8In the Linux kernel, the following vulnerability has been resolved: ALSA: 6fire: fix use-after-free on disconnect In usb6fire_chip_abort()CVE-2026-315827.8In the Linux kernel, the following vulnerability has been resolved: hwmon: (powerz) Fix use-after-free on USB disconnect After powerz_discCVE-2026-315837.8In the Linux kernel, the following vulnerability has been resolved: media: em28xx: fix use-after-free in em28xx_v4l2_open() em28xx_v4l2_opCVE-2026-315847.8In the Linux kernel, the following vulnerability has been resolved: media: mediatek: vcodec: fix use-after-free in encoder release path ThCVE-2026-315855.5In the Linux kernel, the following vulnerability has been resolved: media: vidtv: fix nfeeds state corruption on start_streaming failure sCVE-2026-315867.8In the Linux kernel, the following vulnerability has been resolved: mm: blk-cgroup: fix use-after-free in cgwb_release_workfn() cgwb_releaCVE-2026-315877.8In the Linux kernel, the following vulnerability has been resolved: ASoC: qcom: q6apm: move component registration to unmanaged version q6CVE-2026-315888.8In the Linux kernel, the following vulnerability has been resolved: KVM: x86: Use scratch field in MMIO fragment to hold small write valuesCVE-2026-315899.8In the Linux kernel, the following vulnerability has been resolved: mm: call ->free_folio() directly in folio_unmap_invalidate() We can onCVE-2026-315905.5In the Linux kernel, the following vulnerability has been resolved: KVM: SEV: Drop WARN on large size for KVM_MEMORY_ENCRYPT_REG_REGION DrCVE-2026-315915.5In the Linux kernel, the following vulnerability has been resolved: KVM: SEV: Lock all vCPUs when synchronzing VMSAs for SNP launch finish CVE-2026-315925.5In the Linux kernel, the following vulnerability has been resolved: KVM: SEV: Protect *all* of sev_mem_enc_register_region() with kvm->lock
CVE-2026-31580: High severity, CVSS 7.8 | Vulnix