Back to skill

Security audit

paintforge

Security checks for vulnerabilities and agentic risk

Overview

PaintForge is a coherent diagram-generation skill with disclosed local rendering, optional preview/browser checks, and bounded optional brand/repository lookups.

Install only if you want a local diagram-rendering tool that can create and replace chosen HTML outputs. Be aware that optional brand capture fetches a user-supplied HTTP(S) URL, repository evidence reads a specified local Git checkout, preview starts a loopback server, and visual-check may launch Chrome and write screenshot sidecars.

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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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 (127)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
2. Read one matching schema in `schemas/`, `schemas/common.schema.json`, and one matching JSON example in `examples/`. Read only those files. Fresh authorship m

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ting workflow's fixed geometry. When real product identity matters, query `node bin/paintforge.mjs brands "<name>" --json`; read `references/brand-marks.md` onl

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ting workflow's fixed geometry. When real product identity matters, query `node bin/paintforge.mjs brands "<name>" --json`; read `references/brand-marks.md` onl

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ting workflow's fixed geometry. When real product identity matters, query `node bin/paintforge.mjs brands "<name>" --json`; read `references/brand-marks.md` onl

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ting workflow's fixed geometry. When real product identity matters, query `node bin/paintforge.mjs brands "<name>" --json`; read `references/brand-marks.md` onl

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ting workflow's fixed geometry. When real product identity matters, query `node bin/paintforge.mjs brands "<name>" --json`; read `references/brand-marks.md` onl

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ting workflow's fixed geometry. When real product identity matters, query `node bin/paintforge.mjs brands "<name>" --json`; read `references/brand-marks.md` onl

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ting workflow's fixed geometry. When real product identity matters, query `node bin/paintforge.mjs brands "<name>" --json`; read `references/brand-marks.md` onl

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ting workflow's fixed geometry. When real product identity matters, query `node bin/paintforge.mjs brands "<name>" --json`; read `references/brand-marks.md` onl

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ting workflow's fixed geometry. When real product identity matters, query `node bin/paintforge.mjs brands "<name>" --json`; read `references/brand-marks.md` onl

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ting workflow's fixed geometry. When real product identity matters, query `node bin/paintforge.mjs brands "<name>" --json`; read `references/brand-marks.md` onl

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
identity matters, query `node bin/paintforge.mjs brands "<name>" --json`; read `references/brand-marks.md` only for an unknown brand with a user-provided URL.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Do not read `renderers/shared/geometry.mjs`, renderer source, validator source, tests, or benchmarks before the first candidate. Inspect implementation only for

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
contract is in [`renderers/workflow/README.md`](renderers/workflow/README.md#layout-contracts).

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ng>` fall back to English. The renderer never translates authored content. See `references/authoring-contract.md` for details.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ng>` fall back to English. The renderer never translates authored content. See `references/authoring-contract.md` for details.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
readable measurements and screenshots do not approve perceptual polish. Follow `references/delivery-contract.md` for the canonical receipt fields, coverage, sid

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
readable measurements and screenshots do not approve perceptual polish. Follow `references/delivery-contract.md` for the canonical receipt fields, coverage, sid

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
readable measurements and screenshots do not approve perceptual polish. Follow `references/delivery-contract.md` for the canonical receipt fields, coverage, sid

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Read `references/viewer-runtime.md` only when the user explicitly asks for Share Cards, Route/Reach cards, motion, guided stories, deep links, presentation, sea

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
When shell access is unavailable, hand-place architecture SVG into `assets/template.html`, use CSS semantic classes rather than inline colors, and follow the vi

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · assets/template.html (reported line 5230)May include surrounding context.

html
<text x="300" y="595" class="t-muted" font-size="9" text-anchor="middle">More info</text>
        <text x="300" y="615" class="t-frontend" font-size="8" text-anchor="middle">domain.example.com</text>

        <!-- =================================================================
             ARROW EXAMPLES (use .a-* classes and stroke-width on the line)
             ================================================================= -->

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · assets/template.html (reported line 4978)May include surrounding context.

html
</style>
</head>
<body>
  <!-- Toolbar: theme, live visual style, trace motion, presentation stage, and export.
       Motion appears only for trace-enabled artifacts and has no shortcut;
       Keyboard: T toggles theme, S cycles style, F toggles the stage, E opens export. -->
  <div class="toolbar" role="toolbar" aria-label="Diagram actions">

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · examples/dataflow-product-analytics.html (reported line 4978)May include surrounding context.

html
</style>
</head>
<body>
  <!-- Toolbar: theme, live visual style, trace motion, presentation stage, and export.
       Motion appears only for trace-enabled artifacts and has no shortcut;
       Keyboard: T toggles theme, S cycles style, F toggles the stage, E opens export. -->
  <div class="toolbar" role="toolbar" aria-label="Diagram actions">

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · examples/dependency-web-app-rendered.html (reported line 4978)May include surrounding context.

html
</style>
</head>
<body>
  <!-- Toolbar: theme, live visual style, trace motion, presentation stage, and export.
       Motion appears only for trace-enabled artifacts and has no shortcut;
       Keyboard: T toggles theme, S cycles style, F toggles the stage, E opens export. -->
  <div class="toolbar" role="toolbar" aria-label="Diagram actions">

Static analysis

Detected: suspicious.dangerous_exec

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
bin/open-artifact.mjs:45

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
bin/paintforge.mjs:67

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
bin/preview.mjs:514

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/render-examples.mjs:32