Skip to content
Fencer Vulns
no cvss —

CVE-2023-53791 json

md: fix warning for holder mismatch from export_rdev()

published 2025-12-09 11 mo ago modified 2026-06-17 4 mo ago also EUVD-2023-60115

cvss
—
not scored
cisa kev
Not listed
not in CISA's catalog
epss
0.2%
EPSS 0.2% chance of exploitation in 30 days, percentile 8%
public exploits
0
none known

Summary

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

md: fix warning for holder mismatch from export_rdev()

Commit a1d767191096 ("md: use mddev->external to select holder in export_rdev()") fix the problem that 'claim_rdev' is used for blkdev_get_by_dev() while 'rdev' is used for blkdev_put().

However, if mddev->external is changed from 0 to 1, then 'rdev' is used for blkdev_get_by_dev() while 'claim_rdev' is used for blkdev_put(). And this problem can be reporduced reliably by following:

New file: mdadm/tests/23rdev-lifetime

devname=${dev0##*/} devt=`cat /sys/block/$devname/dev` pid="" runtime=2

clean_up_test() { pill -9 $pid echo clear > /sys/block/md0/md/array_state }

trap 'clean_up_test' EXIT

add_by_sysfs() { while true; do echo $devt > /sys/block/md0/md/new_dev done }

remove_by_sysfs(){ while true; do echo remove > /sys/block/md0/md/dev-${devname}/state done }

echo md0 > /sys/module/md_mod/parameters/new_array || die "create md0 failed"

add_by_sysfs & pid="$pid $!"

remove_by_sysfs & pid="$pid $!"

sleep $runtime exit 0

Test cmd:

./test --save-logs --logdir=/tmp/ --keep-going --dev=loop --tests=23rdev-lifetime

Test result:

------------[ cut here ]------------ WARNING: CPU: 0 PID: 960 at block/bdev.c:618 blkdev_put+0x27c/0x330 Modules linked in: multipath md_mod loop CPU: 0 PID: 960 Comm: test Not tainted 6.5.0-rc2-00121-g01e55c376936-dirty #50 RIP: 0010:blkdev_put+0x27c/0x330 Call Trace: <TASK> export_rdev.isra.23+0x50/0xa0 [md_mod] mddev_unlock+0x19d/0x300 [md_mod] rdev_attr_store+0xec/0x190 [md_mod] sysfs_kf_write+0x52/0x70 kernfs_fop_write_iter+0x19a/0x2a0 vfs_write+0x3b5/0x770 ksys_write+0x74/0x150 __x64_sys_write+0x22/0x30 do_syscall_64+0x40/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd

Fix the problem by recording if 'rdev' is used as holder.

Patch / fix

  • Linux Linux 6.5.5, 6.6
  • linux Debian 14, Debian 13 6.5.6-1

debian advisories DEBIAN-CVE-2023-53791

  • kernel RHEL 9 5.14.0-427.13.1.el9_4
  • rv RHEL 9 5.14.0-427.13.1.el9_4
  • perf RHEL 9 5.14.0-427.13.1.el9_4
  • rtla RHEL 9 5.14.0-427.13.1.el9_4
  • bpftool RHEL 9 7.3.0-427.13.1.el9_4
  • libperf RHEL 9 5.14.0-427.13.1.el9_4
  • kernel-rt RHEL 9 5.14.0-427.13.1.el9_4
  • kernel-64k RHEL 9 5.14.0-427.13.1.el9_4

red hat advisories RHSA-2024:2394

  • kernel-rt Linux Micro 6.1, Linux Micro 6.0 6.4.0-40.1
  • kernel-source-rt Linux Micro 6.1, Linux Micro 6.0 6.4.0-40.1
  • kernel-source Linux Micro 6.1, Linux Micro 6.0 6.4.0-39.1
  • kernel-default Linux Micro 6.1, Linux Micro 6.0 6.4.0-39.1
  • kernel-kvmsmall Linux Micro 6.1, Linux Micro 6.0 6.4.0-39.1
  • kernel-default-base Linux Micro 6.1, Linux Micro 6.0 6.4.0-39.1.21.16
  • kernel-64kb SLE Module for Basesystem 15 SP7 6.4.0-150700.53.28.1
  • kernel-syms SLE Module for Development Tools 15 SP7 6.4.0-150700.53.28.1

suse advisories SUSE-SU-2026:20845-1SUSE-SU-2026:20876-1SUSE-SU-2026:20477-1SUSE-SU-2026:20498-1SUSE-SU-2026:0315-1SUSE-SU-2026:0293-1

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-2023-53791 updated cvss 3.7

kernel: md: fix warning for holder mismatch from export_rdev()

  • Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more
    affected: workaround, no fix planned “Out of support scope”
  • Red Hat Enterprise Linux 9 kernel-rt, kernel-rt-kvm, kernel-rt-core, kernel-rt-modules, kernel-rt-debug-kvm, kernel-rt-debug-core, +12 more
    affected: workaround, no fix available
  • Red Hat Enterprise Linux AppStream (v. 9) rv 5.14.0-427.13.1.el9_4, perf 5.14.0-427.13.1.el9_4, rtla 5.14.0-427.13.1.el9_4, kernel-devel-matched 5.14.0-427.13.1.el9_4, kernel-64k-devel-matched 5.14.0-427.13.1.el9_4, kernel-debug-devel-matched 5.14.0-427.13.1.el9_4, +6 more Red Hat Enterprise Linux BaseOS (v. 9) bpftool 7.3.0-427.13.1.el9_4, kernel 5.14.0-427.13.1.el9_4, kernel-64k 5.14.0-427.13.1.el9_4, kernel-core 5.14.0-427.13.1.el9_4, kernel-tools 5.14.0-427.13.1.el9_4, python3-perf 5.14.0-427.13.1.el9_4, +28 more Red Hat Enterprise Linux CRB (v. 9) libperf 5.14.0-427.13.1.el9_4, kernel-debuginfo-common-s390x 5.14.0-427.13.1.el9_4, kernel-debuginfo-common-x86_64 5.14.0-427.13.1.el9_4, kernel-debuginfo-common-aarch64 5.14.0-427.13.1.el9_4, kernel-debuginfo-common-ppc64le 5.14.0-427.13.1.el9_4 Red Hat Enterprise Linux NFV (v. 9) kernel-rt 5.14.0-427.13.1.el9_4, kernel-rt-kvm 5.14.0-427.13.1.el9_4, kernel-rt-core 5.14.0-427.13.1.el9_4, kernel-rt-modules 5.14.0-427.13.1.el9_4, kernel-rt-debug-kvm 5.14.0-427.13.1.el9_4, kernel-rt-debug-core 5.14.0-427.13.1.el9_4, +6 more Red Hat Enterprise Linux RT (v. 9) kernel-rt 5.14.0-427.13.1.el9_4, kernel-rt-core 5.14.0-427.13.1.el9_4, kernel-rt-modules 5.14.0-427.13.1.el9_4, kernel-rt-debug-core 5.14.0-427.13.1.el9_4, kernel-rt-modules-core 5.14.0-427.13.1.el9_4, kernel-rt-debug-modules 5.14.0-427.13.1.el9_4, +4 more
    fixed: vendor fix RHSA-2024:2394
  • 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 10 kernel
    not 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

Exploit prediction

0.18% chance of exploitation in the next 30 days, higher than 8% of all scored CVEs (FIRST EPSS, 2026-11-08).

Affected products

  • Linux Linux

Classification

Technology feeds

References

Sources

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.