
CVE-2026-85254 के लिए रन करने योग्य Spring Boot और Quarkus रिप्रोड्यूसर, जो हेडर-नाम केसिंग के माध्यम से Apache Camel camel-platform-http हेडर-इको सप्रेशन बायपास को प्रदर्शित करता है, प्रभावित और फिक्स्ड कंट्रोल के साथ।
Apache Camel की उस भेद्यता के लिए चलाने योग्य proof-of-concept reproducer, जिसमें वह गार्ड जो किसी request header को
response में प्रतिबिंबित होने से रोकता है, header नामों की तुलना case-sensitive रूप से करता था, जबकि HTTP header नाम
case-insensitive होते हैं। कोई caller केवल header नाम का case बदलकर उस suppression को पराजित कर सकता था — और HTTP/2 के
अंतर्गत यह कभी मेल ही नहीं खाता था, क्योंकि प्रोटोकॉल के अनुसार wire पर header नाम lowercase होने चाहिए, इसलिए हर HTTP/2
request के लिए suppression निष्क्रिय था। परिणाम यह है कि caller द्वारा चुना गया content response में वापस echo हो जाता है
(response-splitting और cache-poisoning हमलों का आधार), और यह उन्हीं credential headers (Authorization, Cookie,
Proxy-Authorization) को प्रतिबिंबित करता है जिन्हें suppression को response से बाहर रखना था।
| Runtime | Directory | Stack |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-platform-http-vertx 4.22.0 (प्रभावित; fixed 4.22.1), Camel का Vert.x server |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.29.0 + camel-quarkus-platform-http (Camel 4.15.0, प्रभावित; fixed control CQ 3.40.0 / Camel 4.22.1) |
दोनों modules प्रभावित और fixed व्यवहार दोनों को प्रदर्शित करते हैं।
एक platform-http:/echo endpoint serve किया जाता है। इसका HeaderFilterStrategy सामान्य request headers को response से
suppress करने के लिए होता है। driver strategy की सीधे जाँच करता है और एक live request भी भेजता है जिसमें lowercase
(HTTP/2-शैली) credential header होता है।
Authorization (canonical) को suppress करती है लेकिन authorization (lowercase) को नहीं, और
authorization: Bearer <secret> ले जाने वाली live request response में वापस echo हो जाती है।# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack # affected: lowercase header echoed back; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85254-platform-http-header-echo-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack # fixed: suppressed; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack # affected (Camel 4.15.0): lowercase header echoed back
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack # fixed: suppressed
| गुण | मान |
|---|---|
| घटक | camel-platform-http (PlatformHttpEndpoint, COMMON_HTTP_REQUEST_HEADERS) |
| CWE | CWE-178 (केस संवेदनशीलता का अनुचित प्रबंधन) |
| गंभीरता | MEDIUM |
| आक्रमण वेक्टर | एक अनुरोध हेडर जिसका नाम विहित वर्तनी से भिन्न केस में है (उदा. कोई भी HTTP/2 अनुरोध) |
| प्रभाव | कॉलर द्वारा चुनी गई हेडर सामग्री प्रतिक्रिया में प्रतिध्वनित — प्रतिक्रिया-विभाजन / कैश-विषाक्तता, और उन क्रेडेंशियल हेडरों का परावर्तन जिन्हें दमन रोकने के लिए है |
| प्रभावित संस्करण | 4.0.0 से 4.18.5 से पहले तक, 4.19.0 से 4.22.1 से पहले तक |
| ठीक किए गए संस्करण | 4.18.5, 4.22.1, 4.23.0 |
| JIRA | CAMEL-24453 |
| श्रेय | Claude Security Scan Tool |
सलाह: https://camel.apache.org/security/CVE-2026-85254.html
PlatformHttpEndpoint अब COMMON_HTTP_REQUEST_HEADERS को केस-संवेदी Set.of(...) के बजाय केस-असंवेदी TreeSet(String.CASE_INSENSITIVE_ORDER) में रखता है, इसलिए दमन इस बात की परवाह किए बिना मेल खाता है कि कॉलर ने हेडर नाम को किस केस में लिखा है — जिसमें HTTP/2 द्वारा आवश्यक सभी-लोअरकेस नाम भी शामिल हैं।
Camel एंडपॉइंट के सामने संबंधित हेडरों को हटा दें, या अंतर्निहित दमन पर निर्भर रहने के बजाय रूट में उन्हें प्रतिक्रिया से हटा दें।
यह रिपॉज़िटरी शैक्षिक और रक्षात्मक उद्देश्यों के लिए प्रकाशित की गई है: Apache Camel उपयोगकर्ताओं को भेद्यता को समझने, यह सत्यापित करने कि क्या वे प्रभावित हैं, और यह पुष्टि करने में मदद करने के लिए कि अपग्रेड करने से यह हल हो जाती है। इंजेक्ट किया गया हेडर मान एक निष्क्रिय स्थानीय फ़िक्स्चर है। इस सामग्री का उपयोग उन सिस्टमों के विरुद्ध न करें जिनके आप स्वामी या संचालक नहीं हैं।