🇰🇷 한글 설명
Linux 커널의 LoongArch 아키텍처에서 huge_pte_offset() 함수가 PMD(페이지 중간 디렉터리)가 NULL인 경우를 처리하지 못해 커널 패닉이 발생하는 문제입니다. 일부 상황에서 pmd가 NULL일 수 있으므로 이를 확인하는 검사가 추가되었습니다.
💡 쉬운 설명
LoongArch 기반 리눅스 시스템에서 메모리 주소를 찾는 과정 중 빈 값을 잘못 처리해 시스템이 갑자기 멈출 수 있습니다. 커널 업데이트로 이 빈 값을 미리 확인하도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
LoongArch: Fix panic caused by NULL-PMD in huge_pte_offset()
ERROR INFO:
CPU 25 Unable to handle kernel paging request at virtual address 0x0
...
Call Trace:
[<900000000023c30c>] huge_pte_offset+0x3c/0x58
[<900000000057fd4c>] hugetlb_follow_page_mask+0x74/0x438
[<900000000051fee8>] __get_user_pages+0xe0/0x4c8
[<9000000000522414>] faultin_page_range+0x84/0x380
[<9000000000564e8c>] madvise_vma_behavior+0x534/0xa48
[<900000000056689c>] do_madvise+0x1bc/0x3e8
[<9000000000566df4>] sys_madvise+0x24/0x38
[<90000000015b9e88>] do_syscall+0x78/0x98
[<9000000000221f18>] handle_syscall+0xb8/0x158
In some cases, pmd may be NULL and rely on NULL as the return value for
processing, so it is necessary to determine this situation here.
📍 영향받는 시스템
패치 이전의 LoongArch 아키텍처 기반 Linux 커널 (수정 커밋 적용 전 버전)
⚔️ 공격 벡터
로컬 사용자가 madvise 시스템 콜 등을 통해 특정 메모리 영역에 대한 작업을 유발하여 커널 패닉(서비스 거부)을 일으킬 수 있음
🛡️ 대응 방법
배포판에서 제공하는 최신 Linux 커널 보안 업데이트를 적용하고 재부팅합니다.
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지에서 확인된 패치 버전과 비교하여, 동일하거나 더 최신이면 수정이 적용된 것이며 LoongArch 시스템이 아니라면 영향받지 않습니다.