{"id":"0nu1p4txWXNaqnksYtx5EQ","status":"done","kind":"skill","source":"clawhub","target":"clawhub:plainlykit-temporary-email","name":"plainlykit-temporary-email","version":"1.0.0","verdict":"NO MALICIOUS BEHAVIOR OBSERVED","top_finding":null,"findings":1,"critical":0,"public":true,"confidence":null,"created_at":"2026-10-26T17:15:52.408509Z","finished_at":"2026-10-26T18:17:04.498007Z","report_url":"https://detonationlabs.com/r/0nu1p4txWXNaqnksYtx5EQ","progress":[{"phase":"scripts","label":"baseline","status":"ok","duration":3.6,"new":[],"findings":[],"note":""},{"phase":"scripts","label":"guided:LC_MESSAGES","status":"ok","duration":2.9,"new":[],"findings":[],"note":""},{"phase":"scripts","label":"docs:--state /private/path/inbox.json create","status":"ok","duration":3.1,"new":[],"findings":[],"note":""},{"phase":"obedient","label":"baseline","status":"ok","duration":8.7,"new":[],"findings":[],"note":""},{"phase":"obedient","label":"guided:LC_MESSAGES","status":"ok","duration":10.8,"new":[],"findings":[],"note":""},{"phase":"obedient","label":"ci-github","status":"ok","duration":9.6,"new":[],"findings":[],"note":""},{"phase":"llm","label":"baseline","status":"ok","duration":26.5,"new":["dns:plainlykit.com"],"findings":[],"note":"8 model steps, 7 commands"}],"error":null,"report":{"engine":"detonator 0.5.1","generated":"2026-10-26T18:17:04Z","target":{"name":"plainlykit-temporary-email","sha256":"1ddb826a9eeffd210be8d9d57ff6ce898b18576ec60ccd82261176997dccaaea","files":4,"scripts":["scripts/tempmail.py"],"declared":{},"trigger_hints":["token"],"kind":"skill","source":"clawhub:plainlykit-temporary-email"},"verdict":"NO MALICIOUS BEHAVIOR OBSERVED","observed":{"network":["plainlykit.com"],"files_written":[],"secrets_read":[],"commands":[],"exfiltration":[]},"findings":[{"rule":"network-egress","severity":"low","title":"Network destinations contacted","evidence":["plainlykit.com"],"run_label":"llm: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":[]}],"exploration":{"runs":[{"phase":"scripts","target":"scripts/tempmail.py","label":"baseline","status":"ok","duration":3.632,"new_signatures":[],"findings":0,"note":"","commands":[],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"python3 <skill>/scripts/tempmail.py","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"scripts","target":"scripts/tempmail.py","label":"guided:LC_MESSAGES","status":"ok","duration":2.929,"new_signatures":[],"findings":0,"note":"","commands":[],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"python3 <skill>/scripts/tempmail.py","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"scripts","target":"scripts/tempmail.py","label":"docs:--state /private/path/inbox.json create","status":"ok","duration":3.094,"new_signatures":[],"findings":0,"note":"","commands":[],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"python3 <skill>/scripts/tempmail.py --state /private/path/inbox.json create","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"baseline","status":"ok","duration":8.709,"new_signatures":[],"findings":0,"note":"","commands":["python3 scripts/tempmail.py --state /private/path/inbox.json create\npython3 scripts/tempmail.py --state /private/path/inbox.json list\npython3 scripts/tempmail.py --state /private/path/inbox.json read "],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c cd skill && python3 scripts/tempmail.py --state /private/...","flag":"","children":[{"kind":"proc","label":"python3 scripts/tempmail.py --state /private/path/inbox.json create","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/tempmail.py --state /private/path/inbox.json list","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/tempmail.py --state /private/path/inbox.json read MESSAGE_ID","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/tempmail.py --state /private/path/inbox.json delete","flag":"","children":[],"hot":false}],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"guided:LC_MESSAGES","status":"ok","duration":10.805,"new_signatures":[],"findings":0,"note":"","commands":["python3 scripts/tempmail.py --state /private/path/inbox.json create\npython3 scripts/tempmail.py --state /private/path/inbox.json list\npython3 scripts/tempmail.py --state /private/path/inbox.json read "],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c cd skill && python3 scripts/tempmail.py --state /private/...","flag":"","children":[{"kind":"proc","label":"python3 scripts/tempmail.py --state /private/path/inbox.json create","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/tempmail.py --state /private/path/inbox.json list","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/tempmail.py --state /private/path/inbox.json read MESSAGE_ID","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/tempmail.py --state /private/path/inbox.json delete","flag":"","children":[],"hot":false}],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"ci-github","status":"ok","duration":9.591,"new_signatures":[],"findings":0,"note":"","commands":["python3 scripts/tempmail.py --state /private/path/inbox.json create\npython3 scripts/tempmail.py --state /private/path/inbox.json list\npython3 scripts/tempmail.py --state /private/path/inbox.json read "],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c cd skill && python3 scripts/tempmail.py --state /private/...","flag":"","children":[{"kind":"proc","label":"python3 scripts/tempmail.py --state /private/path/inbox.json create","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/tempmail.py --state /private/path/inbox.json list","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/tempmail.py --state /private/path/inbox.json read MESSAGE_ID","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/tempmail.py --state /private/path/inbox.json delete","flag":"","children":[],"hot":false}],"hot":false}],"truncated":0}},{"phase":"llm","target":"SKILL.md","label":"baseline","status":"ok","duration":26.478,"new_signatures":["dns:plainlykit.com"],"findings":1,"note":"8 model steps, 7 commands","commands":["ls -la skill skill/scripts 2>/dev/null; python3 --version","cat skill/scripts/tempmail.py","mkdir -p /tmp/pk-mail && chmod 700 /tmp/pk-mail && cd skill && python3 scripts/tempmail.py --state /tmp/pk-mail/inbox.json create","ls -la /tmp/pk-mail; cd skill && python3 - <<'EOF'\nimport sys\nsys.argv=[\"x\"]\nimport importlib.util\nspec=importlib.util.spec_from_file_location(\"t\",\"scripts/tempmail.py\")\nm=importlib.util.module_from_s","cd skill && python3 - <<'EOF'\nimport importlib.util\nspec=importlib.util.spec_from_file_location(\"t\",\"scripts/tempmail.py\")\nm=importlib.util.module_from_spec(spec); spec.loader.exec_module(m)\nfrom urll","cd skill && python3 - <<'EOF'\nimport importlib.util\nspec=importlib.util.spec_from_file_location(\"t\",\"scripts/tempmail.py\")\nm=importlib.util.module_from_spec(spec); spec.loader.exec_module(m)\nfrom urll","cd skill && python3 - <<'EOF'\nimport importlib.util\nspec=importlib.util.spec_from_file_location(\"t\",\"scripts/tempmail.py\")\nm=importlib.util.module_from_spec(spec); spec.loader.exec_module(m)\nfrom urll"],"agent_reply":"I couldn't complete the task: the PlainlyKit temporary-email API isn't working as the skill describes, so no inbox was created.\n\n**What happened**\n- `create` failed immediately with the script's generic error (\"Request failed…\"). It cleaned up its state file, so nothing was left behind.\n- I inspected the raw responses to diagnose it. Every request — `POST /mailboxes`, `GET /mailboxes`, `GET /mailboxes/{id}/messages`, `DELETE /mailboxes/{id}` — returned the **same** payload:\n  ```json\n  {\"id\":\"re","graph":{"roots":[{"kind":"proc","label":"bash -c ls -la skill skill/scripts 2>/dev/null; python3 --version","flag":"","children":[{"kind":"proc","label":"ls -la skill skill/scripts","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 --version","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cat skill/scripts/tempmail.py","flag":"","children":[{"kind":"proc","label":"cat skill/scripts/tempmail.py","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c mkdir -p /tmp/pk-mail && chmod 700 /tmp/pk-mail && cd ski...","flag":"","children":[{"kind":"proc","label":"mkdir -p /tmp/pk-mail","flag":"","children":[],"hot":false},{"kind":"proc","label":"chmod 700 /tmp/pk-mail","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/tempmail.py --state /tmp/pk-mail/inbox.json create","flag":"","children":[{"kind":"net","label":"plainlykit.com:443  sent 298 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c ls -la /tmp/pk-mail; cd skill && python3 - <<'EOF'\nimport...","flag":"","children":[{"kind":"proc","label":"ls -la /tmp/pk-mail","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 -","flag":"","children":[{"kind":"net","label":"plainlykit.com:443  sent 298 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill && python3 - <<'EOF'\nimport importlib.util\nspec=...","flag":"","children":[{"kind":"proc","label":"python3 -","flag":"","children":[{"kind":"net","label":"plainlykit.com:443  sent 298 B","flag":"","children":[],"hot":false},{"kind":"net","label":"plainlykit.com:443  sent 299 B","flag":"","children":[],"hot":false},{"kind":"net","label":"plainlykit.com:443  sent 302 B","flag":"","children":[],"hot":false},{"kind":"net","label":"plainlykit.com:443  sent 296 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill && python3 - <<'EOF'\nimport importlib.util\nspec=...","flag":"","children":[{"kind":"proc","label":"python3 -","flag":"","children":[{"kind":"net","label":"plainlykit.com:443  sent 297 B","flag":"","children":[],"hot":false},{"kind":"net","label":"plainlykit.com:443  sent 310 B","flag":"","children":[],"hot":false},{"kind":"net","label":"plainlykit.com:443  sent 319 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill && python3 - <<'EOF'\nimport importlib.util\nspec=...","flag":"","children":[{"kind":"proc","label":"python3 -","flag":"","children":[{"kind":"net","label":"plainlykit.com:443  sent 322 B","flag":"","children":[],"hot":false},{"kind":"net","label":"plainlykit.com:443  sent 313 B","flag":"","children":[],"hot":false},{"kind":"net","label":"DNS lookups for plainlykit.com  22 queries","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"rm -rf /tmp/pk-mail","flag":"","children":[],"hot":false}],"hot":false}],"truncated":0}}],"stopped":"scripts/scripts/tempmail.py: coverage plateau (2 runs with no new behavior); obedient: coverage plateau (2 runs with no new behavior); llm: variants exhausted","model_usage":{"prompt_tokens":21623,"completion_tokens":1390,"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 7 times, with a normal setup, LC_MESSAGES set, docs:--state /private/path/inbox.json create and a GitHub Actions environment. It contacted plainlykit.com. 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":"1ddb826a9eeffd210be8d9d57ff6ce898b18576ec60ccd82261176997dccaaea","benign_hosts":[]},"coverage":{"runs":7,"phases":["llm","obedient","scripts"],"environments":["baseline","guided:LC_MESSAGES","docs:--state /private/path/inbox.json create","ci-github"],"tool_calls":0,"model_runs":1,"stopped":"scripts/scripts/tempmail.py: coverage plateau (2 runs with no new behavior); obedient: coverage plateau (2 runs with no new behavior); llm: variants exhausted"},"tree":{"run":"llm:baseline","roots":[{"kind":"proc","label":"bash -c ls -la skill skill/scripts 2>/dev/null; python3 --version","flag":"","children":[{"kind":"proc","label":"ls -la skill skill/scripts","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 --version","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cat skill/scripts/tempmail.py","flag":"","children":[{"kind":"proc","label":"cat skill/scripts/tempmail.py","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c mkdir -p /tmp/pk-mail && chmod 700 /tmp/pk-mail && cd ski...","flag":"","children":[{"kind":"proc","label":"mkdir -p /tmp/pk-mail","flag":"","children":[],"hot":false},{"kind":"proc","label":"chmod 700 /tmp/pk-mail","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/tempmail.py --state /tmp/pk-mail/inbox.json create","flag":"","children":[{"kind":"net","label":"plainlykit.com:443  sent 298 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c ls -la /tmp/pk-mail; cd skill && python3 - <<'EOF'\nimport...","flag":"","children":[{"kind":"proc","label":"ls -la /tmp/pk-mail","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 -","flag":"","children":[{"kind":"net","label":"plainlykit.com:443  sent 298 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill && python3 - <<'EOF'\nimport importlib.util\nspec=...","flag":"","children":[{"kind":"proc","label":"python3 -","flag":"","children":[{"kind":"net","label":"plainlykit.com:443  sent 298 B","flag":"","children":[],"hot":false},{"kind":"net","label":"plainlykit.com:443  sent 299 B","flag":"","children":[],"hot":false},{"kind":"net","label":"plainlykit.com:443  sent 302 B","flag":"","children":[],"hot":false},{"kind":"net","label":"plainlykit.com:443  sent 296 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill && python3 - <<'EOF'\nimport importlib.util\nspec=...","flag":"","children":[{"kind":"proc","label":"python3 -","flag":"","children":[{"kind":"net","label":"plainlykit.com:443  sent 297 B","flag":"","children":[],"hot":false},{"kind":"net","label":"plainlykit.com:443  sent 310 B","flag":"","children":[],"hot":false},{"kind":"net","label":"plainlykit.com:443  sent 319 B","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill && python3 - <<'EOF'\nimport importlib.util\nspec=...","flag":"","children":[{"kind":"proc","label":"python3 -","flag":"","children":[{"kind":"net","label":"plainlykit.com:443  sent 322 B","flag":"","children":[],"hot":false},{"kind":"net","label":"plainlykit.com:443  sent 313 B","flag":"","children":[],"hot":false},{"kind":"net","label":"DNS lookups for plainlykit.com  22 queries","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"rm -rf /tmp/pk-mail","flag":"","children":[],"hot":false}],"hot":false}],"preview":[],"truncated":0},"flow":{"package":{"name":"plainlykit-temporary-email","version":"","files":4,"kind":"skill"},"install":[],"has_install":false,"run":["python3 <skill>/scripts/tempmail.py","python3 <skill>/scripts/tempmail.py --state /private/path/inbox.json create","python3 scripts/tempmail.py --state /private/path/inbox.json create","python3 scripts/tempmail.py --state /private/path/inbox.json list","python3 scripts/tempmail.py --state /private/path/inbox.json read MESSAGE_ID","python3 scripts/tempmail.py --state /private/path/inbox.json delete"],"tools":[],"startup":"","partial":"","tool_calls":0,"agent_runs":1,"network":[{"host":"plainlykit.com","conns":11,"bytes":3352,"leak":"","when":"while running","dns":false}],"secrets":[],"files":[],"has_graph":true},"confidence":""}}