IPBUF安全漏洞报告
English
CVE-2026-31445 CVSS 5.5 中危

CVE-2026-31445 Linux内核DAMON上下文损坏漏洞

披露日期: 2026-04-22
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2026-31445
漏洞类型
内存损坏
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux Kernel内存损坏拒绝服务DAMON本地漏洞

漏洞概述

该漏洞存在于Linux内核的mm/damon/core模块中。当使用damon_call()进行在线DAMON参数更新时,若damon_commit_ctx()因内部内存分配失败而执行失败,目标damon_ctx对象可能处于部分更新状态。系统若继续使用此损坏的上下文,将导致空指针引用等意外行为,进而引发系统崩溃或拒绝服务。

技术细节

漏洞原理在于Linux内核DAMON(数据访问监视器)机制中,对上下文提交失败的处理不当。damon_commit_ctx()负责在线更新DAMON参数,若在提交过程中发生内存分配失败,函数仅保证对象可被安全释放,但未阻止系统继续使用该部分更新的对象。攻击者若具备本地低权限,可通过触发内存压力条件导致damon_commit_ctx()分配失败,从而制造部分提交的damon_ctx。随后,kdamond_fn()主循环继续调用该损坏的上下文,执行damos_commit_dests()等操作时触发NULL指针解引用,导致内核崩溃。

攻击链分析

STEP 1
步骤1
攻击者获取本地低权限用户访问权限。
STEP 2
步骤2
攻击者配置或触发DAMON(数据访问监视)机制运行。
STEP 3
步骤3
攻击者施加系统内存压力,导致内核内存分配(kmalloc)大概率失败。
STEP 4
步骤4
系统尝试在线更新DAMON参数,调用damon_commit_ctx(),该函数因内存不足而失败。
STEP 5
步骤5
damon_ctx对象处于部分更新(损坏)状态,但未被废弃。
STEP 6
步骤6
内核线程kdamond_fn()继续使用该损坏的上下文,触发空指针引用,导致系统崩溃(DoS)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * Conceptual PoC for CVE-2026-31445 * Triggering memory corruption in DAMON context update. */ #include <linux/module.h> #include <linux/damon.h> void trigger_damon_corruption(void) { struct damon_ctx *ctx; // Setup context ctx = damon_new_ctx(); if (!ctx) return; // Simulate update under memory pressure // If kmalloc fails inside damon_commit_ctx, // ctx becomes partially updated (corrupted). if (damon_commit_ctx(ctx, NULL) < 0) { // Context is now corrupted. // Subsequent use by kdamond_fn will trigger NULL pointer dereference. printk(KERN_INFO "CVE-2026-31445: Context corrupted via allocation failure"); } }

影响范围

Linux Kernel (修复提交前)

防御指南

临时缓解措施
建议立即升级内核。若无法立即升级,可暂时限制本地用户对DAMON特性的使用权限,或监控系统内存使用情况以减少分配失败的概率。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表