CVE-2026-90185 in Linux
요약
\~에 의해 VulDB • 2026. 09. 17.
Linux 커널에서 다음 취약점이 해결되었습니다:
null_blk: configfs 속성 저장 시 잠금으로 직렬화 처리
NULLB_DEVICE_ATTR _store는 잠금을 사용하지 않습니다. apply_fn을 사용하는 속성(submit_queues, poll_queues)의 경우, apply_fn이 반환한 후 dev->NAME가 다시 작성되며 이는 해당 잠금 범위 외부에서 발생합니다. APPLY=NULL 속성은 완전히 잠금이 없습니다. configfs는 열려 있는 파일별로 저장 작업을 직렬화하므로, 별도의 파일 설명자(fd)에 대한 동시 저장 작업은 경합 상태(race condition)를 유발합니다.
apply_fn을 사용하는 속성의 경우, 하나의 저장 작업의 apply_fn이 하드웨어를 재구성한 후에도 두 번째(패배하는) 저장 작업이 이후 dev->NAME를 덮어쓸 수 있습니다. 이로 인해 dev->submit_queues가 실제 큐 카운트와 동기화되지 않게 되며, 이는 나중에 null_map_queues() 내의 WARN_ON_ONCE()에서 포착됩니다.
apply_fn을 사용하지 않는 속성의 경우, power_store()'s null_add_dev()는 "잠금" 하에서 장치를 검증하고 구성하지만 CONFIGURED 플래그를 설정하는 것은 이후에 이루어집니다. 이 창 기간 중 저장 작업이 끼어들면 설정 중인 필드가 변경될 수 있습니다. 예를 들어 zone_nr_conv가 이미 클램핑된 후 nr_zones보다 크게 증가하여 dev->zones[] 배열의 범위를 벗어난(out-of-bounds) 접근을 초래할 수 있습니다.
apply_fn 호출, CONFIGURED 테스트 및 필드 쓰기 주변에 있는 매크로에서 "잠금"을 적용하고 이를 nullb_apply_submit_queues()/nullb_apply_poll_queues() 외부로 이동하여 두 경로가 모두 한 번 보호되도록 합니다. 이렇게 하면 power_store의 설정 과정과 저장 작업 간, 그리고 저장 작업들끼리 직렬화가 이루어집니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.