Low Risk — Risk Score 20/100
Last scan:1 day ago Rescan
20 /100
claw-skill-nest-client
Local Claw Skill Nest client for listing, uploading, installing, and updating skills
Legitimate local skill repository client with minor hardcoded credential fallback and necessary shell execution for archive extraction.
Skill Nameclaw-skill-nest-client
Duration29.5s
Enginepi
Safe to install
Remove the hardcoded default API key fallback and require SKILLHUB_API_KEY to be explicitly set. Consider pinning the unzip dependency or using a pure-JS archive library.

Findings 2 items

Severity Finding Location
Medium
Hardcoded default API key Credential Theft
The script uses a hardcoded fallback API key 'claw-skill-nest-secret-key' if SKILLHUB_API_KEY environment variable is not set. This is a weak default credential that could be exploited in certain scenarios.
const SKILLHUB_API_KEY = process.env.SKILLHUB_API_KEY ?? 'claw-skill-nest-secret-key';
→ Remove the hardcoded fallback and require the API key to be explicitly set via environment variable. Fail with a clear error if not configured.
scripts/manage_local_claw_skill_nest.ts:17
Low
Undeclared shell execution for extraction Priv Escalation
The extractZip() function uses subprocess (spawn) to execute unzip or PowerShell commands for archive extraction. This shell:WRITE capability is not declared in SKILL.md.
await run('unzip', ['-o', archivePath, '-d', targetDir]);
→ Document the shell execution requirement in SKILL.md or consider using a pure-JS archive library like 'adm-zip' to avoid subprocess dependency.
scripts/manage_local_claw_skill_nest.ts:73
ResourceDeclaredInferredStatusEvidence
Filesystem WRITE WRITE ✓ Aligned Uses mkdir, mkdtemp, writeFile, copyFile to install to ~/.openclaw/workspace/ski…
Network READ READ ✓ Aligned GET/POST requests to SKILLHUB_URL for list, upload, download operations
Shell NONE WRITE ✓ Aligned extractZip() uses spawn() for unzip and PowerShell - necessary but undeclared

File Tree

2 files · 8.2 KB · 247 lines
TypeScript 1f · 185L Markdown 1f · 62L
├─ 📁 scripts
│ └─ 📜 manage_local_claw_skill_nest.ts TypeScript 185L · 5.8 KB
└─ 📝 SKILL.md Markdown 62L · 2.4 KB

Security Positives

✓ Documentation accurately describes the skill's functionality
✓ Uses temporary directory for downloaded files before extraction
✓ Properly validates file extensions (.skill, .zip) for upload
✓ No base64 encoding or obfuscation detected
✓ No credential harvesting or data exfiltration behavior
✓ API key is used only for authentication to the configured server
✓ File operations are scoped to skill installation directory
✓ No access to sensitive paths like ~/.ssh, ~/.aws, or .env files