Back to skill

Security audit

Colors CC

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed color and placeholder API guide, with the main caution that it relies on a third-party web service for generated assets.

Install only if you are comfortable with generated pages or agents contacting colors-cc.top. Do not include secrets, private client names, unreleased product names, or sensitive internal labels in placeholder text or query parameters, and consider local/static alternatives for private or offline work.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (22)

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

The skill repeatedly instructs agents to use a third-party API domain for placeholder generation and related color services. Even if the data appears low sensitivity, requests can transmit user-supplied text, dimensions, palette choices, IP/address metadata, and usage context to an external service, creating privacy, tracking, and supply-chain risk.

Content

Scanner excerpt · SKILL.md (reported line 28)May include surrounding context.

md
### 1. SVG Placeholders with Animation Effects
Generate dynamic, lightweight placeholders for UI mockups with various gradient and animation effects.
- **Endpoint**: `https://api.colors-cc.top/placeholder`
- **Params**: 
  - `w`: Width in pixels (default: 800, range: 50-4000)
  - `h`: Height in pixels (default: 400, range: 50-4000)

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

Embedding externally hosted image URLs causes the client or agent environment to contact the third-party service, leaking request metadata and any user-controlled query parameters. The issue is more notable here because the skill encourages direct embedding and broad use across agents, increasing exposure frequency.

Content

Scanner excerpt · SKILL.md (reported line 38)May include surrounding context.

md
- `speed`: Animation duration in seconds for non-static effects (default: 10, range: 1-30)
  - `attribution`: Include branding watermark (default: true). Set to `false` or `0` to disable. When enabled, adds a subtle "colors-cc.top" watermark (15% opacity) in bottom-right corner and HTML comment for viral sharing.
- **Examples**: 
  - **Static**: `<img src="https://api.colors-cc.top/placeholder?w=1200&h=630&text=Hero+Banner&palette=%23F06292,%2364B5F6" alt="Hero">`
  - **Holographic**: `<img src="https://api.colors-cc.top/placeholder?w=800&h=400&effect=holographic&palette=%2300FF41,%2300B8FF&speed=5" alt="Holo">`
  - **Mesh**: `<img src="https://api.colors-cc.top/placeholder?w=800&h=400&effect=mesh&palette=%23FFD6A5,%23FFADAD,%23E2A0FF&speed=8" alt="Mesh">`
- **Response**: SVG image with `Cache-Control: public, max-age=31536000, immutable`

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

This example promotes repeated use of a third-party placeholder endpoint with user-provided text and colors in the URL. That creates an outbound data path and dependency on remote content that could be changed, logged, or used for tracking without the user realizing it.

Content

Scanner excerpt · SKILL.md (reported line 39)May include surrounding context.

md
- `attribution`: Include branding watermark (default: true). Set to `false` or `0` to disable. When enabled, adds a subtle "colors-cc.top" watermark (15% opacity) in bottom-right corner and HTML comment for viral sharing.
- **Examples**: 
  - **Static**: `<img src="https://api.colors-cc.top/placeholder?w=1200&h=630&text=Hero+Banner&palette=%23F06292,%2364B5F6" alt="Hero">`
  - **Holographic**: `<img src="https://api.colors-cc.top/placeholder?w=800&h=400&effect=holographic&palette=%2300FF41,%2300B8FF&speed=5" alt="Holo">`
  - **Mesh**: `<img src="https://api.colors-cc.top/placeholder?w=800&h=400&effect=mesh&palette=%23FFD6A5,%23FFADAD,%23E2A0FF&speed=8" alt="Mesh">`
- **Response**: SVG image with `Cache-Control: public, max-age=31536000, immutable`

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

The remote SVG response is treated as safe renderable content, but it still comes from an untrusted external service and may expose consumers to privacy and supply-chain concerns. In an agent skill, normalizing direct remote embedding makes silent exfiltration and future service-side changes more dangerous.

Content

Scanner excerpt · SKILL.md (reported line 40)May include surrounding context.

md
- **Examples**: 
  - **Static**: `<img src="https://api.colors-cc.top/placeholder?w=1200&h=630&text=Hero+Banner&palette=%23F06292,%2364B5F6" alt="Hero">`
  - **Holographic**: `<img src="https://api.colors-cc.top/placeholder?w=800&h=400&effect=holographic&palette=%2300FF41,%2300B8FF&speed=5" alt="Holo">`
  - **Mesh**: `<img src="https://api.colors-cc.top/placeholder?w=800&h=400&effect=mesh&palette=%23FFD6A5,%23FFADAD,%23E2A0FF&speed=8" alt="Mesh">`
- **Response**: SVG image with `Cache-Control: public, max-age=31536000, immutable`

### 2. Fluid Animated Placeholders (Alias)

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

The fluid-placeholder endpoint is another third-party network dependency that can receive prompt-derived text and style data. Its animated SVG output is low-risk functionally, but still creates external transmission and trust in remote content generation.

Content

Scanner excerpt · SKILL.md (reported line 45)May include surrounding context.

md
### 2. Fluid Animated Placeholders (Alias)
Generate dynamic SVG gradients with smooth color transitions and animations.
- **Endpoint**: `https://api.colors-cc.top/fluid-placeholder`
- **Params**: 
  - `w`, `h`, `text`, `speed`, `attribution` (same as above)
  - `palette`: Comma-separated colors — HEX, RGB, or HSL (default: random, range: 2-10 colors)

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

The example directly embeds an external animated SVG URL, which leaks request metadata and query contents to the third-party host. Because the skill says to use URLs directly rather than process locally, it increases routine outbound transmission.

Content

Scanner excerpt · SKILL.md (reported line 49)May include surrounding context.

md
- **Params**: 
  - `w`, `h`, `text`, `speed`, `attribution` (same as above)
  - `palette`: Comma-separated colors — HEX, RGB, or HSL (default: random, range: 2-10 colors)
- **Example**: `<img src="https://api.colors-cc.top/fluid-placeholder?w=1200&h=400&palette=%23FFD6A5,%23FFADAD,%23E2A0FF&speed=8&text=Animated+Hero" alt="Warm Gradient">`
- **Response**: Animated SVG with smooth color transitions and `Cache-Control: public, max-age=31536000, immutable`

### 3. Random Colors

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

Calling the random endpoint is an external network request to a non-local service. While the returned data is harmless, use of the API still reveals environment metadata and introduces a reliability and supply-chain dependency for a function that could be implemented locally.

Content

Scanner excerpt · SKILL.md (reported line 54)May include surrounding context.

md
### 3. Random Colors
Get a random HEX and RGB color with generation timestamp.
- **Endpoint**: `GET https://api.colors-cc.top/random`
- **Returns**: `{"hex": "#A1B2C3", "rgb": "rgb(161, 178, 195)", "timestamp": "2024-03-12T10:30:00.000Z"}`
- **Example**: Fetch this endpoint when you need random colors for mock data or UI components.

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

The palette endpoint sends theme selections to an external server and conditions agents to fetch remote data for a simple design utility. This is a true outbound transmission issue even if the content itself is low sensitivity.

Content

Scanner excerpt · SKILL.md (reported line 60)May include surrounding context.

md
### 4. Curated Theme Palettes
Fetch high-quality color sets for design inspiration.
- **Endpoint**: `GET https://api.colors-cc.top/palette?theme={theme_name}`
- **Themes**: `cyberpunk`, `vaporwave`, `retro`, `monochrome`
- **Returns**: `{"theme": "cyberpunk", "colors": ["#FCEE09", "#00FF41", ...], "count": 5}`
- **Example**: `fetch('https://api.colors-cc.top/palette?theme=vaporwave')`

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

The explicit fetch example normalizes direct client-side requests to a third-party service. That exposes user IP/request metadata and creates an unnecessary external dependency for static palette data.

Content

Scanner excerpt · SKILL.md (reported line 63)May include surrounding context.

md
- **Endpoint**: `GET https://api.colors-cc.top/palette?theme={theme_name}`
- **Themes**: `cyberpunk`, `vaporwave`, `retro`, `monochrome`
- **Returns**: `{"theme": "cyberpunk", "colors": ["#FCEE09", "#00FF41", ...], "count": 5}`
- **Example**: `fetch('https://api.colors-cc.top/palette?theme=vaporwave')`

### 5. Universal Color Converter
Stateless conversion between HEX, RGB, HSL, and CMYK formats.

External Transmission

Medium
Category
Data Exfiltration
Confidence
98% confidence
Finding

The converter endpoint is more sensitive because it may receive arbitrary user-supplied input values in the query string, which can be logged by intermediaries and the remote service. Even benign color data establishes a pattern of sending prompt-derived content to an untrusted external host.

Content

Scanner excerpt · SKILL.md (reported line 67)May include surrounding context.

md
### 5. Universal Color Converter
Stateless conversion between HEX, RGB, HSL, and CMYK formats.
- **Endpoint**: `GET https://api.colors-cc.top/convert?hex={hex}|rgb={rgb}|hsl={hsl}|cmyk={cmyk}`
- **Params**: Provide ONE of: `hex`, `rgb`, `hsl`, or `cmyk`
- **Returns**: `{"hex": "#FF5733", "rgb": "rgb(255, 87, 51)", "hsl": "hsl(10, 100%, 60%)", "cmyk": "cmyk(0%, 66%, 80%, 0%)"}`
- **Example**: `https://api.colors-cc.top/convert?hex=%23FF5733`

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

This example demonstrates passing user-specified conversion data directly to the third-party API in a URL. Query-string transport is especially prone to logging and retention across clients, proxies, and server access logs.

Content

Scanner excerpt · SKILL.md (reported line 70)May include surrounding context.

md
- **Endpoint**: `GET https://api.colors-cc.top/convert?hex={hex}|rgb={rgb}|hsl={hsl}|cmyk={cmyk}`
- **Params**: Provide ONE of: `hex`, `rgb`, `hsl`, or `cmyk`
- **Returns**: `{"hex": "#FF5733", "rgb": "rgb(255, 87, 51)", "hsl": "hsl(10, 100%, 60%)", "cmyk": "cmyk(0%, 66%, 80%, 0%)"}`
- **Example**: `https://api.colors-cc.top/convert?hex=%23FF5733`
- **Error**: Returns `{"error": "Invalid color format"}` with status 400 if input is invalid

### 6. CSS Color Names Directory

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

The CSS color names directory is an external lookup for static reference data that could be bundled locally. The security concern is mainly unnecessary outbound traffic and dependency on a third-party service, not high-severity data exposure.

Content

Scanner excerpt · SKILL.md (reported line 75)May include surrounding context.

md
### 6. CSS Color Names Directory
Get all standard CSS color names mapped to their HEX values (~140 colors).
- **Endpoint**: `GET https://api.colors-cc.top/all-names`
- **Returns**: `{"AliceBlue": "#F0F8FF", "AntiqueWhite": "#FAEBD7", "Tomato": "#FF6347", ...}`
- **Example**: Use this to look up named colors like 'tomato' → '#FF6347'

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

The landing-page example embeds a third-party placeholder image URL with textual content, causing user/client environments to contact the external service. This may disclose generated page context and request metadata while normalizing remote content in UI output.

Content

Scanner excerpt · SKILL.md (reported line 85)May include surrounding context.

html
<section class="hero">
  <!-- Animated hero banner with text -->
  <img src="https://api.colors-cc.top/placeholder?w=1200&h=600&text=Hero+Section&effect=mesh&palette=%23FFD6A5,%23FFADAD,%23E2A0FF&speed=10" alt="Hero">
</section>
<div class="features">
  <!-- Static placeholder images -->

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

These static placeholder examples still send user-visible content and rendering parameters to an external domain. The context is less dangerous than a credential-handling skill, but the repeated pattern increases privacy and supply-chain exposure.

Content

Scanner excerpt · SKILL.md (reported line 89)May include surrounding context.

Feature 1 Feature 2
```

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

A second direct embed to the same third-party placeholder API repeats the outbound transmission risk. Multiple examples make it more likely integrators will adopt the insecure default broadly.

Content

Scanner excerpt · SKILL.md (reported line 90)May include surrounding context.

Feature 1 Feature 2
```

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

The JavaScript example explicitly fetches palette data from the external service, which is a true network egress path. Although the requested theme is not sensitive, the pattern encourages live dependence on a third-party host during runtime.

Content

Scanner excerpt · SKILL.md (reported line 96)May include surrounding context.

Use Case 2: Generating Mock Data with Colors

javascript
const palette = await fetch('https://api.colors-cc.top/palette?theme=vaporwave')
  .then(r => r.json())

const mockData = palette.colors.map((color, i) => ({

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

This generated thumbnail URL inserts color values into a third-party request and is meant to be created at scale for mock data. Bulk generation magnifies metadata leakage and dependence on externally served image content.

Content

Scanner excerpt · SKILL.md (reported line 103)May include surrounding context.

id: i, name: Item ${i+1}, color: color, thumbnail: https://api.colors-cc.top/placeholder?w=200&h=200&palette=${color.replace('#', '%23')},%23000000 }))

text

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

The random color example performs a direct runtime fetch to the third-party API for trivial functionality. This is a real but moderate vulnerability because it needlessly exposes network metadata and increases attack surface for a feature easily implemented locally.

Content

Scanner excerpt · SKILL.md (reported line 110)May include surrounding context.

Use Case 3: Color Picker Component

javascript
async function getRandomColor() {
  const res = await fetch('https://api.colors-cc.top/random')
  const data = await res.json()
  return data.hex
}

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

The converter example sends a literal HSL string in a URL to an external domain, reinforcing a practice of transmitting user inputs via query parameters. The skill context reduces severity because the data type is usually non-sensitive, but it remains a privacy and logging concern.

Content

Scanner excerpt · SKILL.md (reported line 119)May include surrounding context.

Use Case 4: Universal Color Converter

javascript
// Convert any color format to all formats
const result = await fetch('https://api.colors-cc.top/convert?hsl=hsl(200,50%,50%)')
  .then(r => r.json())
console.log(result.hex) // #4099BF

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

The documentation frames third-party placeholder use as the default and discusses attribution settings, which further operationalizes external embedding. The danger is not the attribution flag itself but the normalization of unvetted remote content and outbound requests.

Content

Scanner excerpt · SKILL.md (reported line 136)May include surrounding context.

By default, all SVG placeholders include a subtle branding watermark for viral sharing. Disable it for internal tools:

text
// With attribution (default - recommended for public-facing content)
https://api.colors-cc.top/placeholder?w=800&h=400

// Without attribution (for internal use)
https://api.colors-cc.top/placeholder?w=800&h=400&attribution=false

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

This line provides another explicit external placeholder URL for direct use. Repeated direct examples increase the chance that agents or developers will embed remote resources without considering data exposure or availability risks.

Content

Scanner excerpt · SKILL.md (reported line 139)May include surrounding context.

https://api.colors-cc.top/placeholder?w=800&h=400

// Without attribution (for internal use) https://api.colors-cc.top/placeholder?w=800&h=400&attribution=false

text

### ❌ Mistake 2: Fetching SVG and Re-processing

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

The skill explicitly recommends using the external placeholder URL directly instead of fetching and processing locally, which entrenches third-party embedding as the preferred behavior. In an agent ecosystem, this increases silent egress and trust in remote content across downstream uses.

Content

Scanner excerpt · SKILL.md (reported line 149)May include surrounding context.

const encoded = btoa(svg)

// GOOD - Use URL directly Direct

text

### ❌ Mistake 3: Invalid Dimensions

Static analysis

No suspicious patterns detected.