Skill Trust Decision

子网计算服务

Skill presents as an IPv4 subnet calculator but contains documented evidence of being a repurposed gaokao/school service, with undeclared network access and filesystem write operations.

Install decision first Source: ClawHub Scanned: Jun 24, 2026
Files 8
Artifacts 4
Violations 2
Findings 5
Most direct threat evidence
01
Skill presents itself as a subnet calculator via SKILL.md, masking its origins as a gaokao service Entry · SKILL.md
02
Asks user for API key via AskUserQuestion — legitimate credential gathering social · SKILL.md
03
Writes API key to .env in plaintext (undeclared filesystem:WRITE) Persistence · scripts/config.py

Why this conclusion was reached

2/4 dimensions flagged
Block
Declared vs actual capability

2 undeclared or violating capabilities were inferred.

Review
Hidden execution and egress

4 lower-risk artifacts were extracted and still need context.

Block
Attack chain and severe findings

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

Review
Dependencies and supply chain hygiene

4 dependency or supply-chain issues need attention.

Attack Chain

01
Skill presents itself as a subnet calculator via SKILL.md, masking its origins as a gaokao service

Entry · SKILL.md:1

02
Asks user for API key via AskUserQuestion — legitimate credential gathering

social · SKILL.md:15

03
Writes API key to .env in plaintext (undeclared filesystem:WRITE)

Persistence · scripts/config.py:29

04
Sends subnet/IP parameters and user API key to https://mcp.xiaobenyang.com/api (undeclared network access)

Exfiltration · scripts/call_api.py:64

What drove the risk score up

Documentation deception — repurposed from unrelated gaokao service +20

SKILL.md describes subnet planning, but config.py class docstring says '小笨羊高考Skill配置' (Gaokao skill config), env_prefix is 'XBY_GAOKAO_', and project structure references 'xiaobenyang_gaokao_skill/'. The skill-card explicitly acknowledges 'leftover references to an unrelated gaokao or school service' as a known risk.

Undeclared network access +20

SKILL.md only declares AskUserQuestion as the tool. No network resource is declared in allowed-tools, yet the implementation silently POSTs subnet/IP parameters to https://mcp.xiaobenyang.com/api with the user's API key in headers.

Undeclared filesystem WRITE +5

config.py:save_api_key_to_env() writes the user-provided API key to a .env file. SKILL.md does not declare filesystem:WRITE permission.

Unpinned dependencies +5

requirements.txt uses '>= ' for all four dependencies, allowing arbitrary version upgrades from PyPI.

Most important evidence

High Doc Mismatch

Skill repurposed from unrelated gaokao/school service

SKILL.md describes an IPv4 subnet calculator, but the code contains clear evidence of being modified from a 'gaokao' (Chinese college entrance exam) service. config.py class docstring is '小笨羊高考Skill配置', env_prefix is 'XBY_GAOKAO_', and SKILL.md's project structure references 'xiaobenyang_gaokao_skill/'. The skill-card.md explicitly acknowledges this as a known risk. The intent and provenance of the skill is unclear.

scripts/config.py:13
Reject deployment until provenance is verified. A legitimate skill should not have a completely different service baked into its configuration.
High Priv Escalation

Undeclared network access to third-party API

SKILL.md declares no network resource access and lists only AskUserQuestion as a tool. However, all five tool functions in tools.py silently call the xiaobenyang.com MCP API, sending the user's API key and potentially sensitive network topology data (IPs, subnets, CIDR prefixes) to https://mcp.xiaobenyang.com. The SKILL.md never mentions this API call or network access.

scripts/call_api.py:64
SKILL.md must declare network:READ or network:WRITE in allowed-tools. Users must be explicitly informed that subnet/IP data is transmitted to xiaobenyang.com.
Medium Credential Theft

API key stored in plaintext on filesystem

User-provided API key is written to .env in plaintext via config.py:save_api_key_to_env(). This file could be committed to version control or read by other processes. The skill-card.md acknowledges this as a known risk ('install only when the provider is trusted').

scripts/config.py:29
Use a secrets manager or OS-level credential storage instead of plaintext .env files.
Medium Supply Chain

All dependencies use unpinned >= versions

requirements.txt specifies 'requests>=2.31.0', 'pydantic>=2.7.0', 'pydantic-settings>=2.2.0', and 'python-dotenv>=1.0.1', allowing arbitrary version upgrades from PyPI.

requirements.txt:1
Pin all dependencies to exact versions (e.g., requests==2.31.0) to prevent supply chain attacks via dependency upgrades.
Low Doc Mismatch

Incorrect project structure reference in SKILL.md

SKILL.md's project structure block references 'xiaobenyang_gaokao_skill/' as the root directory, which is a leftover artifact inconsistent with the subnet calculator branding.

SKILL.md:75
Update to reflect the actual package name.

Declared capability vs actual capability

Network Block
Declared NONE
Inferred READ
SKILL.md declares no network access; call_api.py:64 POSTs to https://mcp.xiaobenyang.com/api
Filesystem Block
Declared NONE
Inferred WRITE
config.py:29 save_api_key_to_env() writes XBY_APIKEY to .env
Shell Pass
Declared NONE
Inferred NONE
No shell command execution found
Environment Pass
Declared NONE
Inferred READ
config.py:37 reads os.getenv('XBY_APIKEY')
Skill Invoke Pass
Declared NONE
Inferred NONE
No recursive skill invocation
Clipboard Pass
Declared NONE
Inferred NONE
No clipboard access
Browser Pass
Declared NONE
Inferred NONE
No browser automation
Database Pass
Declared NONE
Inferred NONE
No database access

Suspicious artifacts and egress

Medium External URL
https://xiaobenyang.com

SKILL.md:19

Medium External URL
https://mcp.xiaobenyang.com

scripts/config.py:19

Medium External URL
https://clawhub.ai/user/alinklab

skill-card.md:7

Medium External URL
https://clawhub.ai/alinklab/subnet-calculator

skill-card.md:27

Dependencies and supply chain

PackageVersionSourceKnown vulnNotes
requests >=2.31.0 pip No Version not pinned
pydantic >=2.7.0 pip No Version not pinned
pydantic-settings >=2.2.0 pip No Version not pinned
python-dotenv >=1.0.1 pip No Version not pinned

File composition

8 files · 520 lines
Python 4 files · 328 linesMarkdown 2 files · 184 linesJSON 1 files · 5 linesText 1 files · 3 lines
Files of concern · 5
SKILL.md Markdown · 143 lines
Incorrect project structure reference in SKILL.md · https://xiaobenyang.com
scripts/call_api.py Python · 115 lines
Undeclared network access to third-party API
scripts/config.py Python · 92 lines
Skill repurposed from unrelated gaokao/school service · API key stored in plaintext on filesystem · https://mcp.xiaobenyang.com
skill-card.md Markdown · 41 lines
https://clawhub.ai/user/alinklab · https://clawhub.ai/alinklab/subnet-calculator
requirements.txt Text · 3 lines
All dependencies use unpinned >= versions
Other files · tools.py · _meta.json · __init__.py

Security positives

No reverse shell, C2, or reverse connection behavior detected
No base64 or other code obfuscation observed
No access to ~/.ssh, ~/.aws, .env (as a source), or other sensitive paths
No eval(), exec(), or dynamic code execution
No cron jobs, startup hooks, or persistence mechanisms
skill-card.md acknowledges the gaokao reference mismatch and API key risk, showing publisher awareness
Network calls are structurally standard HTTP (not DNS-over-HTTPS tunneling or custom protocols)