🔍 CVE-2026-93237

7.8
CVSS Score
HIGH
2026-09-24
2026-10-19 10:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 LoongArch 아키텍처에서 DIRECT_MAP_PHYSMEM_END 정의가 누락되어 발생하는 취약점입니다. 이로 인해 물리 주소 공간 범위를 초과하는 메모리 영역이 잘못 선택될 수 있으며, 결과적으로 페이지 테이블이 조용히 손상되거나 시스템 충돌이 발생할 수 있습니다.

💡 쉬운 설명

컴퓨터의 메모리 주소를 관리하는 규칙이 특정 CPU 모델에서 잘못 설정되어 있습니다. 이로 인해 시스템이 엉뚱한 메모리 영역을 건드리게 되어 데이터가 깨지거나 컴퓨터가 갑자기 멈출 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: LoongArch: Add DIRECT_MAP_PHYSMEM_END definition get_free_mem_region() and mhp_get_pluggable_range() bound their search to DIRECT_MAP_PHYSMEM_END. LoongArch does not define it, so the fallback in include/linux/mm.h applies: under CONFIG_SPARSEMEM_VMEMMAP it is (1ULL << MAX_PHYSMEM_BITS) - 1, a compile-time constant that does not adapt to the CPU's physical address space bits (cpu_pabits, probed from CPUCFG1). The vmemmap window only covers physical space below 2^(cpu_pabits+1) (i.e. VMEMMAP_SIZE), so on CPUs with fewer physical address bits than MAX_PHYSMEM_BITS the fallback allows get_free_mem_region() to return a ZONE_DEVICE region outside the vmemmap window; vmemmap_populate() then wraps the memmap range around and maps it into low memory, silently corrupting the page tables. The same search also picked the top-of- address-space region that crashed memmap_init_zone_device() with amdkfd on Loongson-3C6000 in 6.16 [1]; the commit 2969b42c8f99 ("LoongArch/mm: align vmemmap to maximal folio size") keeps that region in bounds on current Loongson-3C6000 configs, but CPUs with smaller cpu_pabits (e.g. the Loongson-2K series) are still affected. Define DIRECT_MAP_PHYSMEM_END as the vmemmap-covered physical range, (1ULL << (cpu_pabits + 1)) - 1, capped at (1ULL << MAX_PHYSMEM_BITS) - 1 under CONFIG_SPARSEMEM, similar to the commit f3336b48cf9d ("riscv: mm: Define DIRECT_MAP_PHYSMEM_END"). [1] https://lore.kernel.org/amd-gfx/[email protected]/

📍 영향받는 시스템

LoongArch 아키텍처를 사용하는 Linux 커널 (특히 Loongson-2K 시리즈 등 cpu_pabits가 낮은 CPU)

⚔️ 공격 벡터

직접적인 외부 공격보다는 잘못된 메모리 매핑으로 인한 시스템 무결성 파괴 및 서비스 거부(DoS)

🛡️ 대응 방법

커널 업데이트를 통해 DIRECT_MAP_PHYSMEM_END 정의가 포함된 최신 패치를 적용하십시오.

🔧 검증 코드

출력 결과에서 LoongArch 아키텍처 여부를 확인하고, 커널 버전이 해당 취약점이 수정된 버전인지 확인하십시오.

Shell / Script
uname -a && grep -E 'LoongArch' /proc/cpuinfo

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel