CVE-2026-31580 json
bcache: fix cached_dev.sb_bio use-after-free and crash
published 2026-04-24 6 mo ago modified 2026-11-05 3 d ago also EUVD-2026-25473
- cvss
- 7.8
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.1%
- EPSS 0.1% chance of exploitation in 30 days, percentile 2%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- Linux Linux 5.10.258, 5.15.209, 6.1.175, 6.6.136, 6.12.83, 6.18.24, 6.19.14, 7.0.1, 7.1
- linux Debian 12 6.1.176-1
- linux Debian 13 6.12.85-1
- linux Debian 14 6.19.14-1
debian advisories DEBIAN-CVE-2026-31580
- linux Ubuntu 22.04 LTS 5.15.0-186.196
- linux Ubuntu 24.04 LTS 6.8.0-136.136
- linux Ubuntu 26.04 LTS 7.0.0-27.27
- linux-aws Ubuntu 22.04 LTS 5.15.0-1112.119
- linux-aws Ubuntu 24.04 LTS 6.8.0-1061.64
- linux-aws Ubuntu 26.04 LTS 7.0.0-1008.8
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1112.122
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1064.72
ubuntu advisories UBUNTU-CVE-2026-31580
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-syms SLES 16.0, Linux Micro Extras 6.2, SLES for SAP applications 16.0 6.12.0-160000.36.1
- kernel-obs-build Linux Micro Extras 6.2 6.12.0-160000.36.1
- kernel-rt Linux Micro 6.2 6.12.0-160000.36.1
- kernel-64kb SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.36.1
- kernel-source SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.36.1
- kernel-default SLES 16.0, SLE High Availability Extension 16.0, Linux Micro 6.2 +1 more 6.12.0-160000.36.1
- kernel-default-base SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.36.1.160000.2.17
- kernel-azure SLES for SAP applications 16.0, SLES 16.0 6.12.0-160000.36.1
suse advisories SUSE-SU-2026:22742-1SUSE-SU-2026:22769-1SUSE-SU-2026:22835-1SUSE-SU-2026:22812-1SUSE-SU-2026:2914-1SUSE-SU-2026:22433-1
- kernel-rt openSUSE Leap 16.0 6.12.0-160000.36.1
- dtb-aarch64 openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-64kb openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-syms openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-azure openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-obs-qa openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-source openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-default openSUSE Leap 16.0 6.12.0-160000.36.1
opensuse advisories openSUSE-SU-2026:21388-1openSUSE-SU-2026:10703-1
- git.kernel.org/stable/c/81f44ed8c3f54abb7561ece774ea4cca5070b2f2 commit
- git.kernel.org/stable/c/f50e7c325ab1207fe941555bcff659f6d7050572 commit
- git.kernel.org/stable/c/9467d360be70e6ee55b0c1cd2a1f1424f57b5b85 commit
- git.kernel.org/stable/c/47fa09fe7f3e09df28a51cb2cbd8f5d2f7f6edc1 commit
- git.kernel.org/stable/c/add4982510f3b7c318a2dd7438bdc9c63171e753 commit
- git.kernel.org/stable/c/2d6965581e164fa2ba3f7652ddae5535f6336576 commit
- git.kernel.org/stable/c/4f71c8ba2dc009042493021d94a9718fbe2ebf27 commit
- git.kernel.org/stable/c/383f7fec0de8cee1cf7ae1f9d9f14044a61f10f9 commit
- git.kernel.org/stable/c/fec114a98b8735ee89c75216c45a78e28be0f128 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-31580 updated
kernel: bcache: fix cached_dev.sb_bio use-after-free and crash
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
cisa ICSA-26-295-16 updated cvss 0.0
Siemens SIMATIC S7-1500 TM MFP
-
Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystemaffected: mitigation, no fix available
Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 3 d ago
Exploit prediction
0.13% chance of exploitation in the next 30 days, higher than 2% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected products
- Linux Linux
- Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem
Classification
- Weakness
-
- CWE-416 Use After Free
- Technology feeds
References
- git.kernel.org /stable/c/81f44ed8c3f54abb7561ece774ea4cca5070b2f2
- git.kernel.org /stable/c/f50e7c325ab1207fe941555bcff659f6d7050572
- git.kernel.org /stable/c/9467d360be70e6ee55b0c1cd2a1f1424f57b5b85
-
git.kernel.org
/stable/c/47fa09fe7f3e09df28a51cb2cbd8f5d2f7f6edc1
patch
-
git.kernel.org
/stable/c/add4982510f3b7c318a2dd7438bdc9c63171e753
patch
-
git.kernel.org
/stable/c/2d6965581e164fa2ba3f7652ddae5535f6336576
patch
-
git.kernel.org
/stable/c/4f71c8ba2dc009042493021d94a9718fbe2ebf27
patch
-
git.kernel.org
/stable/c/383f7fec0de8cee1cf7ae1f9d9f14044a61f10f9
patch
-
git.kernel.org
/stable/c/fec114a98b8735ee89c75216c45a78e28be0f128
patch
- cert-portal.siemens.com /productcert/html/ssa-784472.html
Sources
- CVE List CVE-2026-31580
- NVD CVE-2026-31580
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.