安全决策报告

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.

安装决策优先 来源: 手动上传 扫描时间: 2026/4/4
文件 48
IOC 13
越权项 1
发现 6
最直接的威胁证据

为什么得出这个结论

2/4 个维度触发
阻止
声明与实际能力

发现 1 项声明之外的能力或越权行为。

阻止
隐藏执行与外联

提取到 1 个高危 IOC 或外联信号。

通过
攻击链与高危发现

没有形成明确的恶意路径。

复核
依赖与供应链卫生

发现 4 项需要关注的依赖或供应链线索。

风险分是怎么被拉高的

Undeclared shell execution +15

scripts/discover_lan.py:19 uses subprocess.run(['ping', ...]) for LAN sweeps — shell:WRITE not declared in SKILL.md

Undocumented network probing +10

SSDP multicast (239.255.255.250) and ping sweeps of 192.168.31.x are in code but absent from SKILL.md

Plain-text credential storage +8

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

Unpinned critical dependencies +5

openclaw>=1.0.0 and miservice>=0.1.0 have no upper-bound pins; miservice handles auth credentials

Hardcoded Windows path +2

read_ppt.py:74 embeds a literal user desktop path from a one-time development run

最关键的证据

中危 权限提升

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
Declare shell access in SKILL.md allowed-tools section, or refactor to use a pure-Python ICMP library.
中危 文档欺骗

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
Document network:READ/WRITE capabilities in SKILL.md with explicit scope (LAN only, Xiaomi device discovery).
中危 凭证窃取

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
Document that credentials are stored in plain text; recommend using OS keyring or secrets manager instead.
中危 供应链

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
Pin miservice to a known-good version (e.g., miservice==0.1.x) and verify the package source.
低危 供应链

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
Pin openclaw to a specific version range (e.g., openclaw>=1.0.0,<2.0.0).
低危 敏感访问

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
Remove or replace with a command-line argument or environment variable.

声明能力 vs 实际能力

文件系统 通过
声明 NONE
推断 WRITE
scripts/memory.py:40 — sqlite3.connect() + write; scripts/personality.py:53 — json.dump() to disk
命令执行 阻止
声明 NONE
推断 WRITE
scripts/discover_lan.py:19 — subprocess.run(['ping', '-n', '1', '-w', '200', ip])
网络访问 通过
声明 NONE
推断 WRITE
scripts/discover_lan.py:6 — UDP sendto SSDP multicast; skills/xiaoai-speaker/scripts/tts_bridge.py — Xiaomi API calls
环境变量 通过
声明 NONE
推断 READ
skills/xiaoai-speaker/scripts/tts_bridge.py:30 — os.getenv() reads MI_USER, MI_PASS; scripts/deploy.sh:49 — pip install reads env
数据库 通过
声明 NONE
推断 WRITE
scripts/memory.py:56-96 — CREATE TABLE + INSERT into relationship.db via sqlite3

可疑产物与外联

高危 IP 地址
239.255.255.250

scripts/discover_lan.py:6

中危 外部 URL
https://docs.openclaw.ai

CONTRIBUTING.md:127

中危 外部 URL
https://www.sqlite.org/docs.html

CONTRIBUTING.md:129

中危 外部 URL
https://discord.com/invite/clawd

CONTRIBUTING.md:139

中危 外部 URL
https://twitter.com/charlie88931442

CONTRIBUTING.md:171

中危 外部 URL
https://img.youtube.com/vi/xeqP4j0-cfc/0.jpg

README.md:5

中危 外部 URL
https://youtube.com/shorts/xeqP4j0-cfc?si=H4sY9CP5JTBLD06h

README.md:5

中危 外部 URL
https://api.minimaxi.com/v1/t2a_v2

mm-voice-maker/scripts/mm_tts.py:26

中危 外部 URL
http://schemas.openxmlformats.org/presentationml/2006/main

read_ppt.py:25

中危 外部 URL
https://open.feishu.cn/open-apis

skills/mbti-coach/scripts/feishu_calendar.sh:12

中危 外部 URL
https://your-openclaw-gateway/webhook/shortcut

skills/shortcuts-awareness/SKILL.md:101

提示 邮箱
[email protected]

CONTRIBUTING.md:170

依赖与供应链

包名版本来源漏洞备注
miservice >=0.1.0 pip Handles Xiaomi auth credentials but has no upper-version cap
openclaw >=1.0.0 pip Core framework, unpinned with no upper bound
torch >=2.0.0 pip Unpinned — large ML dependency with broad attack surface
transformers >=4.35.0 pip Unpinned — HuggingFace package, broad supply-chain surface
requests >=2.31.0 pip Version pinned, well-maintained

文件构成

48 个文件 · 9892 行
Markdown 21 个文件 · 6386 行Python 20 个文件 · 2743 行Shell 2 个文件 · 482 行Text 4 个文件 · 161 行YAML 1 个文件 · 120 行
需关注文件 · 1
README.md Markdown · 732 行
https://img.youtube.com/vi/xeqP4j0-cfc/0.jpg · https://youtube.com/shorts/xeqP4j0-cfc?si=H4sY9CP5JTBLD06h
其他文件 · smartwatch_integration.md · SKILL.md · SKILL.md · technical_limitations.md · architecture.md · README_merged.md +5

安全亮点

No evidence of data exfiltration — all network calls are to legitimate third-party APIs (Xiaomi, Feishu, MiniMax) for declared features
No base64-encoded payloads, eval(), or anti-analysis obfuscation found
No hardcoded external IP addresses for data exfiltration
No prompt injection, jailbreak, or hidden instructions in documentation
No evidence of reverse shell, C2 communication, or credential harvesting beyond the legitimate Xiaomi/Feishu integrations
Core skill functionality (personality, memory, emotional intelligence, relationship tracking) is entirely local and benign