Low Risk — Risk Score 15/100
Last scan:1 day ago Rescan
15 /100
lmail_ops_complete
Operate LMail end-to-end with strict registration, authentication, inbox loops, threaded replies, and admin registration audits
This is a legitimate LMail email operations skill with proper credential handling, standard library-only dependencies, and no malicious behavior. Minor concerns include undocumented credential file writes and a hardcoded example URL.
Skill Namelmail_ops_complete
Duration65.6s
Enginepi
Safe to install
This skill is safe to use. Ensure the LMAIL_BASE_URL is trusted before deployment. Consider pinning the base URL in production deployments.

Findings 3 items

Severity Finding Location
Low
Undeclared credential file writes Doc Mismatch
SKILL.md does not declare that scripts write credentials to .lmail-credentials.json. This is necessary functionality but should be documented.
save_json_file(args.credentials_file, creds)
→ Add credential persistence to SKILL.md documentation
scripts/strict_register.py:158
Info
External service URL reference Sensitive Access
The skill references https://amiigzz.online as an example base URL. This requires trust in the service operator.
https://amiigzz.online
→ Verify the service operator is trusted before using
SKILL.md:56
Info
No dependency pinning Supply Chain
Scripts use only Python standard library, but no requirements.txt or dependency pinning exists. This is acceptable since no external packages are used.
import os, json, sys - all standard library
→ No action needed - standard library only
N/A
ResourceDeclaredInferredStatusEvidence
Filesystem NONE WRITE ✓ Aligned Writes credentials.json and state files - necessary for the feature
Network READ READ ✓ Aligned All network calls to configured LMAIL_BASE_URL
Shell NONE WRITE ✓ Aligned Shell scripts for deployment - documented in SKILL.md
3 findings
🔗
Medium External URL 外部 URL
https://amiigzz.online
SKILL.md:56
📧
Info Email 邮箱地址
[email protected]
SKILL.md:115
📧
Info Email 邮箱地址
[email protected]
assets/payload-templates/send-message.json:2

File Tree

31 files · 70.8 KB · 2387 lines
Python 11f · 1467L Shell 8f · 511L Markdown 8f · 382L JSON 3f · 23L YAML 1f · 4L
├─ 📁 agents
│ └─ 📋 openai.yaml YAML 4L · 252 B
├─ 📁 assets
│ ├─ 📁 curl-snippets
│ │ └─ 🔧 challenge-solve-register.sh Shell 10L · 312 B
│ └─ 📁 payload-templates
│ ├─ 📋 override-permit.json JSON 3L · 64 B
│ ├─ 📋 register.json JSON 8L · 205 B
│ └─ 📋 send-message.json JSON 12L · 215 B
├─ 📁 references
│ ├─ 📝 api-contract.md Markdown 37L · 880 B
│ ├─ 📝 docs-source-of-truth.md Markdown 26L · 662 B
│ ├─ 📝 error-codes-runbook.md Markdown 33L · 1.0 KB
│ ├─ 📝 openclaw-publish-checklist.md Markdown 62L · 1.4 KB
│ ├─ 📝 ops-playbook.md Markdown 30L · 999 B
│ ├─ 📝 security-policy.md Markdown 21L · 720 B
│ └─ 📝 strict-registration-v2.md Markdown 43L · 1.3 KB
├─ 📁 scripts
│ ├─ 🐍 admin_fetch_registration_events.py Python 85L · 2.6 KB
│ ├─ 🐍 admin_issue_override_permit.py Python 87L · 2.7 KB
│ ├─ 🐍 chat_fast.py Python 261L · 8.4 KB
│ ├─ 🐍 inbox_loop.py Python 109L · 3.7 KB
│ ├─ 🐍 inbox_once.py Python 168L · 5.8 KB
│ ├─ 🔧 install_for_openclaw.sh Shell 49L · 994 B
│ ├─ 🐍 lmail_http.py Python 147L · 4.2 KB
│ ├─ 🐍 login_verify.py Python 114L · 3.4 KB
│ ├─ 🔧 preflight_check.sh Shell 49L · 1.0 KB
│ ├─ 🔧 print_claude_setup.sh Shell 21L · 680 B
│ ├─ 🔧 publish_clawhub.sh Shell 134L · 3.0 KB
│ ├─ 🐍 send_message.py Python 109L · 3.5 KB
│ ├─ 🐍 send_reply.py Python 112L · 3.4 KB
│ ├─ 🔧 smoke_test_registration_flow.sh Shell 102L · 2.7 KB
│ ├─ 🐍 solve_pow.py Python 84L · 2.4 KB
│ ├─ 🐍 strict_register.py Python 191L · 6.2 KB
│ ├─ 🔧 sync_docs_check.sh Shell 72L · 1.3 KB
│ └─ 🔧 validate_openclaw_skill.sh Shell 74L · 1.9 KB
└─ 📝 SKILL.md Markdown 130L · 5.0 KB

Dependencies 1 items

PackageVersionSourceKnown VulnsNotes
python3-standard-library N/A built-in No No external dependencies - uses only stdlib

Security Positives

✓ Standard library only - no malicious dependencies possible
✓ Credentials are masked when printed (mask_secret function)
✓ Credentials files set to mode 0600
✓ No subprocess/eval/exec usage
✓ No base64 execution into shell - base64 only used for legitimate JWT parsing
✓ No access to ~/.ssh, ~/.aws, .env, or other sensitive paths
✓ No curl|bash or wget|sh remote script execution
✓ All network requests go to configured base URL, no hardcoded IPs
✓ Well-structured code with proper error handling
✓ Security policy document present in references/