🇰🇷 한글 설명
Linux 커널의 s390 아키텍처에서 HVO(Huge Page Virtual Memory Map)를 활성화할 경우, 커널 페이지 테이블 수정 시 TLB 엔트리가 적절히 플러시되지 않아 시스템 충돌이 발생할 수 있습니다. s390 아키텍처는 유효한 페이지 테이블 엔트리를 다른 유효한 엔트리로 직접 교체하는 것을 허용하지 않으므로, 이를 방지하기 위해 ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP 기능을 비활성화하여 문제를 해결했습니다.
💡 쉬운 설명
컴퓨터의 메모리 관리 방식 중 하나가 s390 시스템의 규칙과 맞지 않아 시스템이 갑자기 멈추거나 데이터가 망가질 수 있는 문제입니다. 이를 해결하기 위해 문제가 되는 특정 메모리 최적화 기능을 꺼두는 조치가 취해졌습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
s390: Disable ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP
As reported by Luiz Capitulino enabling HVO on s390 leads to reproducible
crashes. The problem is that kernel page tables are modified without
flushing corresponding TLB entries.
Even if it looks like the empty flush_tlb_all() implementation on s390 is
the problem, it is actually a different problem: on s390 it is not allowed
to replace an active/valid page table entry with another valid page table
entry without the detour over an invalid entry. A direct replacement may
lead to random crashes and/or data corruption.
In order to invalidate an entry special instructions have to be used
(e.g. ipte or idte). Alternatively there are also special instructions
available which allow to replace a valid entry with a different valid
entry (e.g. crdte or cspg).
Given that the HVO code currently does not provide the hooks to allow for
an implementation which is compliant with the s390 architecture
requirements, disable ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP again, which is
basically a revert of the original patch which enabled it.
📍 영향받는 시스템
Linux kernel (s390 architecture)
⚔️ 공격 벡터
Local/System Crash (특정 메모리 관리 기능 활성화 시 시스템 충돌 유발)
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하거나, s390 아키텍처에서 해당 최적화 기능이 비활성화된 커널을 사용하십시오.
🔧 검증 코드
출력 결과에서 s390 아키텍처 여부와 현재 사용 중인 커널 버전을 확인하여 패치 적용 여부를 판단합니다.
uname -a && grep -i 's390' /proc/version