目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2021-47069— Linux kernel 安全漏洞

一分钟漏洞结论

影响对象
Linux Linux
利用判断
尚无明确在野利用证据,仍需结合暴露面评估
建议动作
优先检查厂商安全公告和参考链接中的修复版本;无法立即升级时,限制受影响服务暴露并加强监测。

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于do_mq_timedreceive 调用可能会返回并让 do_mq_timedsend 依赖于无效地址。

CVSS 7.8 · High EPSS 0.26% · P17

影响版本矩阵 8

厂商产品 版本范围状态
Linux Linux c5b2cbdbdac563f46ecd5e187253ab1abbd6fc04< 4528c0c323085e645b8765913b4a7fd42cf49b65 affected
c5b2cbdbdac563f46ecd5e187253ab1abbd6fc04< 807fa14536b26803b858da878b643be72952a097 affected
c5b2cbdbdac563f46ecd5e187253ab1abbd6fc04< a11ddb37bf367e6b5239b95ca759e5389bb46048 affected
5.6 affected
< 5.6 unaffected
5.10.40≤ 5.10.* unaffected
5.12.7≤ 5.12.* unaffected
5.13≤ * unaffected
获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2021-47069 基础信息

漏洞信息

对漏洞内容有疑问?看看神龙的深度分析是否有帮助!
查看神龙十问 ↗

尽管我们使用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。神龙努力确保数据的准确性,但请您根据实际情况进行核实和判断。

Vulnerability Title
ipc/mqueue, msg, sem: avoid relying on a stack reference past its expiry
来源: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: ipc/mqueue, msg, sem: avoid relying on a stack reference past its expiry do_mq_timedreceive calls wq_sleep with a stack local address. The sender (do_mq_timedsend) uses this address to later call pipelined_send. This leads to a very hard to trigger race where a do_mq_timedreceive call might return and leave do_mq_timedsend to rely on an invalid address, causing the following crash: RIP: 0010:wake_q_add_safe+0x13/0x60 Call Trace: __x64_sys_mq_timedsend+0x2a9/0x490 do_syscall_64+0x80/0x680 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x7f5928e40343 The race occurs as: 1. do_mq_timedreceive calls wq_sleep with the address of `struct ext_wait_queue` on function stack (aliased as `ewq_addr` here) - it holds a valid `struct ext_wait_queue *` as long as the stack has not been overwritten. 2. `ewq_addr` gets added to info->e_wait_q[RECV].list in wq_add, and do_mq_timedsend receives it via wq_get_first_waiter(info, RECV) to call __pipelined_op. 3. Sender calls __pipelined_op::smp_store_release(&this->state, STATE_READY). Here is where the race window begins. (`this` is `ewq_addr`.) 4. If the receiver wakes up now in do_mq_timedreceive::wq_sleep, it will see `state == STATE_READY` and break. 5. do_mq_timedreceive returns, and `ewq_addr` is no longer guaranteed to be a `struct ext_wait_queue *` since it was on do_mq_timedreceive's stack. (Although the address may not get overwritten until another function happens to touch it, which means it can persist around for an indefinite time.) 6. do_mq_timedsend::__pipelined_op() still believes `ewq_addr` is a `struct ext_wait_queue *`, and uses it to find a task_struct to pass to the wake_q_add_safe call. In the lucky case where nothing has overwritten `ewq_addr` yet, `ewq_addr->task` is the right task_struct. In the unlucky case, __pipelined_op::wake_q_add_safe gets handed a bogus address as the receiver's task_struct causing the crash. do_mq_timedsend::__pipelined_op() should not dereference `this` after setting STATE_READY, as the receiver counterpart is now free to return. Change __pipelined_op to call wake_q_add_safe on the receiver's task_struct returned by get_task_struct, instead of dereferencing `this` which sits on the receiver's stack. As Manfred pointed out, the race potentially also exists in ipc/msg.c::expunge_all and ipc/sem.c::wake_up_sem_queue_prepare. Fix those in the same way.
来源: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
来源: CVE Program / CVE List V5
Vulnerability Type
N/A
来源: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
来源: 中国国家信息安全漏洞库 CNNVD
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于do_mq_timedreceive 调用可能会返回并让 do_mq_timedsend 依赖于无效地址。
来源: 中国国家信息安全漏洞库 CNNVD
CVSS Information
N/A
来源: 中国国家信息安全漏洞库 CNNVD
Vulnerability Type
N/A
来源: 中国国家信息安全漏洞库 CNNVD

受影响产品

厂商 产品 影响版本 CPE 订阅
Linux Linux c5b2cbdbdac563f46ecd5e187253ab1abbd6fc04 ~ 4528c0c323085e645b8765913b4a7fd42cf49b65 -
Linux Linux 5.6 -

二、漏洞 CVE-2021-47069 的公开POC

# POC 描述 源链接 神龙链接
AI 生成 POC 高级

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2021-47069 的情报信息

请登录查看更多情报信息。

CVE-2021-47069 其他参考 (3)

同批安全公告 · Linux · 2024-03-01 · 共 13 条

CVE-2021-47081 7.8 HIGH Linux kernel 安全漏洞
CVE-2021-47078 7.8 HIGH Linux kernel 安全漏洞
CVE-2021-47080 Linux kernel 安全漏洞
CVE-2021-47079 Linux kernel 安全漏洞
CVE-2021-47077 Linux kernel 安全漏洞
CVE-2021-47075 Linux kernel 安全漏洞
CVE-2021-47076 Linux kernel 安全漏洞
CVE-2021-47074 Linux kernel 安全漏洞
CVE-2021-47072 Linux kernel 安全漏洞
CVE-2021-47073 Linux kernel 安全漏洞
CVE-2021-47071 Linux kernel 安全漏洞
CVE-2021-47070 Linux kernel 安全漏洞

IV. Related Vulnerabilities

V. Comments for CVE-2021-47069

暂无评论


发表评论