CVE-2026-40592FreeScout是一款免费的自托管帮助台和共享邮箱软件。在1.8.214版本之前,系统存在一个关键的安全漏洞。具体来说,用于撤回发送的路由接口GET /conversation/undo-reply/{thread_id}仅检查当前用户是否拥有查看父级对话的权限,而未验证当前用户是否为被撤回回复的创建者。在共享邮箱的使用场景下,这意味着一个代理可以在15秒的撤回时间窗口内,撤回另一个代理刚刚发送的回复。该漏洞破坏了信息的完整性和可用性,可能导致业务沟通中断或数据丢失。
该漏洞的核心在于FreeScout后端对“撤回回复”操作的权限校验逻辑不严谨。受影响版本的代码在处理GET /conversation/undo-reply/{thread_id}请求时,仅调用了检查对话访问权限的方法,确保请求者属于该对话的参与者或拥有查看权限。然而,代码缺失了对回复(reply)记录所有者的校验步骤,即未比对user_id与reply.created_by_id。攻击者利用此漏洞需要满足两个条件:一是拥有目标FreeScout系统的合法代理账号(低权限即可),二是能够访问目标对话。当受害者代理发送邮件后的15秒内,攻击者只需捕获或猜测thread_id,并发送精心构造的HTTP GET请求,即可触发撤回逻辑。由于缺乏所有权验证,服务器会执行删除或标记撤回操作,导致受害者的邮件被非授权移除。