T08 · Insecure Dependencies
- Location
prompts/Industrial.md:167- Finding
Unpinned Third-Party Carbon-Fiber Texture
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a frontend design prompt library that reads local style guides; it has some broad styling and third-party asset recommendations but no hidden persistence or data-stealing behavior.
Install only if you want a broad frontend design-style prompt library. Review generated code before deploying, especially any Google Fonts imports, remote texture URLs, animation libraries, forced dark/light themes, uppercase text, or motion-heavy effects; replace external assets with local or approved resources for privacy-sensitive sites.
prompts/Industrial.md:167Unpinned Third-Party Carbon-Fiber Texture
prompts/Web3.md:149Unpinned Third-Party Cube Texture
There is a material mismatch between the broad declared purpose and the actual code behavior. The description promises a skill for building or improving frontend interfaces and selecting an appropriate design style prompt. However, the provided shell script merely inspects a local prompts directory, counts .md files, and prints their names plus a usage example. That is a supporting utility for discovering available styles, not the core functionality described. It accesses only local prompt files and performs no frontend generation, styling, framework integration, or prompt selection beyond listing filenames.
The declared description says this skill should be used proactively for frontend/UI creation and styling work and that it retrieves appropriate design-system prompts to produce frontend code. The supplied code does not implement frontend generation, UI styling assistance, or prompt retrieval for user-facing design tasks. Instead, it is a maintenance/verification shell script for checking whether the skill is correctly configured on disk. That is a materially different primary purpose, so this is a clear description-behavior mismatch.
The activation criteria are extremely broad, causing this skill to trigger on almost any frontend-related request. In an agent environment, overbroad auto-invocation can override more specific skills, pull in unnecessary prompt context, and increase the chance of instruction collision or unintended behavior across many normal user requests.
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
<!-- components/HeroSection.vue -->
<!-- Using Neo-brutalism.md design system -->
<template>
The 'automatically invoked' conditions are ambiguous and insufficiently constrained, which can make the agent invoke this skill in contexts where design-style guidance is irrelevant or conflicting. That increases prompt-scope sprawl and can degrade safety by making routing less predictable, especially in multi-skill systems where broad triggers can hijack workflow selection.
The prompt states the palette is 'strictly light mode,' which imposes a display/locale-style preference on all outputs. Because the file does not present this as optional or user-selectable, it can violate policy against forcing a specific presentation preference without opt-in.
The prompt makes uppercase treatment mandatory for headings, buttons, and labels without allowing user preference, language context, or accessibility exceptions. While not a code-execution or data-security issue, this is a genuine accessibility and safety-of-output problem because it can degrade readability, pronunciation, localization quality, and assistive-technology usability across generated interfaces.
The instruction "Mode: Light (Permanent - no dark mode)" imposes a specific UI mode as a hard requirement. This is a natural-language policy concern because it forces a presentation preference without user opt-in or a documented region/compliance justification.
The prompt explicitly mandates marquee scrolling, blinking, pulsing, and rainbow animations as required style elements, which can produce motion-heavy or distracting UI without first warning the user or making reduced-motion behavior the default. Although the file later mentions prefers-reduced-motion, the skill still strongly pushes sensory-intensive patterns and may cause the agent to generate inaccessible interfaces for motion-sensitive users unless the user actively objects.
The prompt requires exclusively handwritten or marker-style fonts for all headings and body text, which can reduce readability, legibility, and accessibility for users with dyslexia, low vision, cognitive disabilities, or users expecting conventional UI typography. Because this is framed as a hard requirement rather than a stylistic preference with accessibility checks or user opt-in, the skill can systematically generate inaccessible interfaces across many outputs.
The design-system instructions explicitly require 'Dark Mode Only' and state that high contrast is non-negotiable, which forces a particular presentation choice rather than offering the user a choice. Under the policy rule for natural-language constraints, this is a style/locale-like mandate without opt-in or a clearly documented region/compliance justification.
The prompt hard-codes a single 'Dark Mode Only' Bitcoin/DeFi visual system and repeatedly frames it as mandatory, which can override user preferences, brand requirements, accessibility needs, or platform theming constraints. In a frontend design skill, this is risky because the model may confidently impose an unsuitable aesthetic rather than first confirming whether the user actually wants that style or needs light-mode/accessibility alternatives.
The prompt hard-codes use of the Google-hosted 'Outfit' font and explicitly specifies its import source without offering an opt-in or a self-hosted/privacy-preserving alternative. This can cause unnecessary third-party network requests, exposing user IP address, user agent, referrer, and page access metadata to the font provider, which is a real privacy issue even though it is not an exploit-oriented security flaw.
The instructions prescribe a single font family, 'Outfit', as mandatory design guidance. This can create a language/locale policy issue because a fixed typeface may not be appropriate for all scripts or regional typography needs, and the file does not offer user choice or note any locale constraints.
The prompt prescribes "Playfair Display" and "Inter" as the only fonts to use, and later reinforces this as a strict requirement. This can violate language/locale flexibility expectations because these Latin-centric typography choices may not be appropriate for all scripts or locales, and the file does not offer any user choice or documented regional justification.
The prompt specifies "Font Family: Roboto (Google Fonts) - The canonical Material Design typeface" as a fixed requirement. This imposes a specific language/script presentation choice without offering user opt-in or alternatives, which can conflict with locale/language policy expectations for multilingual contexts.
The motion section states "NO translate/lift effects — too trendy for this timeless aesthetic" at L417, but earlier button guidance explicitly prescribes a subtle lift on hover with -translate-y-0.5 at L285 and later accessibility guidance again allows subtle shifts at L521. This is an internal intent/documentation contradiction about whether translate-based motion is part of the design system.
The instruction mandates uppercase for almost all headings and labels as a fixed stylistic rule. This imposes a specific language presentation convention without offering user choice or noting exceptions for locale, accessibility, or content needs, which fits the policy concern around forced language/locale behavior in natural-language instructions.
The design system explicitly states "Dark Mode Only," which imposes a fixed presentation mode rather than offering the user a choice or opt-in. Under the policy criteria, forcing a specific mode/locale-style preference in natural-language instructions can be a policy concern when no alternative is provided.
Detected: suspicious.prompt_injection_instructions