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

CVE-2026-23355 Linux内核libata拒绝服务漏洞

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

漏洞信息

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

相关标签

Linux KernelDoSRace ConditionlibataLocal

漏洞概述

Linux内核libata组件存在逻辑漏洞,在处理延迟队列命令时,清除deferred_qc后未取消相关工作队列,导致竞态条件。本地攻击者可利用此缺陷触发内核警告,进而导致系统崩溃或拒绝服务。

技术细节

该漏洞位于Linux内核libata子系统的命令调度逻辑中。当非NCQ命令因队列限制被存储在ap->deferred_qc时,系统会调度工作队列稍后处理。然而,如果在工作执行前发生超时或错误,系统会清除deferred_qc但未取消已调度的工作。当端口重置并重新开始处理新命令时,旧的工作队列可能意外执行。由于此时仍有NCQ命令在运行,导致qc_defer检查失败并触发WARN_ON警告,可能造成系统内核恐慌或拒绝服务。

攻击链分析

STEP 1
步骤1
攻击者向ATA设备发送多个NCQ(Native Command Queuing)命令,填满队列。
STEP 2
步骤2
发送一个非NCQ命令,该命令被存储在ap->deferred_qc中等待处理。
STEP 3
步骤3
触发命令超时或错误,导致系统清除ap->deferred_qc,但未取消已调度的工作队列。
STEP 4
步骤4
系统执行端口重置,并重新开始接收和处理新的NCQ命令。
STEP 5
步骤5
旧的延迟工作队列被执行,此时检测到NCQ命令仍在运行,触发WARN_ON(),可能导致系统崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Conceptual PoC for CVE-2026-23355 // This requires a specific hardware setup and precise timing to trigger the race condition. #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/ioctl.h> #include <scsi/sg.h> #define DEVICE "/dev/sg0" // Example SCSI generic device int main() { int fd = open(DEVICE, O_RDWR); if (fd < 0) { perror("Failed to open device"); return 1; } printf("[+] Attempting to trigger race condition in libata...\n"); // Step 1: Send multiple NCQ commands (simulated) // Step 2: Send non-NCQ command to trigger deferred_qc // Step 3: Force timeout/error to clear deferred_qc without canceling work // Step 4: Reset port and send new commands // Step 5: Wait for old work to run and trigger WARN_ON // Note: Actual exploitation requires precise control over the ATA hardware layer. // This is a structural representation of the attack flow. for(int i = 0; i < 1000; i++) { // Simulated I/O operations write(fd, "data", 4); usleep(100); } close(fd); printf("[+] Done. Check dmesg for WARN_ON(ata_scsi_deferred_qc_work).\n"); return 0; }

影响范围

Linux Kernel (特定版本,详见Git提交记录)

防御指南

临时缓解措施
由于该漏洞需要本地低权限用户访问,建议限制非特权用户对底层硬件设备的直接访问权限(如/dev/sd*或/dev/sg*)。

参考链接

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