Linux内核缓冲区溢出漏洞CVE-2024-58018技术分析

本文详细分析Linux内核6.12.13/6.13.2版本中r535_gsp_cmdq_push函数的缓冲区溢出漏洞,涉及漏洞成因、影响范围和修复方案,对系统安全有重要影响。

CVE-2024-58018 Linux内核r535.c缓冲区溢出漏洞分析

漏洞概述

在Linux内核最高至6.12.13/6.13.2版本中发现了一个被归类为严重级别的漏洞。该漏洞影响文件drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c中的函数r535_gsp_cmdq_push,操作导致缓冲区溢出。

此漏洞被命名为CVE-2024-58018,目前尚无可用漏洞利用程序。

技术细节

漏洞成因

该漏洞被归类为CWE-120缓冲区拷贝未检查大小问题。产品在将输入缓冲区复制到输出缓冲区时,未验证输入缓冲区大小是否小于输出缓冲区大小,导致缓冲区溢出。

根据CVE总结:在Linux内核中,已解决以下漏洞:

nvkm:正确计算GSP cmdq缓冲区的可用空间

r535_gsp_cmdq_push()在处理大型RPC请求时等待GSP cmdq缓冲区中的可用页面。当它看到cmdq中至少有一个可用页面时,它会退出等待并返回队列中的空闲缓冲区页面数。

不幸的是,在回滚之前,它总是将[写指针,buf_size]作为可用缓冲区页面,并错误计算应复制的数据大小。因此,它可能覆盖GSP当前正在读取的RPC请求,导致由于RPC请求损坏而引发的GSP挂起:

1
2
[  549.209389] ------------[ cut here ]------------
[  549.214010] WARNING: CPU: 8 PID: 6314 at drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c:116 r535_gsp_msgq_wait+0xd0/0x190 [nvkm]

影响范围

受影响产品:

  • Linux内核版本:6.12.0至6.12.13,6.13.0至6.13.2

影响方面:

  • 机密性、完整性和可用性

解决方案

修复方案

升级到版本6.12.14、6.13.3或6.14-rc1可消除此漏洞。

应用补丁56e6c7f6d2a6b4e0aae0528c502e56825bb40598/6b6b75728c86f60c1fc596f0d4542427d0e6065b/01ed662bdd6fce4f59c1804b334610d710d79fa0能够消除此问题。

安全评分

  • CVSS v3基础评分:8.0
  • CVSS v3临时评分:7.6
  • NVD基础评分:5.5

漏洞利用信息

  • 当前漏洞利用价格估算:0-5,000美元
  • 可利用性:容易
  • 目前尚无可用漏洞利用程序

检测工具

Nessus漏洞扫描器提供ID为236983的插件(Ubuntu 24.04 LTS / 24.10:Linux内核漏洞(USN-7521-1)),可帮助确定目标环境中是否存在此缺陷。

时间线

  • 2025年2月27日:咨询披露
  • 2025年2月27日:CVE保留
  • 2025年2月27日:VulDB条目创建
  • 2025年10月23日:VulDB条目最后更新

参考资料

该漏洞还在以下数据库中记录:

  • Tenable (236983)
  • EUVD (EUVD-2025-5201)
  • CERT Bund (WID-SEC-2025-0453)

咨询共享下载地址:git.kernel.org

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计