🇰🇷 한글 설명
Linux 커널의 blk-mq 구성 요소에서 sysfs 생성 실패 시 kobject 상태를 확인하지 않고 삭제를 시도하는 취약점이 발견되었습니다. 이로 인해 하드웨어 큐의 수를 변경하거나 디스크를 제거할 때 커널 경고 및 시스템 불안정이 발생할 수 있습니다.
💡 쉬운 설명
시스템이 하드웨어 장치를 관리하는 과정에서 파일 생성에 실패했음에도 불구하고, 존재하지 않는 파일을 삭제하려고 시도하여 오류가 발생하는 문제입니다. 이로 인해 시스템에 경고 메시지가 뜨거나 예기치 않은 동작이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
blk-mq: check kobject state_in_sysfs before deleting in blk_mq_unregister_hctx
In __blk_mq_update_nr_hw_queues() the return value of
blk_mq_sysfs_register_hctxs() is not checked. If sysfs creation for hctx
fails, later changing the number of hw_queues or removing disk will
trigger the following warning:
kernfs: can not remove 'nr_tags', no directory
WARNING: CPU: 2 PID: 637 at fs/kernfs/dir.c:1707 kernfs_remove_by_name_ns+0x13f/0x160
Call Trace:
remove_files.isra.1+0x38/0xb0
sysfs_remove_group+0x4d/0x100
sysfs_remove_groups+0x31/0x60
__kobject_del+0x23/0xf0
kobject_del+0x17/0x40
blk_mq_unregister_hctx+0x5d/0x80
blk_mq_sysfs_unregister_hctxs+0x94/0xd0
blk_mq_update_nr_hw_queues+0x124/0x760
nullb_update_nr_hw_queues+0x71/0xf0 [null_blk]
nullb_device_submit_queues_store+0x92/0x120 [null_blk]
kobjct_del() was called unconditionally even if sysfs creation failed.
Fix it by checkig the kobject creation statusbefore deleting it.
📍 영향받는 시스템
Linux Kernel (blk-mq subsystem 관련 버전)
⚔️ 공격 벡터
로컬 시스템에서 하드웨어 큐 설정 변경 또는 디스크 제거 시도 (Local)
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.