🇰🇷 한글 설명
Linux 커널의 x86 메모리 관리 시스템에서 identity map 생성 시 요청된 범위보다 더 큰 GB 단위의 페이지를 할당하는 취약점이 발견되었습니다. 이로 인해 요청되지 않은 예약된 주소 영역까지 매핑되어, 프로세서의 투기적 실행(speculation) 시 시스템 중단을 초래할 수 있습니다.
💡 쉬운 설명
컴퓨터가 메모리를 사용할 때 필요한 만큼만 빌려야 하는데, 아주 작은 양을 요청해도 너무 큰 덩어리를 통째로 빌려오는 문제가 있습니다. 이 과정에서 건드리면 안 되는 시스템 예약 구역까지 포함되어 컴퓨터가 갑자기 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
x86/mm/ident_map: Use gbpages only where full GB page should be mapped.
When ident_pud_init() uses only GB pages to create identity maps, large
ranges of addresses not actually requested can be included in the resulting
table; a 4K request will map a full GB. This can include a lot of extra
address space past that requested, including areas marked reserved by the
BIOS. That allows processor speculation into reserved regions, that on UV
systems can cause system halts.
Only use GB pages when map creation requests include the full GB page of
space. Fall back to using smaller 2M pages when only portions of a GB page
are included in the request.
No attempt is made to coalesce mapping requests. If a request requires a
map entry at the 2M (pmd) level, subsequent mapping requests within the
same 1G region will also be at the pmd level, even if adjacent or
overlapping such requests could have been combined to map a full GB page.
Existing usage starts with larger regions and then adds smaller regions, so
this should not have any great consequence.
📍 영향받는 시스템
GB 페이지 매핑 로직이 포함된 x86 아키텍처 기반의 Linux 커널
⚔️ 공격 벡터
특정 메모리 매핑 요청을 통해 예약된 주소 영역에 대한 프로세서의 투기적 접근 유도
🛡️ 대응 방법
GB 단위가 아닌 요청에 대해 2M 페이지를 사용하도록 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인