CVE-2023-53791 in Linux
요약
\~에 의해 VulDB • 2026. 06. 13.
리눅스 커널에서 다음 취약점이 해결되었습니다:
md: export_rdev()에서의 홀더 불일치 경고 수정
커밋 a1d767191096("md: export_rdev()에서 mddev->external을 사용하여 홀더 선택")은 'claim_rdev'가 blkdev_get_by_dev()에 사용되는 동안 'rdev'가 blkdev_put()에 사용되던 문제를 수정합니다.
그러나 mddev->external이 0에서 1로 변경되면, 'rdev'가 blkdev_get_by_dev()에 사용되는 반면 'claim_rdev'는 blkdev_put()에 사용됩니다. 그리고 이 문제는 다음을 통해 reliably(reliably하게/안정적으로) 재현할 수 있습니다:
새 파일: 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 ```
테스트 명령어:
`./test --save-logs --logdir=/tmp/ --keep-going --dev=loop --tests=23rdev-lifetime`
테스트 결과:
```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
TASK> ```
'rdev'가 홀더로 사용되는지 기록하여 이 문제를 수정합니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.