
CVE-2026-50338 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट: Spring Cloud Azure B2C संसाधन सर्वरों में क्रॉस-इश्यूअर प्रमाणीकरण बाईपास। AAD ऐप पंजीकरण के माध्यम से टोकन जालसाजी प्रदर्शित करता है ताकि संरक्षित B2C एंडपॉइंट्स तक पहुंचा जा सके।
Spring Cloud Azure B2C रिसोर्स सर्वर क्रॉस-जारीकर्ता प्रमाणीकरण बाईपास
spring-cloud-azure-autoconfigure में AadB2cResourceServerAutoConfiguration एक JwtDecoder बनाता है जो AadTrustedIssuerRepository से AadB2cTrustedIssuerRepository.java:30 के माध्यम से प्राप्त छह AAD-पंक्ति जारीकर्ताओं (login.microsoftonline.com, sts.windows.net, sts.chinacloudapi.cn, प्रत्येक के v1 और v2) पर भरोसा करता है। यह कोई tid दावा सत्यापक स्थापित नहीं करता, और aud विधेय containsAll का उपयोग करता है (खाली ऑडियंस पर वैक्युअस रूप से सत्य)।
उसी टेनेंट में AAD ऐप रजिस्ट्रेशन वाला एक हमलावर client_credentials टोकन जारी करता है जिसका iss https://sts.windows.net/<tenant>/ होता है और जिसका aud B2C ऐप के client-id से मेल खाता है। B2C रिसोर्स सर्वर इसे स्वीकार कर लेता है क्योंकि AAD जारीकर्ता उसके विश्वसनीय सेट में होता है और कोई आगे की दावा सत्यापन क्रॉस-आइडेंटिटी-सिस्टम टोकन को अस्वीकार नहीं करती।
यह CVE-2026-33117 (AAD रिसोर्स सर्वर) का B2C जुड़वाँ है। PR #49033 ने AAD पथ को ठीक किया; B2C पथ को PR #49252 (2026-06-02 को मर्ज, जुलाई 2026 सुरक्षा अद्यतन में जारी) तक नहीं छुआ गया था।
tenant-id=common के साथ, किसी भी Entra टेनेंट का टोकन स्वीकार कर लिया जाता है।
प्रभावित: spring-cloud-azure-starter-active-directory-b2c <= 5.19.0। जुलाई 2026 सुरक्षा अद्यतन में ठीक किया गया (PR #49252)।
pip install msal requests
# Against a vulnerable Spring Boot B2C resource server:
python3 poc.py \
--target http://localhost:8080/profile \
--tenant-id <TENANT_ID> \
--client-id <ATTACKER_APP_CLIENT_ID> \
--client-secret <ATTACKER_APP_SECRET> \
--victim-api <B2C_APP_CLIENT_ID>
# Without MSAL (raw HTTP token request):
python3 poc.py \
--target http://localhost:8080/profile \
--tenant-id <TENANT_ID> \
--client-id <ATTACKER_APP_CLIENT_ID> \
--client-secret <ATTACKER_APP_SECRET> \
--victim-api <B2C_APP_CLIENT_ID> \
--no-msal
# Verbose output (full token claims and response):
python3 poc.py ... -v
हमलावर ऐप रजिस्ट्रेशन के लिए आवश्यक है:
msal, requestsspring-cloud-azure-starter-active-directory-b2c <= 5.19.0 का उपयोग करता है| फ़ाइल | विवरण |
|---|---|
poc.py | Python PoC: AAD टोकन जारी करता है, B2C एंडपॉइंट पर भेजता है, बाईपास की रिपोर्ट करता है |
README.md | भेद्यता विवरण और उपयोग |
LICENSE | GPLv3 लाइसेंस |
यह प्रोजेक्ट GNU GPLv3 के अंतर्गत जारी किया गया है।
यह रक्षात्मक सुरक्षा अनुसंधान, शिक्षा और अधिकृत परीक्षण के लिए प्रदान किया गया है। इस कोड का उपयोग मालिक की स्पष्ट अनुमति के बिना सिस्टम या सेवाओं के विरुद्ध न करें।
अनधिकृत उपयोग लागू कानून का उल्लंघन कर सकता है। लेखक तृतीय-पक्ष प्रणालियों के परीक्षण की अनुमति नहीं देते और दुरुपयोग के लिए ज़िम्मेदार नहीं हैं।
वारंटी और दायित्व शर्तों के लिए LICENSE फ़ाइल देखें।