T09 · Insecure Skill Coding Practices
- Location
scripts/design.mjs:1864- Finding
Unrestricted URL Fetch Enables Server-Side Request Forgery
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a local UI design helper with disclosed project-file writes; the main caution is an optional URL extractor that can fetch arbitrary URLs.
Install only if you want a local-first UI design workflow that writes DESIGN.md and .vibe-ui files into your project. Avoid running extract-url on untrusted, internal, localhost, metadata-service, or redirected URLs, and review any optional npx lint command before allowing package execution.
scripts/design.mjs:1864Unrestricted URL Fetch Enables Server-Side Request Forgery
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Referenced artifact was not completely inspected
node scripts/design.mjs list [--source built-in|open-design|all]
Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.
"name": "Doubao-inspired AI product",
"sourceId": "claude",
"region": "china",
"description": "Chinese AI assistant product style with warm approachable surfaces, clear conversation/product explanation space, and friendly action hierarchy.",
"categories": [
"china",
"ai",
The instruction "Don't reduce the negative letter-spacing on display sizes 'for accessibility'" directly rejects accessibility-driven adaptation in natural language. This creates a policy concern because it discourages accommodating user readability needs in favor of brand consistency.
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).
e": {
"repo": "nexu-io/open-design",
"url": "https://github.com/nexu-io/open-design",
"branch": "main",
"commit": "18169ee52ac6f24eef277dba345a9f3a0e4e1b36",
"designTemplatesPath": "design-templates",
"license": "Apache-2.0"
},
"templates": [
{
"id": "audio-jingle",
"namespacedId": "open-design-template:audio-jingle",
"name": "audio-jingle",
"description": "Audio generation skill — jingles, beds, voiceover, and sound effects. Routes music requests to Suno V5 / Udio / Lyria, speech to MiniMax TTS / FishAudio / ElevenLabs V3, and SFX to ElevenLabs SFX or AudioCraft. Output is one MP3/WAV file saved to the project folder.",
"sourcePath": "design-templates/audio-jingle",
"source": "open-design",
"repo": "nexu-io/open-design",
"commit": "18169ee52ac6f24eef277dba345a9f3a0e4e1b36",
"kind": "document",
"pageType": "docs",
"tags": [
"voice",
"sfx",
"audio",
"speech
The presence of templates for harvesting, summarizing, or rendering live data from external services and social platforms creates a capability mismatch with the declared UI-style purpose. If invoked through broad matching, the agent could access or process authenticated or live external data under the guise of a design skill, increasing the risk of overreach and data exposure.