IPBUF安全漏洞报告
English
CVE-2026-43055 CVSS 7.5 高危

CVE-2026-43055 Linux内核target_core_file未初始化漏洞

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

漏洞信息

漏洞编号
CVE-2026-43055
漏洞类型
内存未初始化
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux KernelDoSMemory CorruptionSCSILIO

漏洞概述

Linux内核的target_core_file模块存在安全漏洞,由于未正确初始化aio_cmd中的iocb结构,特别是ki_write_stream字段。当处理写命令时,未初始化的值导致块设备层校验失败,引发非预期的写入错误,从而造成拒绝服务。

技术细节

该漏洞位于Linux内核的drivers/target/target_core_file.c驱动中。在分配aio_cmd结构体时,代码未使用kzalloc_flex进行清零初始化,导致iocb->ki_write_stream包含残留的内存数据(垃圾值)。当fd_execute_rw_aio()函数执行异步写操作时,会将这个未初始化的ki_write_stream传递给块设备层。块设备层在检查iocb->ki_write_stream > max_write_streams时,由于垃圾值通常很大,导致校验失败,系统返回写入失败错误。尽管这不会导致信息泄露或权限提升,但它会导致合法的I/O请求被中断,严重影响依赖该存储后端的系统可用性。

攻击链分析

STEP 1
侦察
攻击者识别出目标系统使用的是存在漏洞的Linux内核版本,并且启用了target_core_file(LIO文件IO后备)功能。
STEP 2
触发
攻击者向SCSI Target发送写命令,触发内核执行fd_execute_rw_aio()函数进行异步IO处理。
STEP 3
利用
内核处理aio_cmd时,读取未初始化的iocb->ki_write_stream字段。由于该字段包含垃圾值,导致后续逻辑判断异常。
STEP 4
影响
块设备层检测到stream ID非法,拒绝写入操作,导致服务不可用(DoS)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * Conceptual PoC for CVE-2026-43055 * This code demonstrates the logic flaw leading to the vulnerability. * It simulates the kernel behavior where uninitialized memory causes a check failure. */ #include <stdio.h> #include <stdlib.h> #define MAX_WRITE_STREAMS 10 struct iocb { int ki_write_stream; }; struct aio_cmd { struct iocb iocb; }; // Simulating the vulnerable allocation logic (not zeroing memory) struct aio_cmd* vulnerable_alloc() { // In real kernel: kmalloc instead of kzalloc_flex return (struct aio_cmd*)malloc(sizeof(struct aio_cmd)); } // Simulating the fixed allocation logic struct aio_cmd* fixed_alloc() { struct aio_cmd* cmd = (struct aio_cmd*)malloc(sizeof(struct aio_cmd)); if (cmd) { cmd->iocb.ki_write_stream = 0; // Explicit initialization } return cmd; } int execute_write(struct aio_cmd* cmd) { // Block layer check if (cmd->iocb.ki_write_stream > MAX_WRITE_STREAMS) { printf("[!] Write Failed: Invalid stream ID %d\n", cmd->iocb.ki_write_stream); return -1; } printf("[+] Write Success\n"); return 0; } int main() { printf("--- Testing Vulnerable Scenario ---\n"); struct aio_cmd* cmd_vuln = vulnerable_alloc(); // Note: ki_write_stream is uninitialized here, might contain garbage > MAX_WRITE_STREAMS execute_write(cmd_vuln); free(cmd_vuln); printf("\n--- Testing Fixed Scenario ---\n"); struct aio_cmd* cmd_fixed = fixed_alloc(); execute_write(cmd_fixed); free(cmd_fixed); return 0; }

影响范围

Linux Kernel (Versions prior to commit 01f784fc9d0ab2a6dac45ee443620e517cb2a19b)
Linux Kernel (Versions prior to commit 4eaff1728d0e69b95933412241bbccf4f797dba8)
Linux Kernel (Versions prior to commit ce54802fe6bb78eb0feffc66fed6a45d41ffc3ab)

防御指南

临时缓解措施
建议限制对SCSI Target设备的访问权限,并在应用层实施重试机制以应对潜在的写入失败,直至内核补丁应用完毕。

参考链接

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