samantha
The Samantha skill is an emotional AI companion with legitimate device-integration features, but contains undeclared shell execution, undocumented LAN ping sweeps, and plain-text credential storage — all absent from SKILL.md, creating a doc-to-code mismatch that warrants suspicion.
Why this conclusion was reached
2/4 dimensions flagged1 undeclared or violating capabilities were inferred.
1 high-risk artifacts or egress signals were extracted.
There is no explicit malicious chain in the report.
4 dependency or supply-chain issues need attention.
What drove the risk score up
scripts/discover_lan.py:19 uses subprocess.run(['ping', ...]) for LAN sweeps — shell:WRITE not declared in SKILL.md
SSDP multicast (239.255.255.250) and ping sweeps of 192.168.31.x are in code but absent from SKILL.md
Xiaomi (mi_user/mi_pass) and Feishu (FEISHU_APP_ID/FEISHU_APP_SECRET) credentials stored in plain JSON with no encryption, not mentioned in docs
openclaw>=1.0.0 and miservice>=0.1.0 have no upper-bound pins; miservice handles auth credentials
read_ppt.py:74 embeds a literal user desktop path from a one-time development run
Most important evidence
Undeclared shell execution via subprocess ping sweep
scripts/discover_lan.py conditionally invokes subprocess.run(['ping', ...]) to sweep 192.168.31.x when SSDP discovery fails. This shell:WRITE capability is not declared anywhere in SKILL.md.
scripts/discover_lan.py:19 LAN device discovery and network probing undocumented
The skill performs SSDP multicast discovery (239.255.255.250:1900) and falls back to ping sweeps of 192.168.31.x. SKILL.md does not mention any network probing capabilities. The xiaoai-speaker SKILL.md documents the miservice integration but not the local network scan.
scripts/discover_lan.py:6 Plain-text credential storage for Xiaomi and Feishu
Xiaomi account credentials (mi_user, mi_pass) and Feishu app credentials (FEISHU_APP_ID, FEISHU_APP_SECRET) are stored in plain-text JSON files (data/xiaoai_config.json) and/or .env files. No encryption, no keyring integration. SKILL.md documents the config format but not the security implications.
skills/xiaoai-speaker/scripts/tts_bridge.py:30 Critical auth dependency miservice has no version cap
requirements.txt pins miservice>=0.1.0 with no upper bound. miservice handles Xiaomi account authentication (username/password). An unconstrained dependency handling credentials poses supply-chain risk.
requirements.txt:15 openclaw framework dependency unpinned
requirements.txt specifies openclaw>=1.0.0 with no upper bound. This is the core framework; an unbounded dependency could pull a breaking or malicious update.
requirements.txt:1 Hardcoded Windows user path in read_ppt.py
read_ppt.py contains a literal hardcoded path 'D:\xuyan\桌面\Samantha\邓小闲koki-寻找Samantha.pptx'. This is a one-time development artifact but leaks a real username and desktop location into the codebase.
read_ppt.py:74 Declared capability vs actual capability
scripts/memory.py:40 — sqlite3.connect() + write; scripts/personality.py:53 — json.dump() to disk scripts/discover_lan.py:19 — subprocess.run(['ping', '-n', '1', '-w', '200', ip]) scripts/discover_lan.py:6 — UDP sendto SSDP multicast; skills/xiaoai-speaker/scripts/tts_bridge.py — Xiaomi API calls skills/xiaoai-speaker/scripts/tts_bridge.py:30 — os.getenv() reads MI_USER, MI_PASS; scripts/deploy.sh:49 — pip install reads env scripts/memory.py:56-96 — CREATE TABLE + INSERT into relationship.db via sqlite3 Suspicious artifacts and egress
239.255.255.250 scripts/discover_lan.py:6
https://docs.openclaw.ai CONTRIBUTING.md:127
https://www.sqlite.org/docs.html CONTRIBUTING.md:129
https://discord.com/invite/clawd CONTRIBUTING.md:139
https://twitter.com/charlie88931442 CONTRIBUTING.md:171
https://img.youtube.com/vi/xeqP4j0-cfc/0.jpg README.md:5
https://youtube.com/shorts/xeqP4j0-cfc?si=H4sY9CP5JTBLD06h README.md:5
https://api.minimaxi.com/v1/t2a_v2 mm-voice-maker/scripts/mm_tts.py:26
http://schemas.openxmlformats.org/presentationml/2006/main read_ppt.py:25
https://open.feishu.cn/open-apis skills/mbti-coach/scripts/feishu_calendar.sh:12
https://your-openclaw-gateway/webhook/shortcut skills/shortcuts-awareness/SKILL.md:101
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| miservice | >=0.1.0 | pip | No | Handles Xiaomi auth credentials but has no upper-version cap |
| openclaw | >=1.0.0 | pip | No | Core framework, unpinned with no upper bound |
| torch | >=2.0.0 | pip | No | Unpinned — large ML dependency with broad attack surface |
| transformers | >=4.35.0 | pip | No | Unpinned — HuggingFace package, broad supply-chain surface |
| requests | >=2.31.0 | pip | No | Version pinned, well-maintained |
File composition
README.md