Skill Trust Decision

northcap-donor-badge

Skill 声称仅访问 localhost:8791,但代码硬编码连接巴西 IP (186.240.156.169),且使用绑定的自定义证书进行证书固定,存在文档欺骗和行为不符。

Install decision first Source: ClawHub Scanned: 20 days ago
Files 4
Artifacts 3
Violations 1
Findings 4
Most direct threat evidence
01
用户阅读 SKILL.md,误以为仅访问 localhost:8791 Entry · SKILL.md
02
安装 skill 时捆绑的自定义证书被接受为可信 Escalation · scripts/northcap-cert.pem
03
代理发送 agentId、txHash 等信息到外部 IP 186.240.156.169 Impact · scripts/donate.py

Why this conclusion was reached

3/4 dimensions flagged
Block
Declared vs actual capability

1 undeclared or violating capabilities were inferred.

Block
Hidden execution and egress

1 high-risk artifacts or egress signals were extracted.

Block
Attack chain and severe findings

The report includes 3 attack-chain steps and 2 severe findings.

Review
Dependencies and supply chain hygiene

Dependency information is incomplete, so supply-chain confidence stays limited.

Attack Chain

01
用户阅读 SKILL.md,误以为仅访问 localhost:8791

Entry · SKILL.md:1

02
安装 skill 时捆绑的自定义证书被接受为可信

Escalation · scripts/northcap-cert.pem:1

03
代理发送 agentId、txHash 等信息到外部 IP 186.240.156.169

Impact · scripts/donate.py:64

What drove the risk score up

网络权限声明不符 +20

SKILL.md 声明 network: localhost:8791,实际连接 186.240.156.169 (巴西)

自定义证书固定 +15

捆绑 northcap-cert.pem 而非使用系统 CA,可被用于 MITM 攻击

硬编码外部 IP +10

DEFAULT_BASE 硬编码为 186.240.156.169:8791,无动态配置

外传代理身份 +10

agentId 作为用户身份标识被发送至外部服务器

Most important evidence

High Doc Mismatch

网络权限声明与实际行为不符

SKILL.md metadata 声明 'network: ["http://localhost:8791"]',但代码实际连接 'https://186.240.156.169:8791'。这是一个外部 IP 地址而非 localhost。

scripts/donate.py:21
如果需要连接外部服务器,应在 SKILL.md 中明确声明。如果意图是本地服务,应使用 localhost 而非硬编码 IP。
High Supply Chain

自定义 TLS 证书固定存在中间人攻击风险

代码使用捆绑在 skill 中的 northcap-cert.pem 和 northcap-ca.pem 而非系统 CA 证书。这使得攻击者如果能替换这些证书就能进行 MITM 攻击。代码注释声称这是为了'安全',但实际上限制了证书验证的透明度。

scripts/donate.py:26
使用系统 CA 证书或让用户自行配置受信任的 CA。捆绑自定义证书应视为高风险行为。
Medium Sensitive Access

硬编码外部 IP 地址

DEFAULT_BASE 硬编码为 186.240.156.169,这是一名巴西 IP 地址。无环境变量配置方式,用户无法将此流量重定向到其他地址。

scripts/donate.py:21
提供可配置的端点选项,或使用域名而非 IP。
Medium Data Exfil

代理身份信息外传至外部服务器

agentId 参数(可能包含用户或代理的身份标识)被发送至外部服务器。虽然 SKILL.md 声明了这一点,但如果 agentId 包含个人可识别信息,则存在隐私风险。

scripts/donate.py:64
确保 agentId 不包含敏感个人信息,或使用匿名标识符。

Declared capability vs actual capability

Network Block
Declared READ (localhost:8791)
Inferred WRITE (186.240.156.169:8791)
scripts/donate.py:21 DEFAULT_BASE = 'https://186.240.156.169:8791'

Suspicious artifacts and egress

High IP Address
186.240.156.169

scripts/donate.py:21

Medium Wallet Address
0xafd1c6bC2B35152f30E3D0dBE99eE1d40E5a5CF8

SKILL.md:32

Medium External URL
https://186.240.156.169:8791

scripts/donate.py:21

Dependencies and supply chain

There are no structured dependency warnings.

File composition

4 files · 201 lines
Python 1 files · 89 linesMarkdown 1 files · 72 linesOther 2 files · 40 lines
Files of concern · 4
scripts/northcap-ca.pem Other · 20 lines
scripts/northcap-cert.pem Other · 20 lines
scripts/donate.py Python · 89 lines
网络权限声明与实际行为不符 · 自定义 TLS 证书固定存在中间人攻击风险 · 硬编码外部 IP 地址 · 代理身份信息外传至外部服务器 · 186.240.156.169 · https://186.240.156.169:8791
SKILL.md Markdown · 72 lines
0xafd1c6bC2B35152f30E3D0dBE99eE1d40E5a5CF8

Security positives

代码结构清晰,无代码混淆或明显的恶意代码
无凭证收割、shell 执行或文件系统越权操作
明确提示用户捐赠数据将公开,具有一定的透明度
使用标准库 urllib,无第三方依赖风险