
CVE-2026-59358 के लिए प्रूफ-ऑफ-कॉन्सेप्ट लैब और एक्सप्लॉइट क्लाइंट, जो Cloud Foundry UAA द्वारा उपयोगकर्ता PKCE टोकन को client_credentials Bearer के रूप में पुनः उपयोग करके विशेषाधिकार प्राप्त क्लाइंट टोकन जारी करने को प्रदर्शित करता है।
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · CVE-2026-59358
वर्ग: विशेषाधिकार अवशेष पहुँच: रिमोट
Cloud Foundry UAA v79.6.0 - VMware by Broadcom / Cloud Foundry Foundation
मैं @abraxas_null हूँ। लूपबैक लैब। क्लाइंट CVE-2026-59358-Abraxas-Labs.py है।
एक सार्वजनिक PKCE उपयोगकर्ता एक्सेस टोकन को उसी दोहरे-अनुदान वाले क्लाइंट के लिए grant_type=client_credentials पर Bearer क्लाइंट प्रमाणीकरण के रूप में स्वीकार किया जाता है। UAA उस क्लाइंट के अधिकारों के साथ एक क्लाइंट-केवल टोकन जारी करता है (इस लैब में clients.write)। उपयोगकर्ता टोकन स्वयं POST /oauth/clients पर 403 देता है। अवशेष टोकन एक नया OAuth क्लाइंट बनाता है। प्रकाशित CVE की स्वतंत्र लैब। श्रेय: Minseong Kim (mak3bread)।
| CVE | CVE-2026-59358 · CVE.org |
| वर्ग | विशेषाधिकार अवशेष (उपयोगकर्ता टोकन client_credentials Bearer के रूप में पुनः उपयोग; RCE नहीं) |
| पहुँच | रिमोट (हमलावर का स्वयं का उपयोगकर्ता एक्सेस टोकन) |
| CWE | CWE-287 |
| CVSS | उच्च: 7.6 CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N |
| उत्पाद | Cloud Foundry UAA |
| प्रभावित | UAA v3.7.0 से v79.6.0 तक; cf-deployment v60.4.0 तक |
| पैच किया गया | UAA v79.7.0; cf-deployment v60.5.0 |
| प्रमाणीकरण | प्रमाणित (हमलावर का स्वयं का उपयोगकर्ता PKCE टोकन) |
| लाइसेंस | GNU Affero GPL v3.0 |
| लैब | केवल 127.0.0.1 |
एक सार्वजनिक OAuth क्लाइंट के माध्यम से लॉग इन करें जो client_credentials को भी सूचीबद्ध करता है। उस उपयोगकर्ता JWT को POST /oauth/token पर grant_type=client_credentials के साथ Authorization: Bearer के रूप में पुनः चलाएँ। UAA क्लाइंट के अधिकारों के साथ एक क्लाइंट-केवल टोकन लौटाता है। यदि उनमें clients.write शामिल है, तो हमलावर द्वारा चुने गए अधिकारों के साथ नए OAuth क्लाइंट बनाएँ। किसी क्लाइंट सीक्रेट की आवश्यकता नहीं।
उपयोगकर्ता टोकन स्वयं क्लाइंट का प्रशासन नहीं कर सकता। अवशेष टोकन-एंडपॉइंट जाँच है जो किसी भी वैध एक्सेस टोकन को, जिसका client_id मेल खाता है, क्लाइंट प्रमाणीकरण के रूप में मानती है।
प्रभाव उस क्लाइंट के अधिकारों के साथ बढ़ता है। संयोजन (सार्वजनिक उपयोगकर्ता प्रवाह और एक ही client_id पर client_credentials) डिफ़ॉल्ट नहीं है।
Cloud Foundry ने 5 अक्टूबर 2026 को CVE-2026-59358 प्रकाशित किया। मैंने अंतिम-प्रभावित cfidentity/uaa:v79.6.0 को पिन किया, एक समर्पित दोहरे-अनुदान वाला सार्वजनिक क्लाइंट labpub खड़ा किया, और स्टॉक उपयोगकर्ता marissa के रूप में PKCE चलाया। नकारात्मक नियंत्रण: POST /oauth/clients पर उपयोगकर्ता टोकन 403 है। हमला: client_credentials पर वही Bearer 200 है, फिर labwit-CVE-2026-59358-WITNESS बनाते समय 201।
पहले से दर्ज गलत मोड़: v79.7.0 पिन करना (पैच किया गया); /uaa कॉन्टेक्स्ट पथ के बिना /oauth/token पर हिट करना; issuer और redirect में localhost और 127.0.0.1 मिलाना; स्टॉक login क्लाइंट का उपयोग करना (कोई clients.write नहीं); PKCE के बजाय पासवर्ड अनुदान; Basic client_id:secret के साथ उपयोगकर्ता Bearer भेजना (यह वैध क्लाइंट प्रमाणीकरण है)।
लूपबैक पर HTTP 18258। इमेज docker.io/cfidentity/uaa:v79.6.0 (linux/amd64)। Compose प्रोजेक्ट cve-2026-59358। ./run.sh।
लक्ष्य केवल 127.0.0.1:18258 (या जो लूपबैक आपने बाइंड किया है)।
python3 CVE-2026-59358-Abraxas-Labs.py
यह lab/ में chdir करता है और run.sh चलाता है (compose up, /uaa/info की प्रतीक्षा, फिर poc.py)।
साक्ष्य: मिंट किया गया client_credentials JWT clients.write रखता है और POST /oauth/clients labwit-CVE-2026-59358-WITNESS के लिए 201 लौटाता है। उसी एंडपॉइंट पर उपयोगकर्ता टोकन 403 है।
SUCCESS CVE-2026-59358 grant=client_credentials clients.write create-http=201 id=labwit-CVE-2026-59358-WITNESS CVE-2026-59358-WITNESS
बिना कुछ सीखे खोने के तरीके:
v79.7.0 या बाद काUAA को v79.7.0 या नए संस्करण में, या cf-deployment को v60.5.0 में अपग्रेड करें। तब तक, एक ही client_id पर सार्वजनिक उपयोगकर्ता-मुखी अनुदान और client_credentials न रखें, और clients.write को समर्पित गैर-सार्वजनिक क्लाइंट पर रखें।
पैच किए गए बिल्ड के विरुद्ध CVE-2026-59358-Abraxas-Labs.py को पुनः चलाएँ: client_credentials पर उपयोगकर्ता Bearer को गैर-200 रहना चाहिए।
hub.docker.com/r/cfidentity/uaa टैग v79.6.0
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected]
GNU Affero GPL v3.0। देखें LICENSE।
क्लाइंट लूपबैक से बात करता है। इसका उपयोग उन सिस्टमों के विरुद्ध करना जो आपके स्वामित्व में नहीं हैं, Abraxas Labs द्वारा अधिकृत नहीं है। कोई वारंटी नहीं।
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected]