漏洞信息
# s390:避免为current_stack_pointer使用全局寄存器
## 概述
Linux 内核中修复了一个漏洞,即避免使用全局寄存器 `current_stack_pointer`。该问题在 s390 架构上暴露了一个旧的 GCC 编译器漏洞,导致生成错误的代码,从而引起堆栈损坏。
## 细节
- 修复漏洞的提交记录为 30de14b1884b
- 该修复尝试将 `current_stack_pointer` 定义为全局寄存器变量,类似于其他许多架构
- 该操作在 s390 架构上暴露了一个旧的 GCC 编译器漏洞
- 该 GCC 漏洞仅在 GCC 9.1 及更高版本中修复(GCC 提交记录为 3ad7fed1cc87)
- 漏洞还影响 GCC 8.4 之前的版本,但无法修复所有旧版本
- 因此,解决方案是避免使用全局寄存器变量 `current_stack_pointer`
## 影响
- 影响使用 GCC 8.4 以下版本编译内核的 s390 架构
- 导致生成错误的代码,从而引起堆栈损坏
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
s390: avoid using global register for current_stack_pointer
漏洞描述信息
In the Linux kernel, the following vulnerability has been resolved:
s390: avoid using global register for current_stack_pointer
Commit 30de14b1884b ("s390: current_stack_pointer shouldn't be a
function") made current_stack_pointer a global register variable like
on many other architectures. Unfortunately on s390 it uncovers old
gcc bug which is fixed only since gcc-9.1 [gcc commit 3ad7fed1cc87
("S/390: Fix PR89775. Stackpointer save/restore instructions removed")]
and backported to gcc-8.4 and later. Due to this bug gcc versions prior
to 8.4 generate broken code which leads to stack corruptions.
Current minimal gcc version required to build the kernel is declared
as 5.1. It is not possible to fix all old gcc versions, so work
around this problem by avoiding using global register variable for
current_stack_pointer.
CVSS信息
N/A
漏洞类别
N/A
漏洞标题
Linux kernel 安全漏洞
漏洞描述信息
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于s390架构中current_stack_pointer全局寄存器使用不当,可能导致栈损坏。
CVSS信息
N/A
漏洞类别
其他