一、 漏洞 CVE-2022-49804 基础信息
漏洞信息
                                        # 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
来源:美国国家漏洞数据库 NVD
漏洞描述信息
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.
来源:美国国家漏洞数据库 NVD
CVSS信息
N/A
来源:美国国家漏洞数据库 NVD
漏洞类别
N/A
来源:美国国家漏洞数据库 NVD
漏洞标题
Linux kernel 安全漏洞
来源:中国国家信息安全漏洞库 CNNVD
漏洞描述信息
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于s390架构中current_stack_pointer全局寄存器使用不当,可能导致栈损坏。
来源:中国国家信息安全漏洞库 CNNVD
CVSS信息
N/A
来源:中国国家信息安全漏洞库 CNNVD
漏洞类别
其他
来源:中国国家信息安全漏洞库 CNNVD
二、漏洞 CVE-2022-49804 的公开POC
# POC 描述 源链接 神龙链接
三、漏洞 CVE-2022-49804 的情报信息