CVE-2026-23292 in Linux
요약
\~에 의해 VulDB • 2026. 06. 22.
리눅스 커널에서 다음 취약점이 해결되었습니다:
scsi: target: __configfs_open_file()의 재귀적 락 획득 문제 수정
flush_write_buffer 함수에서는 &p->frag_sem이 먼저 획득된 후, 로드된 저장(store) 함수가 호출됩니다. 여기서 해당 함수는 target_core_item_dbroot_store()입니다. 이 함수는 filp_open()을 호출하며, 이후 콜 트레이스(call trace)에 따라 역순으로 다음 함수들이 호출되었습니다:
down_read __configfs_open_file do_dentry_open vfs_open do_open path_openat do_filp_open file_open_name filp_open target_core_item_dbroot_store flush_write_buffer configfs_write_iter
target_core_item_dbroot_store() 함수는 제공된 파일 경로를 열려고 시도하여 새 파일 경로의 유효성을 검증하려 합니다. 그러나 이 경우 버그 보고서는 다음과 같은 내용을 보여줍니다:
db_root: not a directory: /sys/kernel/config/target/dbroot
이는 현재 작업 중인 동일한 configfs 파일을 다시 열려 했음을 나타냅니다. 따라서 해당 함수는 flush_write_buffer()에서 이미 획득한 세마포어를 보유한 동일 파일의 frag_sem 세마포어를 추가로 획득하려고 시도하게 되며, 이는 중첩된 방식으로 세마포어를 획득하여 재귀적 락(recursive locking) 가능성을 초래합니다.
이 문제를 해결하기 위해 target_core_item_dbroot_store() 함수를 수정하여 filp_open() 대신 kern_path()를 사용하도록 하여 파일시스템 전용 함수인 __configfs_open_file()을 통해 파일을 여는 것을 방지하고, 이 수정 사항과 호환되도록 추가적으로 변경했습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.