flawopen.com/Teardowns/cve-2026-27826-mcp-atlassian-ssrf
CVE-2026-27826: MCP Atlassian में SSRF
CVE-2026-27826 का मूल header-आधारित SSRF दोष 0.17.0 में ठीक किया गया। बाद में मिले अलग SSRF दोष 0.22.0 में ठीक किए गए; पूरे fleet का न्यूनतम संस्करण तय करने से पहले हर सलाह जाँचें।[1], [2], [6], [8], [9], [10], [11]
कल्पना करें कि किसी कंपनी का डाक-कक्ष पैकेट केवल स्वीकृत कार्यालयों तक पहुँचा सकता है। कोई आगंतुक विशेष फ़ॉर्म पर दूसरा पता लिखता है और कर्मचारी बिना जाँच उसे स्वीकार कर लेते हैं। सर्वर का fetcher उसी डाक-कक्ष जैसा है: अनुरोध हेडर ने पता चुना और सर्वर ने बाहर अनुरोध भेजा। 0.17.0 का fix कनेक्शन से पहले दिए गए URL की जाँच करता है और redirect destination भी जाँचता है; ऑपरेटर अतिरिक्त रूप से allowed-domain list सेट कर सकता है।[1], [2]
इस पेज के मुख्य शब्द
Server-side request forgery (SSRF)- ऐसी खामी जिसमें अनुरोधकर्ता सर्वर के बाहर जाने वाले अनुरोध को इस तरह प्रभावित कर सकता है कि वह उस गंतव्य तक पहुँचे जहाँ एप्लिकेशन का संपर्क करने का इरादा नहीं था।[1], [4]
MCP transport- MCP client और server के बीच संचार का माध्यम। यह समस्या streamable-HTTP और SSE transports को प्रभावित करती थी; advisory में वर्णित केवल stdio उपयोग वाला deployment इससे प्रभावित नहीं था।[1]
हेडर-आधारित मल्टी-टेनेंट प्रमाणीकरण- ऐसा मोड जो हर अनुरोध में Atlassian URL और token लेकर किसी tenant के लिए API client बनाता है।[1], [2]
आउटबाउंड नेटवर्क नीति- वे नेटवर्क नियंत्रण जो सेवा के संपर्क किए जा सकने वाले गंतव्यों को सीमित करते हैं और एप्लिकेशन की URL जाँच में कमी का प्रभाव घटाते हैं।[12], [1]
अप्रत्यक्ष prompt injection- किसी टूल से लौटे अविश्वसनीय पाठ में ऐसे निर्देश हो सकते हैं जो मॉडल को प्रभावित करें। इस CVE के advisory में हमलावर-नियंत्रित सेवा प्रतिक्रियाओं के टूल परिणामों में आने का उल्लेख है; यह SSRF से अलग प्रभाव-पथ है।[1], [7]
बाद के SSRF सुधारCVE-2026-27826की मूल सलाह में 0.17.0 को सुधारा संस्करण बताया गया है। बाद में अनुरक्षक ने सुधार के चार अलग-अलग अधूरे रास्तों कोCVE-2026-77242,CVE-2026-77267,CVE-2026-77249औरCVE-2026-77274के रूप में दर्ज किया; हर सलाह में 0.22.0 को सुधारा संस्करण बताया गया है। ये अलग CVE हैं,CVE-2026-27826की प्रभावित सीमा का विस्तार नहीं। पूरे fleet का न्यूनतम संस्करण चुनने से पहले बाद की सलाहें भी देखें।[8], [9], [10], [11]
फ्रेमवर्क मैपिंग
- इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-918
- OWASP GenAI 2025 — LLM01:2025 प्रॉम्प्ट इंजेक्शन
- D3-OTF आउटबाउंड ट्रैफ़िक फ़िल्टरिंग — इस गाइड में दिया गया आउटबाउंड नेटवर्क प्रतिबंध सेवा या होस्ट के पहुँच योग्य गंतव्यों को सीमित करता है।
मूल कारण विश्लेषण (Root Cause)
प्रभावित HTTP पथ में server अनुरोध से X-Atlassian-Jira-Url या X-Atlassian-Confluence-Url पढ़कर उस मान को fetcher बनाने वाली JiraConfig या ConfluenceConfig में भेजता था। कमज़ोर हेडर-आधारित प्रमाणीकरण शाखा में fetcher की पहली कॉल से पहले गंतव्य की तुलना server पर निर्धारित tenant URL या स्वीकृत गंतव्य नीति से नहीं होती थी। maintainer advisory अनुरोध middleware और dependency provider पथ को कारण बताती है, किसी एक MCP tool handler को नहीं। इसके लिए प्रभावित HTTP transport और हेडर प्रमाणीकरण की शर्तें आवश्यक हैं; इसे हर MCP deployment पर लागू न मानें।[1], [2]
हमले का चरण-दर-चरण प्रवाह
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
कमज़ोर code excerpt में request header का URL server का outbound destination चुनता है। Upstream 0.17.0 patch इस header-आधारित tenant mode को server-side tenant registry से नहीं बदलता: यह fetcher बनाने से पहले ASGI middleware में दिए गए Jira या Confluence URL को validate करता है, फिर redirect destination जाँचने के लिए response hook जोड़ता है। सुरक्षित excerpt इन दोनों upstream controls को दिखाता है; validator implementation इसमें शामिल नहीं है। Server-side tenant registry इससे मजबूत वैकल्पिक architecture है, इस patch का हिस्सा नहीं। 0.22.0 के बाद के advisories अलग residual paths दर्ज करते हैं, इसलिए उन्हें देखे बिना 0.17.0 को पूरे fleet का minimum version न मानें। DNS rebinding रोकने के लिए connection के समय भी DNS validation लागू होनी चाहिए; hostname को एक बार resolve करना SSRF boundary को पूरी तरह बंद नहीं करता।[1], [2]
सोर्स अंश: Upstream middleware और fetcher patch का अंश (Jira पथ; Confluence में भी समान जाँच है)।
header_jira_fetcher = JiraFetcher(config=header_config)
current_user_id = header_jira_fetcher.get_current_user_account_id()
ssrf_error = validate_url_for_ssrf(jira_url_str)
if ssrf_error:
scope["state"]["auth_validation_error"] = (
f"Forbidden: Invalid Jira URL - {ssrf_error}"
)
return
header_jira_fetcher = JiraFetcher(config=header_config)
header_jira_fetcher.jira._session.hooks["response"].append(
_make_ssrf_safe_hook(validate_url_for_ssrf)
)
current_user_id = header_jira_fetcher.get_current_user_account_id()
इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓Tenant base URL को unauthenticated या caller-controlled headers से स्वीकार न करें; प्रमाणित पहचान और server-side configuration से tenant चुनें।[1], [2]
- ✓हर tenant के लिए केवल स्पष्ट रूप से provision किए गए HTTPS Atlassian hostname स्वीकारें; userinfo, अनपेक्षित ports और अस्पष्ट URL अस्वीकार करें।[1], [8], [9], [10], [11]
- ✓Destination policy को redirects और वास्तविक connection target पर भी लागू करें, केवल शुरू में parse किए गए URL पर नहीं।[2], [8]
- ✓MCP services की outbound network access सीमित करें ताकि स्पष्ट अनुमति के बिना loopback, private, link-local और metadata destinations तक पहुँच न हो।[12], [1]
- ✓सभी tool results को अविश्वसनीय सामग्री मानें; Jira या Confluence से मिला पाठ permissions न बढ़ाए और कार्रवाई को अधिकृत न करे।[1], [7]
- ✓JiraFetcher या ConfluenceFetcher बनाने वाले हर path की समीक्षा करें, उन helper functions की भी जो अलग HTTP session इस्तेमाल कर सकती हैं।[2], [8], [9], [10], [11]
- ✓इस CVE के लिए 0.17.0 से नए संस्करण पर जाएँ; पूरी fleet की न्यूनतम version तय करने से पहले अलग SSRF निष्कर्षों पर maintainer की मौजूदा advisories जाँचें।[1], [6], [8], [9], [10], [11]
- ✓संस्करण के निर्णय अलग रखें: 0.17.0 मूल
CVE-2026-27826पथ को ठीक करता है; बाद की चार SSRF सलाहें (CVE-2026-77242,CVE-2026-77267,CVE-2026-77249औरCVE-2026-77274) 0.22.0 को सुधारा संस्करण बताती हैं। पूरे fleet का न्यूनतम संस्करण तय करने से पहले नवीनतम सलाह सूची जाँचें।[6], [8], [9], [10], [11]
स्रोत
- Maintainer advisory: CVE-2026-27826
- Upstream fix commit 5cd697d
- NVD record: CVE-2026-27826
- MITRE CWE-918: Server-Side Request Forgery
- Pluto Security disclosure: MCPwnfluence and separate CVE-2026-27825 / CVE-2026-27826 chain
- Maintainer advisories: later MCP Atlassian security findings
- OWASP Top 10 for LLM Applications 2025: LLM01 Prompt Injection
- बाद की SSRF सलाह GHSA-72fm-whvq-jghf / CVE-2026-77242
- बाद की SSRF सलाह GHSA-5wf4-jqxh-8gm3 / CVE-2026-77267
- बाद की SSRF सलाह GHSA-v9m3-wfh8-5646 / CVE-2026-77249
- बाद की SSRF सलाह GHSA-hgcf-4mq8-5266 / CVE-2026-77274
- OWASP Cheat Sheet: Server-Side Request Forgery से बचाव