file-transfer-thru-local-workspace
Skill provides legitimate file transfer functionality but exhibits undisclosed credential harvesting behavior and hardcoded path vulnerability that exposes sensitive configuration data.
Both install.sh and upload-server.js read ~/.openclaw/openclaw.json to extract authentication tokens. This credential harvesting is not declared in SKILL.md or documented as a capability.
install.sh:44 Why this conclusion was reached
2/4 dimensions flagged4 undeclared or violating capabilities were inferred.
1 lower-risk artifacts were extracted and still need context.
The report includes 0 attack-chain steps and 2 severe findings.
Dependency information is incomplete, so supply-chain confidence stays limited.
What drove the risk score up
install.sh and upload-server.js read ~/.openclaw/openclaw.json to extract tokens - this is not declared in SKILL.md or package.json permissions
upload-server.js line 31: hardcodes '/home/admin/.openclaw/' path, bypassing HOME env and potentially reading wrong user's config
install.sh passes GATEWAY_AUTH_VALUE as env var to node process, visible in process listing (ps eww)
Can enumerate and download all installed skills, potentially exposing API keys stored in other skills' configs
Most important evidence
Undeclared credential file access
Both install.sh and upload-server.js read ~/.openclaw/openclaw.json to extract authentication tokens. This credential harvesting is not declared in SKILL.md or documented as a capability.
install.sh:44 Hardcoded user path creates information disclosure
upload-server.js has a hardcoded path '/home/admin/.openclaw/' that bypasses the HOME environment variable. This can cause the skill to read the wrong user's configuration file if HOME is unset or different.
src/upload-server.js:31 Skill download exposes other skills' secrets
The skill can enumerate and package all installed skill packages. Many skills contain API keys or credentials in their configs. Downloading all skills provides a credential aggregation attack vector.
src/upload-server.js:200 Permissions mismatch between declared and actual
package.json declares 'filesystem: [write:workspace, read:skills]' but the skill actually reads openclaw.json (credential file) which is outside declared scope.
package.json:26 Declared capability vs actual capability
install.sh:44-45 reads openclaw.json, upload-server.js:31 has hardcoded /home/admin path upload-server.js:200 uses spawn('zip') for skill packaging Server binds to 0.0.0.0:15170 serving files to any client install.sh extracts HOME, reads openclaw.json, passes GATEWAY_AUTH_VALUE Suspicious artifacts and egress
http://127.0.0.1:15170/ SKILL.md:228
Dependencies and supply chain
There are no structured dependency warnings.
File composition
src/upload-server.js SKILL.md install.sh package.json