扫描报告
25 /100
nip-aa-citizenship
Enables autonomous agents to understand, pursue, and maintain citizenship under the NIP-AA protocol on Nostr
A legitimate NIP-AA citizenship skill for autonomous Nostr agents. All observed capabilities are documented, the keypair handling is proper cryptography, and Nostr relay/API access is standard protocol operation. One documented-but-risky pattern exists: automated git pull for skill updates.
可以安装
Pin the requests and websocket-client dependencies to specific versions. Consider signing git commits and verifying tags before pulling updates in production deployments.
安全发现 3 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | Automated git pull with no integrity verification 供应链 | skill.py:824 |
| 低危 | Unpinned Python dependencies 供应链 | SKILL.md:37 |
| 提示 | Hardcoded default relay URLs 供应链 | adapters/nanoclaw.py:68 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 网络访问 | READ | READ | ✓ 一致 | SKILL.md declares Nostr relay + Constitution API access; skill.py:830 uses reque… |
| 命令执行 | WRITE | WRITE | ✓ 一致 | SKILL.md explicitly documents 'skill.start_update_checker() runs git fetch + git… |
| 文件系统 | WRITE | WRITE | ✓ 一致 | NanoClawAdapter writes SQLite and IPC JSON files; this is framework-specific and… |
| 技能调用 | READ | READ | ✓ 一致 | SKILL.md defines all skill entry points; no hidden invocation paths found |
| 环境变量 | NONE | NONE | — | No iteration over os.environ for sensitive keys observed; constitution_api_url i… |
| 剪贴板 | NONE | NONE | — | No clipboard access found in any file |
| 浏览器 | NONE | NONE | — | No browser automation found |
| 数据库 | WRITE | WRITE | ✓ 一致 | NanoClawAdapter creates and uses SQLite tables; OpenClawAdapter uses in-memory d… |
3 项发现
中危 外部 URL 外部 URL
https://nanoclaw.dev/ adapters/nanoclaw.py:8 中危 外部 URL 外部 URL
https://clawhub.ai/skills/nip-aa-citizenship skill.py:9 提示 邮箱 邮箱地址
[email protected] skill.py:739 目录结构
17 文件 · 169.3 KB · 4482 行 Python 15f · 3952L
Markdown 2f · 530L
├─
▾
adapters
│ ├─
__init__.py
Python
│ ├─
base.py
Python
│ ├─
nanoclaw.py
Python
│ └─
openclaw.py
Python
├─
▾
nostr_primitives
│ ├─
__init__.py
Python
│ ├─
dm.py
Python
│ ├─
events.py
Python
│ ├─
keygen.py
Python
│ └─
relay.py
Python
├─
__init__.py
Python
├─
citizenship.py
Python
├─
constitution.py
Python
├─
dm_listener.py
Python
├─
HEARTBEAT.md
Markdown
├─
self_reflection.py
Python
├─
SKILL.md
Markdown
└─
skill.py
Python
依赖分析 3 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
requests | * | SKILL.md metadata.install | 否 | Version not pinned in SKILL.md metadata |
websocket-client | * | SKILL.md metadata.install | 否 | Version not pinned in SKILL.md metadata |
coincurve | * | SKILL.md metadata.install | 否 | Version not pinned in SKILL.md metadata |
安全亮点
✓ All capabilities declared in SKILL.md match actual code behavior — no doc-to-code mismatch found
✓ Private key (nsec/privkey_hex) handling is purely cryptographic with no exfiltration paths — keys generated via os.urandom and stored only in adapter memory
✓ NIP-04 encryption uses standard AES-256-CBC with proper ECDH shared key derivation; no custom or weakened crypto
✓ No base64-encoded payloads piped into shell, no eval(), no atob() patterns, no hidden HTML comments
✓ No access to ~/.ssh, ~/.aws, .env, or other sensitive host paths
✓ DM relationship permission model enforces guardian approval before agent responds to unknown senders
✓ All conversation store data is internal to the adapter — no outbound exfiltration of message content
✓ Git operations run with a 60/120-second timeout to prevent indefinite blocking