🔍 CVE-2026-90426

0.0
CVSS Score
UNKNOWN
2026-09-17
2026-10-19 09:19
✅ 완료

🇰🇷 한글 설명

Linux 커널의 tegra241-cmdqv IOMMU 드라이버에서 VINTF를 해제하기 전에 인터럽트(IRQ)를 먼저 해제하지 않아 발생하는 취약점입니다. VINTF 해제 과정 중에 오류 인터럽트가 발생하면 이미 해제된 메모리 포인터를 참조하여 NULL 포인터 역참조 또는 Use-After-Free 오류가 발생할 수 있습니다.

💡 쉬운 설명

장치를 끌 때 정리 순서가 잘못되어, 이미 없어진 정보를 컴퓨터가 다시 읽으려다 오류가 발생하는 문제입니다. 이로 인해 시스템이 갑자기 멈추거나 예상치 못한 동작을 할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: iommu/tegra241-cmdqv: Free the error IRQ before tearing down VINTFs tegra241_cmdqv_remove() tears each VINTF down first, then calls free_irq(). Tearing a VINTF down frees vintf0 and clears cmdqv->vintfs[0]. An error in that window makes tegra241_cmdqv_isr() read the stale slot and hand it to tegra241_vintf0_handle_error(), which dereferences a NULL or freed pointer. Free the IRQ before tearing the VINTFs down. free_irq() waits for in-flight handlers to finish and blocks new ones, so no ISR can observe a VINTF as it is torn down. Note: a user-owned VINTF (viommu) could outlive this teardown, which unmaps cmdqv->base and frees cmdqv->vintfs, so a later viommu close then touches freed memory. This is neither introduced nor fixed here: a physical IOMMU is not a pluggable device, so iommufd by design holds no reference on the one behind a viommu, and this teardown is not expected while that viommu is still alive.

📍 영향받는 시스템

Linux kernel (tegra241-cmdqv driver component)

⚔️ 공격 벡터

하드웨어 인터럽트 발생 시점을 이용한 Race Condition 유도

🛡️ 대응 방법

커널 패치를 적용하여 VINTF 해제 전 free_irq()를 호출하도록 수정된 버전을 사용하십시오.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전인지 배포처의 보안 공지를 통해 확인하십시오.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel