CVE-2026-53595
FreeScout 存在通过 /user-setup 空 invite_hash 在 MySQL 上实现匿名账户接管漏洞
- 已发布
- 2026年7月20日
- 已更新
- 2026年7月21日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年8月29日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L低 · 未来 30 天
- 百分位
- 79.0%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
FreeScout 是一款使用 PHP 的 Laravel 框架构建的免费帮助台和共享收件箱。在 1.8.224 版本之前,公开端点 `POST /user-setup/{hash}/{invite_sent_at}`(`OpenController@userSetupSave`)仅通过其 `invite_hash` 列来选择目标账户,然后覆盖该账户的电子邮件和密码并以该账户身份登录。此过程无需任何身份验证、Cookie 或先前的会话。用户激活后,FreeScout 会将 `invite_hash` 设置为空字符串。在 MySQL 和 MariaDB 中,`VARCHAR` 的相等性比较会忽略尾随空格,因此单个 URL 编码的空格(`%20`)可以匹配存储的空字符串,并选择 ID 最低的已激活用户。过期保护会使用目标的密码哈希来解密 `invite_sent_at`,但当解密失败时,`Helper::decrypt` 会原样返回其原始输入。因此,诸如 `9999999999` 之类的明文数字值无需任何密钥即可通过生存时间检查。结果是,匿名攻击者可以设置 ID 最低的已激活 FreeScout 账户(支持代理,或如果通过邀请添加了管理员,则为管理员)的电子邮件和密码,并以该账户身份进行身份验证。版本 1.8.224 包含修复程序。
来源
1利用脚本结合 CVE-2026-53595(匿名账户接管)和 CVE-2026-53593(.pht 文件上传),在 FreeScout 帮助台软件上实现未经认证的远程代码执行。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。