flawopen.com/Teardowns/cve-2026-105812-bedrock-agentcore-generated-code-injection
CVE-2026-105812: AgentCore इम्पोर्टर में कोड इंजेक्शन
Bedrock AgentCore Starter Toolkit के 0.3.13 और उससे पुराने संस्करणों में एजेंट कॉन्फ़िगरेशन सुरक्षित एन्कोडिंग के बिना बने Python कोड में शामिल हो सकता था। दूसरा उपयोगकर्ता एजेंट इम्पोर्ट करके बाद में चलाए या डिप्लॉय करे तो कोड उसके स्थानीय अधिकारों या AgentCore Runtime execution role से चल सकता था। पैकेज अपडेट करने से पहले बने आर्टिफैक्ट ठीक नहीं होते।[1], [2], [3]
इम्पोर्टर एक ऐसे लेबल प्रिंटर जैसा है जो एजेंट की सेटिंग को Python निर्देशों में बदलता है। सुधार से पहले कुछ मान सुरक्षित रूप से एस्केप किए बिना उद्धरण-चिह्नों के बीच जोड़े जाते थे। मान में मौजूद उद्धरण स्ट्रिंग को समय से पहले बंद कर सकता था और आगे का पाठ Python सिंटैक्स बन सकता था। सुधार मान को Python string literal के रूप में एन्कोड करता है, ताकि वह डेटा ही रहे।[2], [5]
इस पेज के मुख्य शब्द
एजेंट इम्पोर्ट- Starter Toolkit का वह प्रवाह जो Bedrock एजेंट कॉन्फ़िगरेशन पढ़कर Strands या LangChain जैसे फ़्रेमवर्क के लिए स्थानीय Python प्रोजेक्ट बनाता है।[2], [5]
कोड जनरेशन- प्रोग्राम टेम्पलेट को कॉन्फ़िगरेशन मानों या अन्य इनपुट के साथ जोड़कर स्रोत कोड बनाना।[2], [5]
Python string literal- स्रोत कोड में पाठ को डेटा के रूप में दर्शाने की लिखावट।
repr()एस्केप किए गए अक्षरों वाला उद्धरणयुक्त रूप लौटाता है, ताकि वे Python सिंटैक्स न बनें।[5]
फ्रेमवर्क मैपिंग
- इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-94
मूल कारण विश्लेषण (Root Cause)
कमज़ोर इम्पोर्ट ट्रांसलेटर f-string और टेम्पलेट से Python स्रोत बनाता था और Bedrock एजेंट के मान—जैसे प्रॉम्प्ट तथा अन्य कॉन्फ़िगरेशन फ़ील्ड—सीधे जोड़ता था। Python string delimiter वाले मान निर्धारित पाठ संदर्भ से बाहर निकल सकते थे। 0.3.14 सुधार में repr(str(value)) वाला python_string_literal() और JSON-संगत डेटा को सामान्य करने वाला python_data_literal() जोड़ा गया; जनरेट की गई स्ट्रिंग इन एन्कोडर से गुजरती हैं। मेंटेनर सलाह के अनुसार श्रृंखला के लिए उसी AWS खाते का प्रमाणित प्रधान एजेंट डेटा बदलने में सक्षम हो, फिर दूसरा उपयोगकर्ता एजेंट इम्पोर्ट करके बने प्रोजेक्ट को चलाए या डिप्लॉय करे। कोड इम्पोर्ट करने वाले के स्थानीय अधिकारों या AgentCore Runtime execution role से चलता है। AWS बताता है कि प्रभावित संस्करण से बने आर्टिफैक्ट केवल अपग्रेड करने से ठीक नहीं होते: 0.3.14 या नए संस्करण से फिर इम्पोर्ट करें और स्थानीय तथा डिप्लॉय किए गए आउटपुट बदलें। CVE-2026-106032 अलग समस्या है—इम्पोर्ट के समय बाहरी OpenAPI संदर्भों से जुड़ी, यह कोड जनरेशन दोष नहीं है।
जनरेट किए गए कोड की खामी तक पहुँचने की शर्तें
| सीमा | दस्तावेज़ित शर्त | रक्षात्मक कार्रवाई |
|---|---|---|
| Toolkit संस्करण | 0.3.13 तक के संस्करण कुछ मानों को सुरक्षित literal encoding के बिना जनरेट किए गए Python में डालते थे। | 0.3.14 या नए संस्करण पर अपडेट करें, या @aws/agentcore पर माइग्रेट करें। |
| डेटा कौन बदल सकता है | उसी AWS खाते का प्रमाणित principal Bedrock Agent के संबंधित फ़ील्ड बदल सकता है। | एजेंट डेटा लिखने की अनुमति केवल विश्वसनीय principals को दें। |
| दूसरे उपयोगकर्ता द्वारा आयात | दूसरा उपयोगकर्ता प्रभावित Starter Toolkit workflow से बदले हुए एजेंट को आयात करता है। | अन्य principals से मिले एजेंट डेटा को अविश्वसनीय मानें और आयात से पहले उसका स्रोत जाँचें। |
| निष्पादन की शर्त | आयात करने वाला उपयोगकर्ता जनरेट किए गए प्रोजेक्ट को चलाता या deploy करता है; कोड स्थानीय privileges या AgentCore Runtime role से चलता है। | अलग-थलग, least-privilege credentials और runtime roles के साथ आयात व परीक्षण करें। |
| पहले से जनरेट आर्टिफ़ैक्ट | पैकेज अपडेट करने से प्रभावित संस्करणों द्वारा पहले जनरेट किए गए प्रोजेक्ट ठीक नहीं होते। | fixed संस्करण से फिर आयात करें और स्थानीय तथा deployed artifacts बदलें। |
हमले का चरण-दर-चरण प्रवाह
उसी खाते का प्रधान एजेंट डेटा बदल सकता है
शर्त यह है कि AWS खाते का प्रमाणित प्रधान संबंधित Bedrock Agent फ़ील्ड—जैसे action-group schema, collaboration निर्देश या prompt override—बदल सके।[2]
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
यह upstream diff अंश दिखाता है कि कमज़ोर ट्रांसलेटर कॉन्फ़िगरेशन को सीधे triple-quoted Python string में जोड़ता था। सुधार पूरा पाठ python_string_literal() को देता है, जो repr() से उसे डेटा के रूप में एस्केप करता है। संस्करण 0.3.14 यही तरीका दूसरी जनरेट की गई strings और JSON-संगत डेटा पर भी लागू करता है। regression tests आउटपुट को parse करके जाँचते हैं कि marker string constant ही रहे। यह स्रोत कोड का विश्लेषण है, कोई injected मान या चलाया जा सकने वाला exploit नहीं।[2], [5]
सोर्स अंश: services/import_agent/scripts/base_bedrock_translate.py और services/import_agent/utils.py — PRE_PROCESSING prompt का संबंधित अंश
# 0.3.14 सुधार से पहले: टेम्पलेट मान सीधे ट्रिपल-कोट वाले Python स्रोत में डाला जाता था।
self.prompts_code += f"""
PRE_PROCESSING_TEMPLATE=\"""\n
{config["basePromptTemplate"]["system"]}
\"""
"""
# 0.3.14: पूरे मान को Python स्ट्रिंग लिटरल के रूप में एन्कोड करें
prompt = f"\n\n {config['basePromptTemplate']['system']}\n "
self.prompts_code += f"\n PRE_PROCESSING_TEMPLATE={python_string_literal(prompt)}\n"
# services/import_agent/utils.py
def python_string_literal(value: Any) -> str:
return repr(str(value))
इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓
bedrock-agentcore-starter-toolkitइस्तेमाल करने वाले डेवलपर सिस्टम और CI कार्य खोजें; निर्भरता सूची के साथ forks और स्थानीय vendored प्रतियाँ भी शामिल करें।[1], [2] - ✓0.3.14 या नया संस्करण लें, या समर्थित
@aws/agentcoreCLI पर जाएँ; Starter Toolkit अब deprecated है।[1], [2] - ✓प्रभावित संस्करण से बने एजेंट फिर इम्पोर्ट करें और स्थानीय तथा डिप्लॉय किए आर्टिफैक्ट बदलें। पैकेज अपडेट पुराना बना स्रोत कोड नहीं बदलता।[1], [2]
- ✓मेंटेनर सलाह के अनुसार
bedrock:CreateAgentActionGroup,bedrock:UpdateAgentActionGroupऔरbedrock:AssociateAgentCollaboratorअधिकार केवल भरोसेमंद प्रधानों को दें।[2] - ✓विशेषाधिकारयुक्त विकास वातावरण में इम्पोर्ट करने से पहले जाँचें कि खाते के दूसरे प्रधान Bedrock Agent के कौन से डेटा फ़ील्ड बदल सकते हैं।[2]
- ✓ऐसा regression test जोड़ें जो बने Python को parse करके पुष्टि करे कि नियंत्रित marker पाठ केवल string constants में है, नई assignment या executable statement के रूप में नहीं।[5]
- ✓इम्पोर्ट किए एजेंट न्यूनतम-अधिकार वाले स्थानीय credentials और Runtime role से चलाएँ, ताकि भविष्य की generator गलती का असर सीमित रहे।[1]
- ✓
CVE-2026-106032अलग रखें: यह इम्पोर्ट के दौरान बाहरी OpenAPI संदर्भों से SSRF और स्थानीय फ़ाइल पहुँच का मामला है; दोष सीमा और सुधार अलग हैं।[6], [9]
स्रोत
- AWS Security Bulletin 2026-127-AWS
- Maintainer advisory GHSA-37r5-8xpw-vxp9
- CVE-2026-105812 record
- NVD record for CVE-2026-105812
- Upstream fix commit 38545b1
- Separate CVE-2026-106032 maintainer advisory
- Control Plane coverage, October 7, 2026 (attention signal)
- TechGeeks coverage, October 6, 2026 (attention signal)