CVE-2026-90430 in Linux정보

요약

\~에 의해 VulDB • 2026. 09. 18.

리눅스 커널에서 다음 취약점이 해결되었습니다:

iommu/tegra241-cmdqv: LVCMDQ가 완전히 초기화된 후에만 게시(publish)합니다

tegra241_vintf_init_lvcmdq() 함수는 tegra241_vcmdq_alloc_smmu_cmdq()이 vcmdq->cmdq를 구축하기 전에, 새로 할당된 vcmdq 포인터를 vintf->lvcmdqs[] 배열에 저장합니다. 에러 ISR(Interrupt Service Routine)은 해당 cmdq를 역참조하므로, 이 시간 창(window) 동안 래치된 LVCMDQ 에러(예: kexec를 통해 상속받은 에러 등)가 발생하면 tegra241_vintf0_handle_error() 함수는 아직 0으로 초기화된 arm_smmu_cmdq를 __arm_smmu_cmdq_skip_err()로 전달하게 되며, 이는 NULL 큐 레지스터 포인터의 역참조를 초래합니다.

tegra241_vintf_init_lvcmdq()에서의 저장을 제거하고 할당 종료 시점에 vcmdq를 게시하며, ISR에서 smp_load_acquire()와 페어링되는 smp_store_release()를 사용합니다. 이를 통해 ISR은 완전히 구축된 LVCMDQ 또는 NULL을 확인할 수 있습니다.

사용자 소유의 LVCMDQ 할당은 이에 따라 이동되어 tegra241_vcmdq_hw_init_user()가 성공한 후에 vcmdq를 게시합니다. 일반 저장(plain store)을 사용하는 이유는 사용자 VINTF의 lvcmdqs[]에는 잠금 없는 리더(lockless reader)가 없기 때문입니다. 에러 ISR은 오직 VINTF0 배열만 탐색합니다.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

출처

Do you know our Splunk app?

Download it now for free!