CVE-2026-63804 in Linux
요약
\~에 의해 VulDB • 2026. 07. 20.
리눅스 커널에서 다음 취약점이 해결되었습니다:
gfs2: gfs2_qd_dealloc에서의 use-after-free 수정
gfs2_qd_dispose()로부터 RCU 콜백으로 호출되는 gfs2_qd_dealloc()은 qd를 해제한 후에도 qd->qd_sbd를 통해 슈퍼블록 객체 sdp에 접근합니다. 이는 sd_quota_count를 감소시키고 sd_kill_wait에서 대기 중인 프로세스들을 깨우기 위한 것입니다.
그러나 RCU 콜백이 실행될 시점에는 gfs2_put_super()가 이미 free_sbd()를 통해 sdp를 해제했을 수 있습니다. 이는 마운트 해제(unmount) 중에 gfs2_quota_cleanup()가 호출될 때 발생할 수 있는데, 이 함수는 call_rcu()를 사용하여 쿼타 객체를 처리한 후 60초 타임아웃과 함께 sd_kill_wait에서 대기합니다. 만약 타임아웃이 경과하거나, gfs2_gl_hash_clear()가 추가적인 qd_put() 호출을 트리거하여 대기가 완료된 후에 더 많은 RCU 콜백을 스케줄링하면, sdp를 참조하는 RCU 콜백들이 아직 보류 중임에도 불구하고 gfs2_put_super()는 슈퍼블록 해제를 계속 진행하게 됩니다.
gfs2_put_super() 내의 free_sbd() 호출 전에 rcu_barrier()를 추가하여, 모든 대기 중인 RCU 콜백(가령 gfs2_qd_dealloc 포함)이 완료된 후에야 슈퍼블록이 해제되도록 보장합니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.