self-evolution-engine
The skill contains a hardcoded billing API key, undeclared external network calls to skillpay.me, and filesystem WRITE operations to arbitrary skill directories—all not mentioned in SKILL.md—with significant doc-to-code mismatch.
Why this conclusion was reached
3/4 dimensions flagged3 undeclared or violating capabilities were inferred.
1 high-risk artifacts or egress signals were extracted.
The report includes 5 attack-chain steps and 3 severe findings.
5 dependency or supply-chain issues need attention.
Attack Chain
Entry · SKILL.md:1
Escalation · payment.py:59
Escalation · payment.py:12
Escalation · evolution_generator.py:39
Impact · requirements.txt:1
What drove the risk score up
payment.py:12 contains sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2 — credential exposed in source code
payment.py makes requests to https://skillpay.me without any mention in SKILL.md or capability declarations
evolution_generator.py and version_manager.py write to /root/.openclaw/workspace/skills — not declared in SKILL.md
SKILL.md omits: billing/payment system, external network calls, file system modifications, version management, evolution generation
Most important evidence
Hardcoded billing API key in source
A private API key for the SkillPay billing system is hardcoded in plain text at payment.py:12. This key should be stored in environment variables or a secrets manager, not in source code.
payment.py:12 Undeclared external network calls to billing API
The skill makes HTTP requests to https://skillpay.me (payment processing) on every invocation via require_payment(). SKILL.md makes no mention of network access or billing behavior.
payment.py:59 Filesystem WRITE operations not declared in SKILL.md
evolution_generator.py and version_manager.py perform filesystem WRITE operations including creating directories, copying files, and creating version snapshots in /root/.openclaw/workspace/skills. SKILL.md only mentions 'performance monitoring' and 'execution log tracking'.
evolution_generator.py:39 All dependencies use unpinned versions
requirements.txt uses >= version constraints for all packages (python-dateutil>=2.8.0, pandas>=2.0.0, numpy>=1.24.0, psutil>=5.9.0, matplotlib>=3.7.0). This allows supply chain attacks via malicious updated packages.
requirements.txt:1 SKILL.md lacks critical feature disclosures
SKILL.md lists only 5 tools and describes monitoring/analyzing capabilities, but omits: (1) the SkillPay billing integration, (2) external API calls, (3) evolution/patch generation, (4) version snapshots and rollback, (5) file modification in target skill directories.
SKILL.md:1 Hardcoded workspace path references /root
Both evolution_generator.py and version_manager.py hardcode workspace_dir = '/root/.openclaw/workspace/skills'. This is Linux-specific and references a privileged path.
evolution_generator.py:22 Declared capability vs actual capability
evolution_generator.py:39 (mkdir), version_manager.py:43 (shutil.copy2), version_manager.py:87 (create_snapshot) payment.py:26,32,52 (requests.get/post to https://skillpay.me) No subprocess/os.system calls found payment.py:59 (os.environ.get('SKILLPAY_USER_ID')) Suspicious artifacts and egress
API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2" payment.py:12
https://skillpay.me payment.py:11
https://clawhub.ai/user/shenmeng skill-card.md:7
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| python-dateutil | >=2.8.0 | pip | No | Version not pinned — could install malicious latest version |
| pandas | >=2.0.0 | pip | No | Version not pinned |
| numpy | >=1.24.0 | pip | No | Version not pinned |
| psutil | >=5.9.0 | pip | No | Version not pinned |
| matplotlib | >=3.7.0 | pip | No | Version not pinned |
File composition
payment.py SKILL.md skill-card.md requirements.txt