
Proof-of-Concept-Exploit für CVE-2025-51482, das eine Remote-Code-Ausführung durch unsichere exec()-Nutzung und Sandbox-Umgehung im Letta KI-Agenten-Framework demonstriert. Enthält Schwachstellenanalyse und Exploitation-Skript.
Problem: Das System führt keine Sicherheitsüberprüfung des vom Benutzer bereitgestellten Quellcodes durch.
Beweis:
generate_execution_script
Methode fügt Benutzercode direkt in das Ausführungsskript ein:
python
code += "\n" + self.tool.source_code + "\n"
Keine AST-Analyse zur Erkennung gefährlicher Operationen (wie os.system, subprocess.call, eval usw.)
Keine Importbeschränkungen oder Modul-Whitelist
Problem: Direkte Ausführung von Benutzercode mit exec(), wobei das globale Dictionary Umgebungsvariablen enthält.
Beweis:
python
globals_dict = dict(env) # Umgebungsvariablen werden dem Benutzercode direkt ausgesetzt
exec(code_obj, globals_dict)
Problem: Alle Umgebungsvariablen werden dem Benutzercode ausgesetzt, einschließlich sensibler Informationen.
Beweis:
python
env = os.environ.copy() # Kopiert alle Systemumgebungsvariablen
env_vars = self.sandbox_config_manager.get_sandbox_env_vars_as_dict(...)
env.update(env_vars) # Fügt Sandbox-Umgebungsvariablen hinzu
Problem: Der privileged_tools-Mechanismus kann umgangen werden.
Beweis:
python
if tool_settings.e2b_api_key and not self.privileged_tools:
else:
Wenn die Organisation privileged_tools=True gesetzt hat oder keinen e2b-API-Schlüssel konfiguriert hat, fällt das System auf unsichere lokale Ausführung zurück.
Problem: Es gibt keine Validierung oder Bereinigung des vom Benutzer eingegebenen Quellcodes.
Beweis: Der Modus ToolRunFromSource akzeptiert beliebige Zeichenfolgen als Quellcode:
python
source_code: str = Field(..., description="The source code of the function.")
例如:
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