flawopen.com/Teardowns/cve-2026-106032-bedrock-agentcore-openapi-reference-ssrf
CVE-2026-106032: AgentCore OpenAPI इंपोर्टर में SSRF
Starter Toolkit 0.3.13 और पुराने संस्करण एजेंट आयात करते समय बाहरी OpenAPI संदर्भ हल करते थे। बदले गए एक्शन-ग्रुप डेटा से आउटबाउंड अनुरोध या स्थानीय फ़ाइल पढ़ना संभव हो सकता था। 0.3.14 या नए संस्करण पर अपडेट करें, प्रभावित एजेंट फिर से आयात करें और बने आर्टिफैक्ट बदलें।[1], [2], [3]
इंपोर्टर को ऐसे कर्मचारी की तरह समझें जो दस्तावेज़ में दिए संदर्भों के आधार पर एक फ़ोल्डर तैयार करता है। कमजोर कर्मचारी हर संदर्भ का पीछा करता था, चाहे वह फ़ोल्डर के बाहर या स्थानीय फ़ाइल तक जाता हो। इसलिए भरोसेमंद दिखने वाला एजेंट भी काम के दौरान कंप्यूटर से डेटा मँगवा या पढ़वा सकता था। सुधार केवल उसी दस्तावेज़ के भीतर के संदर्भ स्वीकार करता है।[2], [7], [8]
इस पेज के मुख्य शब्द
OpenAPI $ref- OpenAPI स्कीमा या परिभाषा का संदर्भ। फ़्रैगमेंट वर्तमान दस्तावेज़ के भीतर जाता है; बाहरी संदर्भ किसी दूसरे संसाधन तक जा सकता है।[1]
Prance ResolvingParser- Starter Toolkit का पार्सर, जो एजेंट आयात करते समय OpenAPI संदर्भ लोड और हल करता है।[2]
SSRF- Server-side request forgery: अविश्वसनीय इनपुट सॉफ़्टवेयर से उसके अपने नेटवर्क स्थान से अनुरोध करवाता है।[7], [8]
फ्रेमवर्क मैपिंग
- इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-918
- OWASP Top 10:2025 — A01:2025 Broken Access Control
मूल कारण विश्लेषण (Root Cause)
0.3.13 में get_agent_info() एक्शन-ग्रुप OpenAPI पेलोड को सीधे prance.ResolvingParser को देता था और संदर्भ समाधान के प्रकार सीमित नहीं करता था। 0.3.14 पहले assert_local_references_only() चलाता है। यह पुनरावर्ती जाँच उन स्ट्रिंग $ref मानों को अस्वीकार करती है जो आंतरिक फ़्रैगमेंट प्रीफ़िक्स #/ से शुरू नहीं होते, फिर resolve_types=RESOLVE_INTERNAL सेट होता है। इससे इस आयात पथ में पार्सर बाहरी OpenAPI संदर्भ प्राप्त नहीं करता। मेंटेनर के परीक्षण पार्सर चलने से पहले अस्वीकृति और HTTP, file, पूर्ण पथ तथा नेटवर्क-पथ संदर्भ जाँचते हैं; दस्तावेज़ के अंदर के फ़्रैगमेंट स्वीकार रहते हैं। इस निष्कर्ष को इंपोर्टर के अन्य पथों पर लागू न मानें और यह दावा न करें कि प्रक्रिया का हर नेटवर्क या फ़ाइल एक्सेस रुक जाता है। समर्थित सुधार अपडेट करना है; कोड तुलना स्रोत सीमा दिखाती है, शोषण निर्देश नहीं। GitHub advisory में @seankohjs को रिपोर्टर बताया गया है; AWS ने समन्वित प्रकटीकरण में सहयोग के लिए Koh Jun Sheng का आभार जताया है।[2], [7], [8], [1]
हमले का चरण-दर-चरण प्रवाह
उसी खाते का प्रिंसिपल एजेंट डेटा बदलता है
उसी AWS खाते के किसी प्रमाणीकृत principal के पास Bedrock Agent के action group OpenAPI schema को संशोधित करने की क्षमता होनी चाहिए, ताकि उसमें विशेष रूप से बनाया गया बाहरी reference value रखा जा सके। यह बिना प्रमाणीकरण वाला इंटरनेट हमला नहीं है।[2]
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
ये अंश आधिकारिक 0.3.13 और 0.3.14 स्रोत वितरणों से हैं। सुधार Prance चलने से पहले बाहरी $ref अस्वीकार करता है और resolver को आंतरिक संदर्भों तक सीमित करता है। अपस्ट्रीम परीक्षण पार्सर से पहले अस्वीकृति और आंतरिक फ़्रैगमेंट की अनुमति जाँचते हैं। यह स्रोत कोड की सीमित तुलना है, अनुरोध उदाहरण नहीं; अंश कॉपी करने की जगह पैकेज अपडेट करें।[7], [8], [2]
सोर्स अंश: AgentCore इंपोर्टर संस्करण 0.3.13 और 0.3.14 के चुनिंदा अंश
# 0.3.13: पार्सर OpenAPI दस्तावेज़ के संदर्भ हल करता है।
parser = ResolvingParser(
spec_string=json.dumps(action_group["apiSchema"]["payload"])
)
action_group["apiSchema"]["payload"] = parser.specification
# 0.3.14: पार्स करने से पहले बाहरी संदर्भ अस्वीकार करें।
assert_local_references_only(action_group["apiSchema"]["payload"])
parser = ResolvingParser(
spec_string=json.dumps(action_group["apiSchema"]["payload"]),
resolve_types=RESOLVE_INTERNAL,
)
def assert_local_references_only(node, path: str = "$") -> None:
if isinstance(node, dict):
reference = node.get("$ref")
if isinstance(reference, str) and not reference.startswith("#/"):
raise ValueError(
f"External OpenAPI references are not supported: {reference!r} at {path}."
)
for key, child in node.items():
assert_local_references_only(child, f"{path}.{key}")
elif isinstance(node, list):
for index, child in enumerate(node):
assert_local_references_only(child, f"{path}[{index}]")
इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓bedrock-agentcore-starter-toolkit स्थापित करने वाले वातावरण खोजें; 0.1.4 से 0.3.13 प्रभावित हैं।[2]
- ✓0.3.14 या बाद के संस्करण पर अपडेट करें, या AWS द्वारा सुझाए गए @aws/agentcore CLI पर जाएँ; Starter Toolkit अब समर्थित नहीं है।[1], [2]
- ✓प्रभावित संस्करण से आयात किए गए एजेंट फिर से आयात करें और स्थानीय तथा तैनात आर्टिफैक्ट बदलें; पैकेज अपडेट पुराने आउटपुट ठीक नहीं करता।[1]
- ✓माइग्रेशन के दौरान bedrock:CreateAgentActionGroup, bedrock:UpdateAgentActionGroup और bedrock:AssociateAgentCollaborator अनुमतियाँ भरोसेमंद प्रिंसिपल तक सीमित करें।[2]
- ✓ऐसे एजेंट आयात न करें जिनका OpenAPI स्कीमा या संबंधित डेटा उसी खाते के अविश्वसनीय प्रिंसिपल ने बदला हो सकता है।[2]
- ✓अपने इंपोर्टर में resolver से पहले बाहरी OpenAPI संदर्भ अस्वीकार करें और परीक्षण करें कि पार्सर चलने से पहले अस्वीकृति होती है।[8]
- ✓इसे
CVE-2026-105812से अलग रखें: यह आयात के समय संदर्भ समाधान है; दूसरी CVE असुरक्षित Python कोड जनरेशन है।[6], [2]
स्रोत
- AWS सुरक्षा बुलेटिन 2026-127
- मेंटेनर सलाह GHSA-5xmr-2rcp-3j75
- CVE-2026-106032 रिकॉर्ड
- NVD CVE-2026-106032
- MITRE CWE-918
- PyPI source distribution 0.3.13 (SHA-256: 6dc3df3719ce64f7e996fca63baedd15c922066271ce18f7a66cd7c24599bf8c)
- PyPI source distribution 0.3.14 (SHA-256: 2632c456926596061c3f4079b85d39be1b0aec95b2882048501517e5c3695c85)
- MITRE CWE-73: फ़ाइल नाम या पथ पर बाहरी नियंत्रण