Back to skill

Security audit

Kanban Workflow

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Kanban workflow helper that uses existing project-management CLI logins to read and update scoped work items, with live external changes users should understand before enabling.

Install only where the configured PM CLI account has the level of project access you intend. Expect commands such as start, update, ask, complete, and create to make real comments, labels/state changes, or new tasks in the configured system. Avoid enabling periodic progress updates or any future auto-reopen automation unless the cadence, visibility, and stop conditions are acceptable for your team, and update the flagged development dependencies before running tests or CI.

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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (29)

Known Vulnerable Dependency: vitest==2.1.9 — 2 advisory(ies): CVE-2026-47429 (When Vitest UI server is listening, arbitrary file can be read and executed); CVE-2026-84373 (Vitest: Path Traversal / Arbitrary File Read via @vitest/mocker Redirect Mock)

Critical
Category
Supply Chain
Confidence
90% confidence
Finding

Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: vitest==2.1.9 — 2 advisory(ies): CVE-2026-47429 (When Vitest UI server is listening, arbitrary file can be read and executed); CVE-2026-84373 (Vitest: Path Traversal / Arbitrary File Read via @vitest/mocker Redirect Mock)

Critical
Category
Supply Chain
Confidence
97% confidence
Finding

The manifest includes vitest 2.1.9, which is reported as affected by critical advisories involving arbitrary file read and possible code execution/path traversal in Vitest-related server and mocking features. In this skill, vitest appears only as a devDependency, so the danger is mainly during local development or CI test execution rather than normal runtime use, but it can still expose developer workstations or CI runners if the vulnerable features are enabled.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The code is consistent with part of the declared description in that it is a TypeScript PM-platform adapter using CLI-based access only, specifically for Planka. However, the implementation materially underdelivers relative to the declared workflow verbs: setStage, addComment, and createInBacklogAndAssignToSelf are explicitly unimplemented, and comment/attachment/link listing are stubbed empty. The primary behavior of this chunk is read-only snapshot ingestion and stage mapping rather than the fuller workflow action surface suggested by the description. There is no evidence of undeclared external access beyond CLI usage, but there is a meaningful description-versus-behavior mismatch because core declared verbs are not actually implemented in this supplied code chunk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared description describes a substantial Kanban workflow skill with PM integrations and operational commands. The actual code chunk contains only test runner configuration for Vitest, specifying the Node environment and test file inclusion pattern. This is not merely a supporting implementation detail for the declared behavior; on its own, the chunk does not implement or expose any of the described workflow capabilities. Therefore, the supplied code does not accurately represent the declared purpose.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `github.ts` (gh CLI)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `src/cli.ts` (provides `kanban-workflow <verb>`; see README for setup flags)

Known Vulnerable Dependency: nanoid==3.3.11 — 3 advisory(ies): CVE-2026-67214 (nanoid: non-secure generators can loop indefinitely with negative size); CVE-2026-67213 (nanoid: custom generators can loop indefinitely when size is zero); CVE-2026-73086 (nanoid: Integer Overflow or Wraparound)

High
Category
Supply Chain
Confidence
80% confidence
Finding

Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: postcss==8.5.6 — 4 advisory(ies): CVE-2026-45623 (PostCSS: Arbitrary file read and information disclosure via attacker-controlled ); CVE-2026-69153 (PostCSS: incomplete fix of GHSA-6g55-p6wh-862q — attacker-controlled sourceMappi); CVE-2026-41305 (PostCSS has XSS via Unescaped </style> in its CSS Stringify Output) +1 more

High
Category
Supply Chain
Confidence
80% confidence
Finding

Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: vite==5.4.21 — 3 advisory(ies): CVE-2026-39365 (Vite Vulnerable to Path Traversal in Optimized Deps `.map` Handling); CVE-2026-53571 (vite: `server.fs.deny` bypass on Windows alternate paths); CVE-2026-53632 (launch-editor: NTLMv2 hash disclosure via UNC path handling on Windows)

High
Category
Supply Chain
Confidence
80% confidence
Finding

Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Content

No source excerpt is available for this finding.

Memory Manipulation

High
Category
Memory Poisoning
Confidence
80% confidence
Finding

Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Content

Scanner excerpt · src/automation/progress_updates.ts (reported line 39)May include surrounding context.

ts
// Stop tracking work items that are no longer in progress.
  for (const id of Object.keys(state.lastAutoCommentAt)) {
    if (!inProgressSet.has(id)) delete state.lastAutoCommentAt[id];
  }

  const postedIds: string[] = [];

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · tests/setup.test.ts (reported line 34)May include surrounding context.

ts
}

describe('setup', () => {
  it('requires --force to overwrite existing config', async () => {
    const fs = createMemoryFs({ 'config/kanban-workflow.json': '{"x":1}' });
    const validate = vi.fn(async () => undefined);

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The markdown explicitly states that the skill can post an automatic comment every 5 minutes while work is in progress. This is a user-data/system-impacting behavior, but the description does not include any warning about external posting, visibility to other users, or the need to opt in before enabling it.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The requirement mandates unattended write actions every 5 minutes while a task is in progress, but does not require explicit user opt-in, visibility, rate limits, or a clear stop/control mechanism beyond stage transitions. That creates a real safety issue because the agent can continuously modify external PM systems, generate noise or spam, and potentially leak transient work details into comments without the operator realizing persistent automated writes are occurring.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The auto-reopen rule silently changes task state on human comment for blocked or in-review items, with no user warning or approval. Silent state mutation is dangerous because routine comments can trigger workflow changes unexpectedly, causing task churn, bypassing reviewer intent, and creating integrity issues in project tracking that may be hard to attribute or detect.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This code executes CLI subprocesses to update issue state, add comments, create issues, and assign them to the current user. Although these actions are the adapter's core function, the file provides no user-facing confirmation, logging, or warning comments/docstrings around these state-changing operations, so users invoking the skill may not be explicitly informed that remote project data will be modified.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The show() verb explicitly requests comments with includeInternal: true and returns them in the response payload without any access-control check, redaction, or user-facing indication that internal/private comments are being exposed. In an agent skill context, this can leak sensitive staff-only discussion, triage notes, credentials, or security details to downstream consumers of the verb output.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The skill documents a setup step that writes config/kanban-workflow.json into the repository without warning the user that local files will be modified. In agentic environments, undisclosed file writes can surprise operators, alter repository state, and be chained with automation or commits, making the behavior more dangerous than an ordinary local CLI setup step.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: @vitest/mocker==2.1.9 — 1 advisory(ies): CVE-2026-84373 (Vitest: Path Traversal / Arbitrary File Read via @vitest/mocker Redirect Mock)

Low
Category
Supply Chain
Confidence
60% confidence
Finding

Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: esbuild==0.21.5 — 1 advisory(ies): GHSA-67mh-4wv8-2f99 (esbuild enables any website to send any requests to the development server and r)

Low
Category
Supply Chain
Confidence
60% confidence
Finding

Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: esbuild==0.27.3 — 1 advisory(ies): GHSA-g7r4-m6w7-qqqr (esbuild allows arbitrary file read when running the development server on Window)

Low
Category
Supply Chain
Confidence
60% confidence
Finding

Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Content

Scanner excerpt · package.json (reported line 12)May include surrounding context.

json
"kanban-workflow": "tsx src/cli.ts"
  },
  "dependencies": {
    "execa": "^9.6.0",
    "zod": "^4.3.6"
  },
  "devDependencies": {

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Content

Scanner excerpt · package.json (reported line 13)May include surrounding context.

json
},
  "dependencies": {
    "execa": "^9.6.0",
    "zod": "^4.3.6"
  },
  "devDependencies": {
    "@types/node": "^22.13.5",

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Content

Scanner excerpt · package.json (reported line 16)May include surrounding context.

json
"zod": "^4.3.6"
  },
  "devDependencies": {
    "@types/node": "^22.13.5",
    "tsx": "^4.19.2",
    "typescript": "^5.8.2",
    "vitest": "^2.1.9"

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Content

Scanner excerpt · package.json (reported line 17)May include surrounding context.

json
},
  "devDependencies": {
    "@types/node": "^22.13.5",
    "tsx": "^4.19.2",
    "typescript": "^5.8.2",
    "vitest": "^2.1.9"
  }

Static analysis

No suspicious patterns detected.