🇰🇷 한글 설명
Linux 커널의 mpt3sas 드라이버에서 NUMA 토폴로지 정보가 없는 시스템의 경우 dev_to_node() 함수가 -1을 반환하여 발생합니다. 이 -1 값이 cpumask_of_node()에 전달되어 배열 범위를 벗어난 읽기(out-of-bounds read)를 유발하며, 이는 UBSAN에 의해 감지되었습니다.
💡 쉬운 설명
컴퓨터 부품의 위치 정보를 찾는 과정에서 잘못된 번호(-1)를 참조하여 시스템 오류가 발생할 수 있는 문제입니다. 특히 특정 하드웨어 구조를 가진 컴퓨터에서 시스템이 불안정해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: mpt3sas: Avoid out-of-bounds cpumask_of_node() call in _base_assign_reply_queues()
dev_to_node() can return NUMA_NO_NODE (-1) on systems without NUMA
topology information for the PCI device, such as single-socket boards
that don't expose device-to-node affinity. Passing -1 directly into
cpumask_of_node() indexes node_to_cpumask_map[-1], an out-of-bounds
array read caught by UBSAN:
UBSAN: array-index-out-of-bounds in arch/x86/include/asm/topology.h:72:28
index -1 is out of range for type 'cpumask *[1024]'
Fall back to cpu_online_mask when no NUMA node is available, rather than
assuming dev_to_node() always returns a valid node index.
📍 영향받는 시스템
NUMA 토폴로지 정보를 제공하지 않는 PCI 장치를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
직접적인 외부 공격보다는 특정 하드웨어 환경에서 커널의 잘못된 메모리 참조를 유도하는 방식
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 보안 업데이트 버전인지 확인