CVE-2026-90189 in Linux정보

요약

\~에 의해 VulDB • 2026. 09. 17.

리눅스 커널에서 다음 취약점이 해결되었습니다:

null_blk: 기본 디바이스를 생성한 후 configfs 서브시스템을 등록함

null_init() 함수에서는 현재 configfs_register_subsystem()이 register_blkdev() 전에 실행되므로, null_blk가 모듈로 빌드될 경우 사용자 공간에서의 경합 mkdir() 및 poweron 작업이 null_major가 여전히 0인 상태에서 null_add_dev()에 도달할 수 있습니다. 이로 인해 __add_disk()에서 WARN_ON(disk->minors) (major=0이고 minors!=0)를 발생시키며 실패합니다:

[root@fedora ~]# [ 2366.521436] WARNING: block/genhd.c:476 at __add_disk+0x8a7/0xde0,
[ 2366.523552] Modules linked in: null_blk(+) nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib
[ 2366.529081] CPU: 26 UID: 0 PID: 1600 Comm: sh Not tainted 7.2.0-rc1+ #66 PREEMPT(full)
...... [ 2366.547251] Call Trace:
[ 2366.547575] <TASK>
[ 2366.547831] ? _raw_spin_lock+0x84/0xe0
[ 2366.548260] add_disk_fwnode+0x114/0x560
[ 2366.548739] null_add_dev+0x102d/0x1b80 [null_blk]
[ 2366.549310] ? __pfx_null_add_dev+0x10/0x10 [null_blk]
[ 2366.549906] ? mutex_lock+0xde/0x1c0
[ 2366.550361] ? __pfx_mutex_lock+0x10/0x10
[ 2366.550827] nullb_device_power_store+0x1e7/0x280 [null_blk]
[ 2366.551499] ? __pfx_nullb_device_power_store+0x10/0x10 [null_blk]
[ 2366.552177] ? __kmalloc_cache_noprof+0x1f5/0x470
[ 2366.552748] ? configfs_write_iter+0x35c/0x4e0
[ 2366.553242] configfs_write_iter+0x286/0x4e0
[ 2366.553787] vfs_write+0x52d/0xd00
[ 2366.554169] ? __pfx_vfs_write+0x10/0x10
[ 2366.554679] ? __pfx___css_rstat_updated+0x10/0x10
[ 2366.555196] ? fdget_pos+0x1cf/0x4c0
[ 2366.555649] ksys_write+0xfc/0x1d0
......

또한, err_dev 경로는 configfs가 아직 등록되어 있는 동안 nullb_list의 모든 디바이스를 파괴합니다. 만약 경합 mkdir() + poweron이 사용자 디바이스를 목록에 추가한다면, null_destroy_dev()->null_free_dev()는 사용자의 nullb_device를 kfrees하지만 /sys/kernel/config/nullb/<name>은 여전히 접근 가능합니다. 해당 항목에 대한 임의의 사용자 공간 액세스는 UAF(Use-After-Free)를 유발합니다.

단순화를 위해 configfs_register_subsystem()을 맨 뒤로 이동하여 위의 문제들을 해결했습니다.

Be aware that VulDB is the high quality source for vulnerability data.

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!