CVE-2026-40496FreeScout是一款开源自建工单系统。在1.8.213版本之前,其附件下载功能的令牌生成机制存在严重安全缺陷。系统使用MD5哈希算法对“应用密钥+附件ID+文件大小”进行签名,由于附件ID为连续整数且文件大小易于猜测,导致令牌具有可预测性。未经身份认证的远程攻击者可利用此缺陷伪造合法令牌,绕过权限验证直接下载服务器上的任意私有附件,造成敏感信息泄露。
该漏洞的核心在于FreeScout生成附件下载令牌的算法过于简单且缺乏足够的随机性。系统计算 `md5(APP_KEY + attachment_id + size)` 作为访问凭证。虽然APP_KEY本身是保密的,但在某些配置下可能泄露,或者攻击者通过其他方式获取。然而,问题的关键在于输入参数的熵值极低:`attachment_id`通常是数据库的自增主键,呈现连续性;`size`即文件大小,攻击者可以通过响应头或常见文件类型进行枚举或小范围暴力破解。由于MD5计算速度非常快,攻击者可以编写脚本,遍历可能的ID和Size组合,生成对应的哈希值。一旦生成的哈希值与目标URL中的令牌匹配,攻击者即可成功伪造请求,在无需登录的情况下获取任意附件,这属于典型的不安全的直接对象引用(IDOR)与弱加密算法结合导致的安全问题。