CVE-2023-53605CVE-2023-53605是Linux内核中AMD显示驱动(drm/amd/display)模块的一个内存泄漏漏洞。该漏洞存在于`dc_construct_ctx()`函数中,在Display Core(DC)上下文构造过程中存在内存分配后未正确释放的问题。该漏洞由Linux内核修复提交披露,修复了dc_construct_ctx()函数中的内存泄漏问题。
根据CVSS 3.1评分系统,该漏洞评分为5.5分,属于中危级别。攻击向量为本地攻击(AV:L),攻击复杂度低(AC:L),所需权限为低权限(PR:L),无需用户交互(UI:N)。该漏洞对机密性无影响(C:N),对完整性无影响(I:N),但对可用性影响较高(A:H),这与内存泄漏漏洞可能导致系统资源耗尽的特性一致。
内存泄漏漏洞虽然不像缓冲区溢出或远程代码执行那样直接危害系统安全,但在长时间运行的系统中,持续的内存泄漏会逐渐耗尽系统可用内存,最终导致系统性能下降、OOM(Out of Memory)killer触发进程终止,甚至系统崩溃。对于使用AMD显卡的Linux系统(如服务器、工作站等长时间运行的设备),这一漏洞可能在反复调用相关函数后逐渐显现其影响。
该漏洞位于Linux内核的AMD显示驱动模块中,具体在`dc_construct_ctx()`函数内部。Display Core(DC)是AMDGPU驱动中负责显示管理的核心组件,`dc_construct_ctx()`函数负责构造DC上下文数据结构。
漏洞的根本原因是:在`dc_construct_ctx()`函数执行过程中,存在内存分配路径但缺少对应的释放逻辑。当函数被调用时,系统会分配用于DC上下文的内存资源,但在某些代码路径上,这些已分配的内存未被正确释放,导致内存泄漏。
利用方式:
1. 攻击者需要具有本地系统的低权限访问权限(PR:L)。
2. 攻击者可以通过反复触发显示上下文的创建操作(例如通过特定的ioctl调用或设备操作),使`dc_construct_ctx()`函数被多次调用。
3. 每次调用都会泄漏一定量的内存,随着时间的推移,系统可用内存逐渐减少。
4. 最终,系统可能因为内存耗尽而触发OOM killer,导致关键进程被终止或系统不稳定。
该漏洞的修复通过多个内核稳定版本提交完成,包括1bdea8ee92a6abc650b2189fd5c53f36859baecb、6b8701be1f66064ca72733c5f6e13748cdbf8397等多个补丁,确保在所有受影响的稳定内核版本中得到修复。