
CVE-2026-85317 को पुनरुत्पादित करने वाला एक रन करने योग्य Spring Boot प्रूफ-ऑफ-कॉन्सेप्ट, जिसमें camel-http का OAuth2 टोकन कैश scope, resource और token endpoint को अनदेखा करता है, साथ ही एक पैच किया गया कंट्रोल भी शामिल है।
Apache Camel की उस भेद्यता के लिए चलाने योग्य प्रूफ-ऑफ-कॉन्सेप्ट पुनरुत्पादक, जिसमें camel-http के OAuth2 क्लाइंट टोकन कैश
— एक JVM-वैश्विक static मैप — अपनी प्रविष्टियों को केवल (uri, clientId, clientSecret) पर कुंजीबद्ध करता था, उन फ़ील्ड्स को छोड़ते हुए जो
वास्तव में टोकन को आकार देते हैं: अनुरोधित स्कोप, संसाधन संकेतक, और टोकन एंडपॉइंट। इसलिए केवल उन फ़ील्ड्स में भिन्न दो
एंडपॉइंट्स एक ही कैश प्रविष्टि साझा करते थे, जिससे एक एंडपॉइंट को भिन्न स्कोप, भिन्न संसाधन, या भिन्न प्राधिकरण सर्वर द्वारा जारी किया गया टोकन परोसा जा सकता था — एक अनुरोध जो एंडपॉइंट के लिए कॉन्फ़िगर किए गए से अधिक व्यापक अधिकार रखता है, या एक टोकन जो उस पक्ष को प्रस्तुत किया गया जिसके लिए वह जारी नहीं किया गया था
(CWE-524)।
केवल Spring Boot। यह पुनरुत्पादक एक एकल Camel Spring Boot मॉड्यूल भेजता है। दोष
camel-httpके OAuth2 क्लाइंट में है, जिसका एकcamel-quarkus-httpएक्सटेंशन भी है; लेकिन उस एक्सटेंशन की JVM पैकेजिंग में एंडपॉइंट-स्तरीयoauth2*क्लाइंट विकल्प उस तरह लागू नहीं होते जैसे वे Spring Boot के अंतर्गत होते हैं (टोकन कैश का स्वामित्व रखने वाला OAuth2 अनुरोध इंटरसेप्टर कभी वायर्ड नहीं होता, इसलिए टोकन एंडपॉइंट कभी कॉल नहीं होता) — वही सीमा जो CVE-2026-85251 के लिए प्रलेखित है। Spring Boot मॉड्यूल प्रभावित और ठीक किए गए व्यवहार को प्रदर्शित करता है।
| रनटाइम | निर्देशिका | स्टैक |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-http 4.22.0 (प्रभावित; ठीक किया गया 4.22.1) |
ड्राइवर फ़िक्स के अपने रिग्रेशन टेस्ट (HttpOAuth2TokenCachingTest) को प्रतिबिंबित करता है। प्रक्रिया के भीतर दो अस्थायी HTTP सर्वर चलते हैं: एक टोकन एंडपॉइंट जो बियरर टोकन जारी करता है, और एक लक्ष्य जिसे इसकी आवश्यकता होती है। सत्यापनकर्ता
(/exploit/attack):
oauth2CacheTokens=true&oauth2Scope=read के साथ लक्ष्य को पहला अनुरोध करता है — एक टोकन जारी और कैश किया जाता है;oauth2Scope=read+write के लिए।read टोकन का पुनः उपयोग करता है —
यह सफल होता है भले ही टोकन एंडपॉइंट चला गया हो (कोई नया टोकन संभवतः जारी नहीं किया जा सकता)।HttpHostConnectException)।cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack # affected: 2nd request 200 (reused read token); >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85317-http-oauth2-token-cache-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack # fixed: 2nd request HttpHostConnectException; >>> Not exploited
| गुण | मान |
|---|---|
| घटक | camel-http (OAuth2ClientConfigurer, टोकन कैश) |
| CWE | CWE-524 (संवेदनशील जानकारी वाले कैश का उपयोग) |
| गंभीरता | MEDIUM |
| आक्रमण वेक्टर | एक परिनियोजन एक से अधिक OAuth2 एंडपॉइंट कॉन्फ़िगर करता है जो केवल स्कोप, रिसोर्स इंडिकेटर या टोकन एंडपॉइंट में भिन्न होते हैं; वे JVM-वैश्विक टोकन कैश साझा करते हैं |
| प्रभाव | एक एंडपॉइंट को भिन्न स्कोप/रिसोर्स/प्राधिकरण सर्वर के लिए जारी किया गया टोकन दिया जाता है — कॉन्फ़िगर किए गए से अधिक व्यापक अधिकार, या गलत पक्ष को प्रस्तुत किया गया टोकन |
| प्रभावित संस्करण | 4.0.0 से 4.18.5 से पहले तक, 4.19.0 से 4.22.1 से पहले तक |
| ठीक किए गए संस्करण | 4.18.5, 4.22.1, 4.23.0 |
| JIRA | CAMEL-24456 |
| श्रेय | Claude Security Scan Tool |
सलाह: https://camel.apache.org/security/CVE-2026-85317.html
OAuth2ClientConfigurer कैश कुंजी रिकॉर्ड
OAuth2URIAndCredentials को टोकन एंडपॉइंट, स्कोप और रिसोर्स इंडिकेटर को शामिल करने के लिए विस्तारित करता है, ताकि प्रविष्टियाँ अब उन एंडपॉइंट के बीच साझा न हों जो इनमें से किसी भी फ़ील्ड में भिन्न हों।
स्कोप, रिसोर्स इंडिकेटर या टोकन एंडपॉइंट में भिन्न एंडपॉइंट को अलग-अलग JVM में चलाएँ ताकि वे स्टैटिक कैश साझा न करें।
यह रिपॉज़िटरी शैक्षिक और रक्षात्मक उद्देश्यों के लिए प्रकाशित की गई है: Apache Camel उपयोगकर्ताओं को भेद्यता को समझने, यह सत्यापित करने में मदद करने के लिए कि क्या वे प्रभावित हैं, और पुष्टि करने के लिए कि अपग्रेड करने से यह हल हो जाता है। टोकन
(xxx.yyy.zzz), क्लाइंट आईडी और सीक्रेट हानिरहित प्लेसहोल्डर हैं और दोनों HTTP सर्वर इन-प्रोसेस चलते हैं। इस सामग्री का उपयोग उन सिस्टम के विरुद्ध न करें जिनके आप स्वामी या संचालक नहीं हैं।