
CVE-2026-25126 के लिए प्रूफ-ऑफ-कॉन्सेप्ट जो PolarLearn में फोरम वोट दिशा पैरामीटर के अनुचित रनटाइम सत्यापन के माध्यम से वोट गणना हेरफेर को प्रदर्शित करता है, साथ ही फिक्स विवरण भी।
शोध: Joshua van Rijswijk
CVE-2026-25126 के लिए PoC, जो PolarLearn फोरम वोटिंग API में एक उच्च-गंभीरता वाली व्यावसायिक तर्क (business logic) भेद्यता है।
एंडपॉइंट POST /api/v1/forum/vote direction फ़ील्ड की सख्त रनटाइम मान्यता लागू करने में विफल रहता है।
क्योंकि TypeScript प्रकार रनटाइम पर लागू नहीं होते हैं, एक हमलावर मनमाने स्ट्रिंग भेज सकता है जिन्हें डाउनस्ट्रीम में गलत तरीके से संभाला जाता है।
यह तथाकथित घोस्ट डाउनवोट (ghost downvotes) बनाकर वोट गणना में हेरफेर की अनुमति देता है।
API बिना मान्यता के JSON बॉडी पर भरोसा करता है:
const body: VoteRequestBody = await request.json()
const { postId, direction } = body
const result = await VoteServer(postId, direction)
डाउनस्ट्रीम तर्क किसी भी अप्रत्याशित गैर-शून्य मान को डाउनवोट के रूप में मानता है, और अमान्य मानों को स्थायी रूप से संग्रहीत करता है।
एक अमान्य वोट को शून्य रीसेट के साथ बारी-बारी से भेजकर, एक एकल उपयोगकर्ता बार-बार वोट गणना घटा सकता है।
fetch समर्थन)git clone https://github.com/<your-username>/CVE-2026-25126-PoC.git
cd CVE-2026-25126-PoC
poc.js खोलें और बदलें:
POST_ID को लक्षित फोरम पोस्ट ID सेCOOKIE को अपनी प्रमाणित सत्र कुकी सेnode poc.js
प्रत्येक चक्र के बाद, वोट गणना गलत तरीके से घटनी चाहिए। हेरफेर किए गए स्कोर की पुष्टि करने के लिए फोरम पेज को रीफ्रेश करें।
सख्त रनटाइम मान्यता लागू करके पैच किया गया:
"up", "down", या null