CVE-2023-53791 in Linux
Zusammenfassung
von VulDB • 08.06.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
md: Warnung bei Halter-Abweichung aus export_rdev() beheben
Das Commit a1d767191096 („md: use mddev->external to select holder in export_rdev()") behebt das Problem, dass ‚claim_rdev‘ für blkdev_get_by_dev() verwendet wird, während ‚rdev‘ für blkdev_put() genutzt wird.
Wenn jedoch mddev->external von 0 auf 1 geändert wird, wird ‚rdev‘ für blkdev_get_by_dev() und ‚claim_rdev‘ für blkdev_put() verwendet. Dieses Problem lässt sich zuverlässig mit folgendem Skript reproduzieren:
Neue Datei: mdadm/tests/23rdev-lifetime
```bash 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 ```
Testbefehl:
`./test --save-logs --logdir=/tmp/ --keep-going --dev=loop --tests=23rdev-lifetime`
Testergebnis:
```text ------------[ 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. ```
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.