CVE-2024-35794 in Linux
요약
\~에 의해 VulDB • 2026. 10. 04.
Linux 커널에서 다음 취약점이 해결되었습니다:
dm-raid: 서스펜드 중 sync_thread를 실제로 고정(frozen)함
1) commit f52f5c71f3d4("md: fix stopping sync thread")는 __md_stop_writes()에서 MD_RECOVERY_FROZEN을 제거했으며, dm-raid가 간접적으로 __md_stop_writes()에 의존하여 sync_thread를 고정한다는 사실을 인식하지 못했습니다. md_stop_writes()에 MD_RECOVERY_FROZEN을 추가함으로써 이 문제를 수정하고, stop_sync_thread()는 이 경우 dm-raid에서만 사용되므로 stop_sync_thread()도 md_stop_writes()로 이동시켰습니다. 2) 플래그 MD_RECOVERY_FROZEN은 sync thread가 고정되었다는 의미가 아니며, 새 sync_thread의 시작만 방지할 뿐 실행 중인 sync thread를 중지시키지는 못합니다. sync thread를 고정하려면 플래그 설정 후 stop_sync_thread()를 사용해야 합니다. 3) 플래그 MD_RECOVERY_FROZEN은 쓰기가 중단되었음을 의미하지 않으므로 raid_postsuspend()에서 md_stop_writes()의 조건으로 사용하는 것은 올바르지 않습니다. 재진입 가능한(stop_sync_thread()) stop_sync_thread()가 아무 작업도 수행하지 않는다는 점을 고려하여, raid_postsuspend()에서는 항상 md_stop_writes()를 호출해야 합니다. 4) raid_message는 언제든지 플래그 MD_RECOVERY_FROZEN을 설정/해제할 수 있으며, 배열이 서스펜드 상태일 때 MD_RECOVERY_FROZEN이 해제되면 새 sync_thread가 예기치 않게 시작될 수 있습니다. 이를 방지하기 위해 suspend 중에는 raid_message()가 sync thread 상태를 변경하지 못하도록 합니다.
commit f52f5c71f3d4("md: fix stopping sync thread") 이후로 테스트 스크립트인 shell/lvconvert-raid-reshape.sh는 stop_sync_thread()에서 멈추기 시작했으며, 이전 수정 사항들로 인해 해당 테스트는 더 이상 멈추지 않지만 ext4가 손상되었다고 불평하며 여전히 실패합니다. 이 패치를 적용하면 테스트는 stop_sync_thread()로 인한 멈춤이나 ext4 손상으로 인한 실패를 더 이상 일으키지 않습니다. 그러나 dm-raid456과 관련된 데드락이 아직 존재하며, 이는 후속 패치에서 수정될 예정입니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.