T09 · Insecure Skill Coding Practices
- Location
scripts/generate-spell-mapping.mjs:1576- Finding
Unrestricted URL Fetching Enables Server-Side Request Forgery
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill generally does what it claims, but it fetches broad arbitrary URLs and documents unpinned installs, so it belongs in Review before use.
Before installing, prefer a pinned audited commit or release instead of the floating npx commands. Use this only with trusted public topics or URLs, avoid localhost, intranet, cloud metadata, or credential-bearing pages, keep --out under spells/, and review the separate spellbook hook before installing it.
scripts/generate-spell-mapping.mjs:1576Unrestricted URL Fetching Enables Server-Side Request Forgery
SKILL.md:65Installation Instructions Use Mutable, Unpinned Remote Dependencies
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).
delete: "Scuttle",
deploy: "Set Sail",
fix: "Patch",
monitor: "Spyglass",
default: "Crew"
},
objects: {
web: "the Horizon",
file: "the Captain's Log",
code: "the Map",
process: "the Cannons",
repo: "the Hold",
task: "the Voyage",
default: "the Voyage"
},
icons: {
default: "🏴☠️",
deploy: "⛵",
monitor: "🔭"
},
suffixes: ["Kraken", "Reef", "Tempest", "Harbor", "Treasure"]
}
},
{
match: /(marvel|dc\b|avengers|x-men|superhero|batman|superman|spider-man|iron\s*man)/i,
profile: {
id: "superhero",
verbs: {
search: "Detect",
read: "Brief",
write: "Draft",
create: "Assemble",
fix: "Stabilize",
debug: "Expose",
deploy: "Launch",
kill: "Neutralize",
default: "Activate"
},
objects: {
web: "the Network",
file: "t
The skill instructs users to run npx skills add ... without pinning a specific package version, which can cause execution of whatever package version is current at install time. If the upstream package or dependency chain is compromised, users may unknowingly execute malicious code during installation or receive altered behavior later.
This line again references npx skills add with an unpinned source, so the install target can change over time and may resolve to a compromised or unexpected package state. Because npx executes fetched code, this creates a supply-chain exposure rather than a merely informational issue.
The installation command uses npx skills add wynnsu/openclaw-spellbook without any version pinning, so consumers will retrieve the latest state of that package/repository at execution time. In a skill that already performs dynamic fetching and writes files, supply-chain compromise would increase the chance of delivering harmful code or instructions through a trusted workflow.
This command points npx skills add at a repo subpath without pinning an immutable revision, leaving the fetched code subject to upstream changes or compromise. Since npx may download and execute code immediately, an attacker controlling the source or its dependencies could gain code execution on the user's system.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
const endpoints = [
"https://wry-manatee-359.convex.site/api/v1/skills",
"https://clawhub.ai/api/v1/skills",
"https://api.clawhub.ai/v1/skills"
];
let lastError = null;
No suspicious patterns detected.