CVE-2023-4632:联想系统更新程序本地提权漏洞分析

本文详细分析了联想系统更新程序中的一个本地提权漏洞(CVE-2023-4632),攻击者可通过任意文件写入实现从低权限用户提升至SYSTEM权限,包含完整的技术细节和漏洞利用过程。

CVE-2023-4632:联想系统更新程序本地提权漏洞

版本:Lenovo Updater Version <= 5.08.01.0009
测试操作系统:Windows 10 22H2 (x64)
漏洞类型:通过任意文件写入实现本地权限提升
安全公告:https://support.lenovo.com/us/en/product_security/LEN-135367

漏洞概述

联想系统更新应用程序设计允许非管理员用户检查和安装工作站更新。在检查更新过程中,高权限的Lenovo Update应用会尝试使用C:\SSClientCommon\HelloLevel_9_58_00.xml文件(默认不存在)。由于任何低权限用户都可以在C盘根目录创建目录,攻击者可构造特殊的HelloLevel_9_58_00.xml文件。该自定义XML文件包含源文件和目标文件路径,当用户检查更新时,高权限的联想系统更新程序会解析此文件并执行文件移动操作,最终实现任意文件写入,导致权限提升至NT AUTHORITY\SYSTEM。

漏洞利用过程

  1. 用户通过联想系统更新程序检查更新时,会以高完整性上下文启动Tvsukernel.exe进程
  2. Tvsukernel.exe会检查C:\SSClientCommon\HelloLevel_9_58_00.xml文件
  3. 攻击者可创建C:\SSClientCommon目录并放置恶意XML文件
  4. 同时创建C:\SSClientCommon\UTS目录存放恶意可执行文件
  5. 恶意XML文件中定义"execute"动作,指定源文件路径和通过目录遍历实现的目标路径
  6. 更新程序解析XML后会将恶意文件移动到系统目录(如覆盖SUService.exe)
  7. 重启更新服务时,恶意代码将以SYSTEM权限执行

技术细节

攻击使用的XML文件包含以下关键结构:

1
2
3
4
<execute>
    <SourcePath>C:\SSClientCommon\UTS\poc2.exe</SourcePath>
    <DestinationPath>..\..\..\Program Files (x86)\Lenovo\System Update\SUService.exe</DestinationPath>
</execute>

漏洞利用成功后,攻击者的恶意代码将:

  1. 覆盖合法的SUService.exe服务程序
  2. 在系统重启或服务重新启动时以SYSTEM权限执行
  3. 示例中通过创建C:\Windows\POCOutput.txt文件验证执行权限

该漏洞已在联想系统更新程序的最新版本中修复。

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