906 B
906 B
请简述 udev 提权漏洞的基本原理
udev 是 Linux 内核的设备管理器,负责动态管理 /dev 目录下的设备节点
当内核检测到硬件事件(如插入 USB 设备)时,会通过 netlink 套接字 向用户空间的 udev 守护进程发送 uevent(设备事件)
udev 根据 /etc/udev/rules.d/ 中的规则执行相应操作(如创建设备文件、加载驱动、运行自定义程序)
内核发送的 uevent 本质是一条包含环境变量(如 ACTION=add、DEVPATH=...)的字符串
udev 守护进程以 root 权限 运行,它接收并解析这些消息,然后根据规则执行操作
问题在于:netlink 套接字不仅允许内核向 udev 发送消息,也允许用户空间的普通进程向 udev 发送伪造的 uevent
发送伪造消息后,udev 以 root 权限处理该消息,执行攻击者控制的命令