Hacker News 中文摘要

RSS订阅

内核栈释放后使用漏洞:利用Nvidia的GPU Linux驱动 -- A kernel stack use-after-free: Exploiting Nvidia's GPU Linux drivers

文章摘要

这篇文章披露了NVIDIA开源Linux GPU内核驱动(nvidia.ko和nvidia-uvm.ko)中的两个漏洞,攻击者可通过本地非特权进程触发,实现内核读写操作。漏洞已通过概念验证证实,并报告给NVIDIA。

文章总结

漏洞分析:利用NVIDIA GPU Linux驱动中的内核栈释放后使用漏洞

漏洞概述

研究人员在NVIDIA Linux开源GPU内核模块中发现两个高危漏洞: 1. 空指针解引用漏洞(CVE-2025-23300):位于nvidia-uvm模块的UVM_MAP_EXTERNAL_ALLOCATION ioctl中,当处理未关联设备的NV01_MEMORY_DEVICELESS类型内存时,未检查pGpu字段导致内核崩溃。 2. 内核栈释放后使用漏洞(CVE-2025-23280):nvidia模块的threadStateInit()threadStateFree()函数对栈分配的THREAD_STATE_NODE结构操作时,若发生内核异常会导致该结构残留在全局红黑树中。

技术细节

漏洞触发条件

  • 攻击者通过本地非特权进程触发
  • 漏洞1引发内核崩溃后,漏洞2导致释放的栈内存仍被红黑树引用
  • 利用视频设备(v4l2)和fork操作控制vmalloc内存布局

利用技术

  1. 内存布局控制

    • 通过大量fork操作填充vmalloc区域
    • 使用v4l2缓冲区分配实现内存重叠
    • 利用NVIDIA驱动内存分配特性触发主动内存回收
  2. 信息泄露

    • 通过红黑树节点操作泄露内核栈地址
    • 结合random_kstack_offset特性计算目标地址
  3. 写原语构建

    • 精心构造红黑树结构触发_mapRotateRight操作
    • 利用旋转操作实现受限的任意地址写入
  4. 权限提升

    • 覆盖path_openat()中的file指针
    • 伪造文件结构体突破KASLR防护
    • 通过llseek操作实现内核函数调用

修复方案

NVIDIA在2025年10月驱动更新中修复: 1. 为dupMemory函数添加空指针检查(commit 2b43605) 2. 引入堆分配的threadStateAlloc替代栈分配(仅部分函数采用)

影响范围

  • 使用开源GPU内核模块的Linux系统
  • 测试环境:Ubuntu Noble + Linux 6.11.0-24 + NVIDIA 570.86.15驱动
  • 需配合本地访问权限

时间线

| 日期 | 事件 | |------------|------| | 2025-06-18 | 漏洞报告给NVIDIA | | 2025-08-12 | 协商披露期限延长至10月23日 | | 2025-10-09 | NVIDIA发布安全公告 | | 2025-10-14 | 公开技术分析 |

完整PoC参见此处

注:该漏洞利用对系统负载敏感,在持续高负载环境下可能失败。内核崩溃导致的锁问题可通过手动解锁缓解(未经测试)。

评论总结

总结评论内容:

  1. 关于NVIDIA漏洞披露时间的争议
  • 主要观点:批评NVIDIA要求延长漏洞披露时间不合理
  • 论据:Quarkslab指出漏洞早在6月18日报告,推迟到2026年1月远超标准的90天披露期
  • 关键引用: "Richest corporation in the world needs 7 months to remedy? Why not 4 years?" "mid-January was well past the standard 90 day normally agreed for coordinated disclosure"
  1. 关于NVIDIA闭源问题的批评
  • 主要观点:认为NVIDIA的闭源政策导致安全问题难以解决
  • 论据:如果开放用户态程序源代码,公众可以帮助发现和修复漏洞
  • 关键引用: "If only there were some way to release the source code for your userland programs" "having a few people...look at extremely low-level code...is the only way forward"
  1. 关于Jetson Thor驱动更新问题
  • 主要观点:指出NVIDIA不同产品线驱动更新不一致
  • 论据:Jetson Thor的最新驱动未包含这两个CVE的修复
  • 关键引用: "the latest driver available for Jetson Thor doesn't have the fixes for these two CVEs" "they decided to fork their own driver"

注:所有评论均未显示评分(None)。