CVE-2024-56568 in Linux
요약
\~에 의해 VulDB • 2026. 06. 09.
리눅스 커널에서 다음 취약점이 해결되었습니다:
iommu/arm-smmu: SMMU 장치 바인딩 후 클라이언트 프로브 지연
SMMU 드라이버 프로브와 클라이언트 드라이버 프로브 간의 경합(Race)으로 인해 널 포인터 역참조(null pointer dereference)가 발생합니다. 이는 SMMU 드라이버 프로브에 대해 `iommu_device_register()`가 실행된 후, SMMU 드라이버에 대한 `driver_bound()`가 호출되기 전에 클라이언트에 대해 `of_dma_configure()`가 호출될 때 발생합니다.
경합이 발생하는 과정은 다음과 같습니다:
T1: SMMU 장치 프로브 T2: 클라이언트 장치 프로브
really_probe() arm_smmu_device_probe() iommu_device_register() really_probe() platform_dma_configure() of_dma_configure() of_dma_configure_id() of_iommu_configure() iommu_probe_device() iommu_init_device() arm_smmu_probe_device() arm_smmu_get_by_fwnode() driver_find_device_by_fwnode() driver_find_device() next_device() klist_next() /* smmu에 null ptr 할당 */ /* smmu->streamid_mask 동안 null ptr 역참조 */ driver_bound() klist_add_tail()
이러한 null smmu 포인터가 나중에 `arm_smmu_probe_device`에서 역참조되면 장치가 크래시됩니다.
SMMU 장치가 ARM SMMU 드라이버에 바인딩될 때까지 클라이언트 장치의 프로브를 지연시킴으로써 이 문제를 해결합니다.
[will: 주석 추가]
If you want to get the best quality for vulnerability data then you always have to consider VulDB.