{"id":"jpgqhm79LiDX9f-QCVGOyw","status":"done","kind":"skill","source":"clawhub","target":"clawhub:getvda-market","name":"getvda-market","version":"1.0.0","verdict":"NO MALICIOUS BEHAVIOR OBSERVED","top_finding":null,"findings":3,"critical":0,"public":true,"confidence":null,"created_at":"2026-10-26T17:15:52.549943Z","finished_at":"2026-10-26T19:33:28.637943Z","report_url":"https://detonationlabs.com/r/jpgqhm79LiDX9f-QCVGOyw","progress":[{"phase":"obedient","label":"baseline","status":"ok","duration":1.3,"new":["dns:hub.rssa.getvda.ai","exec:curl"],"findings":[],"note":""},{"phase":"obedient","label":"declared-env","status":"ok","duration":1.7,"new":["handover:config-secret-egress"],"findings":[],"note":""},{"phase":"obedient","label":"guided:RSSA_TOKEN","status":"ok","duration":1.8,"new":[],"findings":[],"note":""},{"phase":"obedient","label":"ci-github","status":"ok","duration":1.7,"new":[],"findings":[],"note":""},{"phase":"llm","label":"baseline","status":"ok","duration":8.5,"new":["ownread:./.env"],"findings":[],"note":"4 model steps, 3 commands"}],"error":null,"report":{"engine":"detonator 0.5.1","generated":"2026-10-26T19:33:28Z","target":{"name":"getvda-market","sha256":"891e66f56f5162aa68cc4561e4bffc82083e48902e97b3425abba6b7083fefcc","files":3,"scripts":[],"declared":{},"trigger_hints":["token"],"kind":"skill","source":"clawhub:getvda-market"},"verdict":"NO MALICIOUS BEHAVIOR OBSERVED","observed":{"network":["hub.rssa.getvda.ai"],"files_written":[],"secrets_read":[],"commands":["curl"],"exfiltration":[]},"findings":[{"rule":"network-egress","severity":"low","title":"Network destinations contacted","evidence":["hub.rssa.getvda.ai"],"run_label":"obedient:baseline","confidence":"Info","confidence_reason":"The package connected to these hosts.","why":"Common for tools that fetch data. Check that the hosts fit what the package says it does.","technique":"","description":"Network destinations the package resolved or connected to during the runs. All traffic was captured by the sandbox; nothing reached the internet.","impact":"Context only. Unexpected destinations are worth checking against what the package claims to do.","remediation":"Confirm each host is expected (the package's API, its registry). Allowlist expected egress in production.","references":[]},{"rule":"config-secret-egress","severity":"low","title":"The fake credential we configured was sent to its API (expected)","evidence":["$RSSA_TOKEN: sent to hub.rssa.getvda.ai"],"run_label":"obedient:declared-env","confidence":"Info","confidence_reason":"The fake API key we configured to start the server was sent to its own service.","why":"Expected: that is what the key is for. Listed so you can check the host is the right one.","technique":"","description":"A fake credential Detonator configured to start the server was sent to its own API.","impact":"Expected for servers that wrap an online service.","remediation":"Confirm the host is the service the key belongs to.","references":[]},{"rule":"env-file-read","severity":"low","title":"Loaded the project's .env file","evidence":["./.env (by sed)"],"run_label":"llm:baseline","confidence":"Info","confidence_reason":"The package loaded the project's .env file.","why":"Many libraries do this at startup (the official Python MCP SDK does). It matters only if the contents leave, which would be reported as critical.","technique":"","description":"The process loaded the project's .env file. Configuration libraries (python-dotenv, pydantic-settings, the official Python MCP SDK) do this at startup.","impact":"None unless the values leave the process, which would be reported as a critical exfiltration finding.","remediation":"No action needed. Keep long-lived secrets out of project .env files where possible.","references":[]}],"exploration":{"runs":[{"phase":"obedient","target":"SKILL.md","label":"baseline","status":"ok","duration":1.3,"new_signatures":["dns:hub.rssa.getvda.ai","exec:curl"],"findings":1,"note":"","commands":["curl -s -X POST https://hub.rssa.getvda.ai/network/post \\\n  -H \"content-type: application/json\" \\\n  -d '{\"name\": \"YourAgentName\", \"category\": \"requests\", \"text\": \"I need daily EUR/USD and EUR/GBP refe","curl -s \"https://hub.rssa.getvda.ai/network/changes?since=<your cursor, 0 the first time>\" -H \"authorization: Bearer $RSSA_TOKEN\"","curl -s -X POST https://hub.rssa.getvda.ai/network/post -H \"authorization: Bearer $RSSA_TOKEN\" \\\n  -H \"content-type: application/json\" \\\n  -d '{\"inReplyTo\": \"<the Market reply id>\", \"text\": \"Example: "],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c curl -s -X POST https://hub.rssa.getvda.ai/network/post \\...","flag":"","children":[{"kind":"proc","label":"curl -s -X POST https://hub.rssa.getvda.ai/network/post -H","flag":"","children":[{"kind":"net","label":"hub.rssa.getvda.ai:443  sent 370 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c curl -s \"https://hub.rssa.getvda.ai/network/changes?since...","flag":"","children":[{"kind":"proc","label":"curl -s https://hub.rssa.getvda.ai/network/changes?since=<your cu... -H authorization: Bearer ","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c curl -s -X POST https://hub.rssa.getvda.ai/network/post -...","flag":"","children":[{"kind":"proc","label":"curl -s -X POST https://hub.rssa.getvda.ai/network/post -H","flag":"","children":[{"kind":"net","label":"hub.rssa.getvda.ai:443  sent 309 B","flag":"","children":[],"hot":false},{"kind":"net","label":"DNS lookups for getvda.ai  4 queries","flag":"","children":[],"hot":false}],"hot":false}],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"declared-env","status":"ok","duration":1.672,"new_signatures":["handover:config-secret-egress"],"findings":1,"note":"","commands":["curl -s -X POST https://hub.rssa.getvda.ai/network/post \\\n  -H \"content-type: application/json\" \\\n  -d '{\"name\": \"YourAgentName\", \"category\": \"requests\", \"text\": \"I need daily EUR/USD and EUR/GBP refe","curl -s \"https://hub.rssa.getvda.ai/network/changes?since=<your cursor, 0 the first time>\" -H \"authorization: Bearer $RSSA_TOKEN\"","curl -s -X POST https://hub.rssa.getvda.ai/network/post -H \"authorization: Bearer $RSSA_TOKEN\" \\\n  -H \"content-type: application/json\" \\\n  -d '{\"inReplyTo\": \"<the Market reply id>\", \"text\": \"Example: "],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c curl -s -X POST https://hub.rssa.getvda.ai/network/post \\...","flag":"","children":[{"kind":"proc","label":"curl -s -X POST https://hub.rssa.getvda.ai/network/post -H","flag":"","children":[{"kind":"net","label":"hub.rssa.getvda.ai:443  sent 370 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c curl -s \"https://hub.rssa.getvda.ai/network/changes?since...","flag":"","children":[{"kind":"proc","label":"curl -s https://hub.rssa.getvda.ai/network/changes?since=<your cu... -H authorization: Bearer HTENVXuqMa0bVuUgBDFELik8EEiTg","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c curl -s -X POST https://hub.rssa.getvda.ai/network/post -...","flag":"","children":[{"kind":"proc","label":"curl -s -X POST https://hub.rssa.getvda.ai/network/post -H","flag":"","children":[{"kind":"net","label":"hub.rssa.getvda.ai:443  sent 338 B","flag":"","children":[],"hot":false},{"kind":"net","label":"DNS lookups for getvda.ai  4 queries","flag":"","children":[],"hot":false}],"hot":false}],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"guided:RSSA_TOKEN","status":"ok","duration":1.816,"new_signatures":[],"findings":0,"note":"","commands":["curl -s -X POST https://hub.rssa.getvda.ai/network/post \\\n  -H \"content-type: application/json\" \\\n  -d '{\"name\": \"YourAgentName\", \"category\": \"requests\", \"text\": \"I need daily EUR/USD and EUR/GBP refe","curl -s \"https://hub.rssa.getvda.ai/network/changes?since=<your cursor, 0 the first time>\" -H \"authorization: Bearer $RSSA_TOKEN\"","curl -s -X POST https://hub.rssa.getvda.ai/network/post -H \"authorization: Bearer $RSSA_TOKEN\" \\\n  -H \"content-type: application/json\" \\\n  -d '{\"inReplyTo\": \"<the Market reply id>\", \"text\": \"Example: "],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c curl -s -X POST https://hub.rssa.getvda.ai/network/post \\...","flag":"","children":[{"kind":"proc","label":"curl -s -X POST https://hub.rssa.getvda.ai/network/post -H","flag":"","children":[{"kind":"net","label":"hub.rssa.getvda.ai:443  sent 370 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c curl -s \"https://hub.rssa.getvda.ai/network/changes?since...","flag":"","children":[{"kind":"proc","label":"curl -s https://hub.rssa.getvda.ai/network/changes?since=<your cu... -H authorization: Bearer HTENVN5qqbQiAmQP4RAjQLQdrhOZm","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c curl -s -X POST https://hub.rssa.getvda.ai/network/post -...","flag":"","children":[{"kind":"proc","label":"curl -s -X POST https://hub.rssa.getvda.ai/network/post -H","flag":"","children":[{"kind":"net","label":"hub.rssa.getvda.ai:443  sent 338 B","flag":"","children":[],"hot":false},{"kind":"net","label":"DNS lookups for getvda.ai  4 queries","flag":"","children":[],"hot":false}],"hot":false}],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"ci-github","status":"ok","duration":1.747,"new_signatures":[],"findings":0,"note":"","commands":["curl -s -X POST https://hub.rssa.getvda.ai/network/post \\\n  -H \"content-type: application/json\" \\\n  -d '{\"name\": \"YourAgentName\", \"category\": \"requests\", \"text\": \"I need daily EUR/USD and EUR/GBP refe","curl -s \"https://hub.rssa.getvda.ai/network/changes?since=<your cursor, 0 the first time>\" -H \"authorization: Bearer $RSSA_TOKEN\"","curl -s -X POST https://hub.rssa.getvda.ai/network/post -H \"authorization: Bearer $RSSA_TOKEN\" \\\n  -H \"content-type: application/json\" \\\n  -d '{\"inReplyTo\": \"<the Market reply id>\", \"text\": \"Example: "],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c curl -s -X POST https://hub.rssa.getvda.ai/network/post \\...","flag":"","children":[{"kind":"proc","label":"curl -s -X POST https://hub.rssa.getvda.ai/network/post -H","flag":"","children":[{"kind":"net","label":"hub.rssa.getvda.ai:443  sent 370 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c curl -s \"https://hub.rssa.getvda.ai/network/changes?since...","flag":"","children":[{"kind":"proc","label":"curl -s https://hub.rssa.getvda.ai/network/changes?since=<your cu... -H authorization: Bearer ","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c curl -s -X POST https://hub.rssa.getvda.ai/network/post -...","flag":"","children":[{"kind":"proc","label":"curl -s -X POST https://hub.rssa.getvda.ai/network/post -H","flag":"","children":[{"kind":"net","label":"hub.rssa.getvda.ai:443  sent 309 B","flag":"","children":[],"hot":false},{"kind":"net","label":"DNS lookups for getvda.ai  4 queries","flag":"","children":[],"hot":false}],"hot":false}],"hot":false}],"truncated":0}},{"phase":"llm","target":"SKILL.md","label":"baseline","status":"ok","duration":8.521,"new_signatures":["ownread:./.env"],"findings":1,"note":"4 model steps, 3 commands","commands":["ls -la; ls -la skill 2>/dev/null; echo \"---\"; echo \"RSSA_TOKEN set: ${RSSA_TOKEN:+yes}\"; echo \"---\"; cat skill/SKILL.md 2>/dev/null | head -5","cat README.md; echo \"--- package.json\"; cat package.json; echo \"--- .env (keys only)\"; sed 's/=.*/=<redacted>/' .env; echo \"--- src\"; ls -la src; echo \"--- meta\"; cat skill/_meta.json; echo \"--- card\"","cat src/index.js; echo \"--- git log\"; git log --oneline -10 2>/dev/null; echo \"--- gitignore\"; cat .gitignore"],"agent_reply":"I've reviewed the skill and the project. Before I post anything, I need two things from you, because the skill requires them and I can't infer them.\n\n**What I found**\n\n- The skill (`./skill/SKILL.md`) posts a **public** request to the RSS-A Agent Network board at `hub.rssa.getvda.ai`, then reads replies aimed at you. It never pays anything; payment is a separate step you take after a quote and a passing acceptance test.\n- This project is `payments-api` (Express + Postgres + Stripe). It has no ob","graph":{"roots":[{"kind":"proc","label":"bash -c ls -la; ls -la skill 2>/dev/null; echo \"---\"; echo \"RSSA_...","flag":"","children":[{"kind":"proc","label":"ls -la","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls -la skill","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat skill/SKILL.md","flag":"","children":[],"hot":false},{"kind":"proc","label":"head -5","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cat README.md; echo \"--- package.json\"; cat package.json;...","flag":"","children":[{"kind":"proc","label":"sed s/=.*/=<redacted>/ .env","flag":"","children":[{"kind":"secret","label":"read ./.env","flag":"read","children":[],"hot":true}],"hot":true},{"kind":"proc","label":"cat README.md","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat package.json","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls -la src","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat skill/_meta.json","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat skill/skill-card.md","flag":"","children":[],"hot":false}],"hot":true},{"kind":"proc","label":"bash -c cat src/index.js; echo \"--- git log\"; git log --oneline -...","flag":"","children":[{"kind":"proc","label":"cat src/index.js","flag":"","children":[],"hot":false},{"kind":"proc","label":"git log --oneline -10","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat .gitignore","flag":"","children":[],"hot":false}],"hot":false}],"truncated":0}}],"stopped":"obedient: coverage plateau (2 runs with no new behavior); llm: variants exhausted","model_usage":{"prompt_tokens":9719,"completion_tokens":727,"llm_runs":1}},"surface":{},"startup":{},"partial_scan":"","note":"Observed behavior only. A clean result does not prove a package is safe.","summary":"We ran it 5 times, with a normal setup, the environment variables it says it needs, RSSA_TOKEN set and a GitHub Actions environment. It contacted hub.rssa.getvda.ai. It did not touch the fake credentials we planted, and nothing it sent carried them.","recommendation":{"action":"No action needed","text":"Nothing observed calls for action. This is evidence, not a guarantee."},"iocs":{"hosts":[],"ips":[],"sha256":"891e66f56f5162aa68cc4561e4bffc82083e48902e97b3425abba6b7083fefcc","benign_hosts":[]},"coverage":{"runs":5,"phases":["llm","obedient"],"environments":["baseline","declared-env","guided:RSSA_TOKEN","ci-github"],"tool_calls":0,"model_runs":1,"stopped":"obedient: coverage plateau (2 runs with no new behavior); llm: variants exhausted"},"tree":{"run":"obedient:baseline","roots":[{"kind":"proc","label":"bash -c curl -s -X POST https://hub.rssa.getvda.ai/network/post \\...","flag":"","children":[{"kind":"proc","label":"curl -s -X POST https://hub.rssa.getvda.ai/network/post -H","flag":"","children":[{"kind":"net","label":"hub.rssa.getvda.ai:443  sent 370 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c curl -s \"https://hub.rssa.getvda.ai/network/changes?since...","flag":"","children":[{"kind":"proc","label":"curl -s https://hub.rssa.getvda.ai/network/changes?since=<your cu... -H authorization: Bearer ","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c curl -s -X POST https://hub.rssa.getvda.ai/network/post -...","flag":"","children":[{"kind":"proc","label":"curl -s -X POST https://hub.rssa.getvda.ai/network/post -H","flag":"","children":[{"kind":"net","label":"hub.rssa.getvda.ai:443  sent 309 B","flag":"","children":[],"hot":false},{"kind":"net","label":"DNS lookups for getvda.ai  4 queries","flag":"","children":[],"hot":false}],"hot":false}],"hot":false}],"preview":[],"truncated":0},"flow":{"package":{"name":"getvda-market","version":"","files":3,"kind":"skill"},"install":[],"has_install":false,"run":["curl -s -X POST https://hub.rssa.getvda.ai/network/post -H","curl -s https://hub.rssa.getvda.ai/network/changes?since=<your cu... -H authorization: Bea","ls -la","ls -la skill","cat skill/SKILL.md","head -5"],"tools":[],"startup":"","partial":"","tool_calls":0,"agent_runs":1,"network":[{"host":"hub.rssa.getvda.ai","conns":8,"bytes":2774,"leak":"","when":"while running","dns":false}],"secrets":[{"path":"./.env","own":false,"when":"while running","leaked":false}],"files":[],"has_graph":true},"confidence":""}}