# 龙架构:修复huge_pte_offset()中由NULL-PMD引起的 panic问题
## 漏洞概述
在Linux内核中,LoongArch架构下存在一个由`huge_pte_offset()`函数中的NULL-PMD引起的崩溃漏洞。
## 细节
在处理虚拟地址0x0时,内核无法正确处理页面请求,导致系统崩溃。例如:
```
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
```
在一个特定情况下,PMD可能为NULL,后续处理依赖于NULL作为返回值,因此需要在此判断这种情况。
## 影响
导致内核崩溃,影响系统稳定性和可靠性。修复该漏洞可以避免在处理NULL-PMD时发生崩溃。
# | POC 描述 | 源链接 | 神龙链接 |
---|
标题: LoongArch: Fix panic caused by NULL-PMD in huge_pte_offset() - kernel/git/stable/linux.git - Linux kernel stable tree -- 🔗来源链接
标签:
神龙速读标题: LoongArch: Fix panic caused by NULL-PMD in huge_pte_offset() - kernel/git/stable/linux.git - Linux kernel stable tree -- 🔗来源链接
标签:
神龙速读