
CVE-2025-51482 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Letta AI एजेंट फ्रेमवर्क में असुरक्षित exec() उपयोग और सैंडबॉक्स बायपास के माध्यम से दूरस्थ कोड निष्पादन का प्रदर्शन करता है। इसमें भेद्यता विश्लेषण और शोषण स्क्रिप्ट शामिल है।
समस्या: सिस्टम उपयोगकर्ता द्वारा प्रदान किए गए स्रोत कोड पर कोई सुरक्षा जाँच नहीं करता है।
साक्ष्य:
generate_execution_script
विधि सीधे उपयोगकर्ता कोड को निष्पादन स्क्रिप्ट में सम्मिलित करती है:
python
code += "\n" + self.tool.source_code + "\n"
खतरनाक संचालनों (जैसे os.system, subprocess.call, eval आदि) का पता लगाने के लिए कोई AST विश्लेषण नहीं है।
कोई आयात प्रतिबंध या मॉड्यूल श्वेतसूची नहीं है।
समस्या: उपयोगकर्ता कोड को निष्पादित करने के लिए सीधे exec() का उपयोग किया जाता है, और ग्लोबल्स शब्दकोश में पर्यावरण चर शामिल होते हैं।
साक्ष्य:
python
globals_dict = dict(env) # पर्यावरण चर सीधे उपयोगकर्ता कोड के लिए उजागर होते हैं
exec(code_obj, globals_dict)
समस्या: सभी पर्यावरण चर उपयोगकर्ता कोड के लिए उजागर होते हैं, जिनमें संवेदनशील जानकारी भी शामिल है।
साक्ष्य:
python
env = os.environ.copy() # सभी सिस्टम पर्यावरण चरों की प्रतिलिपि बनाता है
env_vars = self.sandbox_config_manager.get_sandbox_env_vars_as_dict(...)
env.update(env_vars) # सैंडबॉक्स पर्यावरण चर जोड़ता है
समस्या: privileged_tools तंत्र को बायपास किया जा सकता है।
साक्ष्य:
python
if tool_settings.e2b_api_key and not self.privileged_tools:
# e2b सैंडबॉक्स का उपयोग (अपेक्षाकृत सुरक्षित)
else:
# स्थानीय सैंडबॉक्स का उपयोग (असुरक्षित)
यदि संगठन ने privileged_tools=True सेट किया है या e2b API कुंजी कॉन्फ़िगर नहीं की है, तो सिस्टम असुरक्षित स्थानीय निष्पादन पर वापस आ जाता है।
समस्या: उपयोगकर्ता द्वारा इनपुट किए गए स्रोत कोड पर कोई सत्यापन या सफाई नहीं की जाती है।
साक्ष्य: ToolRunFromSource मोड स्रोत कोड के रूप में किसी भी स्ट्रिंग को स्वीकार करता है:
python
source_code: str = Field(..., description="फ़ंक्शन का स्रोत कोड।")
उदाहरण के लिए:
python RCE.py -u http://192.168.63.131:8283/
[+] कमांड निष्पादन सफल:
uid=0(root) gid=0(root) groups=0(root)
python RCE.py -u http://192.168.63.131:8283/ -c whoami
[+] कमांड निष्पादन सफल:
root