Scan Report
5 /100
crustacean-email-gateway
Register an OpenClaw identity with Crustacean Email Gateway, recover lost bearer tokens, manage mailbox/inbox/outbox, update message status, configure forwarding, and send outbound email through the API.
Legitimate email gateway skill for OpenClaw/Crustacean with no malicious behavior; minor doc gap around openssl subprocess but functionally transparent.
Safe to install
Approve for use. Consider documenting the openssl subprocess dependency in SKILL.md for completeness.
Findings 1 items
| Severity | Finding | Location |
|---|---|---|
| Low | Subprocess/openssl not declared in SKILL.md capabilities Doc Mismatch | scripts/common.py:118 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | READ | READ | ✓ Aligned | common.py reads ~/.openclaw/identity/device.json and ~/.crustacean-email/token.j… |
| Filesystem | NONE | WRITE | ✓ Aligned | common.py save_token() writes token JSON to CRUSTACEAN_TOKEN_PATH; declared in S… |
| Network | READ | WRITE | ✓ Aligned | All API calls via urllib (POST /register, /recover, /send, GET /mailbox, /inbox,… |
| Shell | NONE | WRITE | ✓ Aligned | common.py line 118: subprocess.run(['openssl', 'dgst', '-sha256', '-sign', key_p… |
| Environment | NONE | READ | ✓ Aligned | common.py reads CRUSTACEAN_API_BASE, OPENCLAW_IDENTITY_PATH, CRUSTACEAN_TOKEN_PA… |
1 findings
Medium External URL 外部 URL
https://api.crustacean.email/api/v1 README.md:43 File Tree
14 files · 45.1 KB · 1395 lines Python 9f · 828L
Markdown 4f · 564L
YAML 1f · 3L
├─
▾
agents
│ └─
openai.yaml
YAML
├─
▾
references
│ ├─
api.md
Markdown
│ └─
examples.md
Markdown
├─
▾
scripts
│ ├─
common.py
Python
│ ├─
configure_forwarding.py
Python
│ ├─
get_inbox.py
Python
│ ├─
get_mailbox.py
Python
│ ├─
get_outbox.py
Python
│ ├─
recover_token.py
⚠
Python
│ ├─
register_mailbox.py
Python
│ ├─
send_message.py
Python
│ └─
update_message_status.py
Python
├─
README.md
Markdown
└─
SKILL.md
Markdown
Dependencies 1 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
python-standard-library | built-in | stdlib | No | Only stdlib used: argparse, base64, hashlib, json, os, pathlib, subprocess, sys, tempfile, urllib — no third-party packages |
Security Positives
✓ All network requests target a single documented domain: api.crustacean.email
✓ No credential harvesting from os.environ — only skill-specific env vars (CRUSTACEAN_API_BASE, OPENCLAW_IDENTITY_PATH, CRUSTACEAN_TOKEN_PATH)
✓ No access to sensitive paths (~/.ssh, ~/.aws/credentials, .env, etc.)
✓ No base64-encoded execution, no eval(), no obfuscation
✓ No reverse shell, C2 communication, or data exfiltration to third-party endpoints
✓ subprocess used only for legitimate cryptographic signing (openssl dgst), not for arbitrary command execution
✓ PoW + signature challenge-response provides cryptographic proof of identity; tokens stored locally, not exfiltrated
✓ Well-documented API contract with explicit rate limits and clear behavior rules
✓ No external dependencies with unpinned versions — only Python standard library used