🇰🇷 한글 설명
Linux 커널의 iommu/vt-d 구성 요소에서 프로브 오류 경로 발생 시 RB-트리(Red-Black Tree)가 손상되는 취약점이 발견되었습니다. 장치가 ATS를 지원하지 않아 트리에 삽입되지 않은 상태에서 오류가 발생하면, 초기화되지 않은 노드를 트리 루트로 잘못 해석하여 데이터 구조를 파괴합니다.
💡 쉬운 설명
컴퓨터 부품을 인식하는 과정에서 오류가 생길 때, 시스템 내부의 관리 목록이 엉망이 되어 데이터가 깨지는 문제입니다. 이로 인해 시스템이 불안정해지거나 예상치 못한 동작을 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: Fix RB-tree corruption in probe error path
The info->node RB-tree member is zero-initialized via kzalloc. If
a device does not support ATS, the device_rbtree_insert() call is
skipped. If a subsequent probe step fails, the error path jumps to
device_rbtree_remove(), which misinterprets the zeroed node as
a tree root and corrupts the device RB-tree.
Fix this by explicitly initializing the RB-node as empty using
RB_CLEAR_NODE() during initialization and guarding the removal with
RB_EMPTY_NODE().
📍 영향받는 시스템
ATS를 사용하는 장치가 포함된 VT-d 지원 Linux 커널 버전
⚔️ 공격 벡터
특정 하드웨어 장치의 프로브(Probe) 과정을 의도적으로 실패시켜 커널 메모리 구조를 손상시키는 방식
🛡️ 대응 방법
RB-node를 명시적으로 초기화하고 제거 시 빈 노드인지 확인하는 로직이 포함된 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인