🇰🇷 한글 설명
Linux 커널의 iommu/vt-d 구성 요소에서 NULL 포인터 역참조 또는 참조 횟수(refcount) 손상이 발생할 수 있는 취약점이 발견되었습니다. 특정 상황에서 dev_pasid를 찾지 못하더라도 해제 작업이 무조건 실행되어 시스템 충돌이나 Use-After-Free 오류를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 장치 관리 기능에서 잘못된 메모리 주소를 참조하여 시스템이 멈추거나 보안 오류가 발생할 수 있는 문제입니다. 장치가 연결되지 않은 상태에서 연결 해제 명령을 내릴 때 발생하는 오류입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: Avoid NULL pointer dereference or refcount corruption
Commit 60f030f7418d ("iommu/vt-d: Avoid use of NULL after WARN_ON_ONCE")
fixed a NULL pointer dereference in an unlikely situation partly.
If dev_pasid is not found in the dev_pasids list, it remains NULL.
However, the teardown operations are executed unconditionally, this lead
to a NULL pointer dereference or refcount corruption.
If the domain was never attached to this IOMMU, info will be NULL, which
would cause an immediate dereference when checking --info->refcnt.
Even if info is not NULL, decrementing the refcount without having removed
a valid PASID might unbalance the count. This could lead to premature
dropping of the refcount to 0, potentially causing a use-after-free for the
remaining active devices sharing the domain.
Fix it by returning early if dev_pasid is NULL, before executing the
teardown operations.
Issue found by AI review and suggested by Kevin Tian.
https://sashiko.dev/#/patchset/20260421031347.1408890-1-zhenzhong.duan%40intel.com
📍 영향받는 시스템
Intel VT-d를 사용하는 Linux 커널 버전 (패치 적용 전)
⚔️ 공격 벡터
로컬 공격자가 특정 IOMMU/PASID 관련 시스템 호출을 조작하여 커널 메모리 오류 유도
🛡️ 대응 방법
커널 패치(Commit 60f030f7418d 포함)를 적용하여 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인