一、 漏洞 CVE-2024-26706 基础信息
漏洞标题
parisc: 修复异常处理程序导致的随机数据损坏
来源:AIGC 神龙大模型
漏洞描述信息
在Linux内核中,已解决以下漏洞: parisc:修复异常处理程序引起的随机数据损坏 当前的异常处理程序实现,当访问用户空间内存时会提供帮助,如果编译器决定使用不同于指定寄存器%r29(在ASM_EXCEPTIONTABLE_REG中定义)的其他寄存器来保存错误代码,可能会出现随机数据损坏。如果编译器选择了另一个寄存器,故障处理程序仍然会将-EFAULT存储到%r29中,从而破坏该寄存器用于的任何内容。 查看汇编代码时,我发现emulate_ldd()函数中有时会发生这种情况。 为了解决这个问题,最简单的解决方案可能是让故障处理程序知道用于保存错误代码的寄存器。但是,在内联汇编中使用%0或%1是不可行的,因为它会显示为带有"%r"前缀的寄存器,如%r29,而GNU汇编器无法将其转换为整数。 此补丁采用另一种更好、更灵活的方法: 我们将不在执行路径上的__ex_table扩展一个32字节的词。在这个词中,我们告诉编译器插入汇编指令"or %r0,%r0,%reg",其中%reg引用编译器为错误返回代码选择的寄存器。 在访问失败的情况下,故障处理程序会找到__ex_table条目并检查指令。使用的是寄存器的最低5位,然后故障处理程序可以将-EFAULT存储到该寄存器中。 由于我们已将__ex_table扩展到3个词,因此无法再使用BUILDTIME_TABLE_SORT配置选项。
来源:AIGC 神龙大模型
CVSS信息
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
来源:AIGC 神龙大模型
漏洞类别
跨界内存写
来源:AIGC 神龙大模型
漏洞标题
parisc: Fix random data corruption from exception handler
来源:美国国家漏洞数据库 NVD
漏洞描述信息
In the Linux kernel, the following vulnerability has been resolved: parisc: Fix random data corruption from exception handler The current exception handler implementation, which assists when accessing user space memory, may exhibit random data corruption if the compiler decides to use a different register than the specified register %r29 (defined in ASM_EXCEPTIONTABLE_REG) for the error code. If the compiler choose another register, the fault handler will nevertheless store -EFAULT into %r29 and thus trash whatever this register is used for. Looking at the assembly I found that this happens sometimes in emulate_ldd(). To solve the issue, the easiest solution would be if it somehow is possible to tell the fault handler which register is used to hold the error code. Using %0 or %1 in the inline assembly is not posssible as it will show up as e.g. %r29 (with the "%r" prefix), which the GNU assembler can not convert to an integer. This patch takes another, better and more flexible approach: We extend the __ex_table (which is out of the execution path) by one 32-word. In this word we tell the compiler to insert the assembler instruction "or %r0,%r0,%reg", where %reg references the register which the compiler choosed for the error return code. In case of an access failure, the fault handler finds the __ex_table entry and can examine the opcode. The used register is encoded in the lowest 5 bits, and the fault handler can then store -EFAULT into this register. Since we extend the __ex_table to 3 words we can't use the BUILDTIME_TABLE_SORT config option any longer.
来源:美国国家漏洞数据库 NVD
CVSS信息
N/A
来源:美国国家漏洞数据库 NVD
漏洞类别
N/A
来源:美国国家漏洞数据库 NVD
漏洞标题
Linux kernel 安全漏洞
来源:中国国家信息安全漏洞库 CNNVD
漏洞描述信息
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于异常处理程序中随机数据损坏。
来源:中国国家信息安全漏洞库 CNNVD
CVSS信息
N/A
来源:中国国家信息安全漏洞库 CNNVD
漏洞类别
其他
来源:中国国家信息安全漏洞库 CNNVD
二、漏洞 CVE-2024-26706 的公开POC
# POC 描述 源链接 神龙链接
三、漏洞 CVE-2024-26706 的情报信息