Scan Report
10 /100
file-sender
Find and send local files to a chat channel (Telegram, Discord, WhatsApp, Signal, Slack) with age-encrypted credential management
The skill is a legitimate file-sending and credential-management utility with age encryption. All operations are documented, the security model (RAM staging, secure deletion, encrypted-at-rest credentials) is well-designed, and no malicious patterns were found.
Safe to install
No blocking action needed. Optionally audit the openclaw CLI dependency and restrict the file search scope to ~ or /home to limit exposure to system-wide enumeration.
Findings 1 items
| Severity | Finding | Location |
|---|---|---|
| Low | System-wide file enumeration Sensitive Access | SKILL.md:38 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | READ | WRITE | ✓ Aligned | send_file.py:47-57 — stages file to /dev/shm; cred_manager.py:119 — writes decry… |
| Shell | WRITE | WRITE | ✓ Aligned | send_file.py:82 — subprocess.run(openclaw); cred_manager.py:36,47,67 — subproces… |
| Network | READ | READ | ✓ Aligned | send_file.py:82 — openclaw message send (outbound messaging only, no inbound fet… |
| Environment | NONE | NONE | — | No os.environ iteration; key path is hardcoded as a path, not env var |
| Skill Invoke | NONE | NONE | — | No recursive skill invocations found |
File Tree
4 files · 19.0 KB · 526 lines Python 2f · 361L
Markdown 1f · 160L
JSON 1f · 5L
├─
▾
scripts
│ ├─
cred_manager.py
Python
│ └─
send_file.py
Python
├─
_meta.json
JSON
└─
SKILL.md
Markdown
Dependencies 3 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
openclaw | unknown | system CLI | No | External CLI dependency — not in requirements.txt; security depends on openclaw's own implementation |
age | unknown | system CLI | No | Standard age encryption tool; no known vulnerabilities |
age-keygen | unknown | system CLI | No | Part of the age package |
Security Positives
✓ No obfuscation: all code is plain-text Python, no base64, no eval/atob
✓ No external network connections: openclaw is the sole outbound channel, called via subprocess
✓ No credential exfiltration: credentials stay encrypted at rest in ~/Documenti/credentials/
✓ Secure memory handling: plaintext decrypted to RAM (/dev/shm), zeroed from memory after use
✓ Secure deletion: plaintext overwritten with zeros + fsync before unlink
✓ Encryption is legitimate: age X25519 + ChaCha20-Poly1305 + Argon2id is a proper modern cipher suite
✓ RAG indexing blacklist: credentials/ explicitly excluded from RAG index
✓ No reverse shell, no C2, no data theft indicators
✓ All subprocess calls are documented and necessary for the feature
✓ File size validation (50 MB Telegram limit) prevents resource exhaustion