Versioned security assessment

Report ID: SA-BAD9DAFC

9/28/2026, 4:21:56 PM

bmad-ticket security assessment v1

Skill Security Certification Report

Audit History
Scanner version 3.0.0 Audit model: codex Latest published report
Skill name
bmad-ticket
Version
v1
Maintainer
bmad-code-org
Coverage
26 Files scanned · 4,014 Lines analyzed
Policy version
skillstore-security-audit-policy-v1

Highest confirmed finding severity

High

2 confirmed security findings require attention.

Installation context

Check the current Skill page

This page summarizes report evidence only. The Skill page provides the canonical install advisory.

Open current Skill page

This report does not block or authorize the manifest or ZIP.

The 400 supplied static matches are false positives involving documentation, configuration keys, test fixtures, and ordinary Python syntax. Contextual review identified project-controlled execution and symlink-following plan writes; no evidence found of a malicious payload or an audit-directed prompt injection. Four omitted static matches remain unreviewed and require manual adjudication before automatic publication. Static review was capped at 400/404 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

Report position

Latest published report

Latest refers to the report sequence, not to artifact currentness.

Audit attestation

Active attestation

A public attestation is available for this exact report.

Human verification

Not verified

No human verification is recorded for this report.

Coverage

26 Files scanned · 4,014 Lines analyzed

2 items shown for review

Limitations

This report does not claim runtime or sandbox execution and does not prove the absence of side effects.

Evidence chain

Follow the evidence from source binding to the install contract. Available evidence supports verification; it is not a safety guarantee.

  1. Source

    Commit and path bound

  2. Artifact

    Content and tree hashes bound

  3. Audit

    Complete

  4. Install contract

    Open manifest to verify

    Open manifest

Capabilities observed

Observed means this report recorded supporting evidence. Not recorded does not prove that a capability is absent.

Contains scripts

May execute code included with the Skill.

Not recorded by this audit

Network access

May connect to external services.

Observed in 7 evidence locations

Filesystem access

May read or write local files.

Observed in 9 evidence locations

Env variables

May read values from the process environment.

Observed in 2 evidence locations

External commands

May invoke commands or programs outside the Skill.

Observed in 50 evidence locations

Risk findings

Confirmed security concerns are separated from items that still need review.

Confirmed security concerns (2)

RISK-001 High
Project-Controlled Execution During Configuration Loading
Configuration resolution executes project-local Python with exec_module, even for status queries without an explicit folder. Activation also runs customization hooks without an explicit trust check. An untrusted checkout can therefore execute code or supply operational instructions under the agent's permissions.
The call chain directly executes a module selected from the project and instructs the agent to run configurable hooks. Exploitation requires attacker-controlled project content; no malicious hook or module payload was found in this package.
RISK-002 Medium
Plan Updates Can Follow Symlinks Outside the Ticket Tree
The loader accepts symlinked Markdown plans, and mark opens existing plans for writing without checking their resolved destination. A crafted tree can redirect an approved status update into an external writable file with matching plan frontmatter.
Path.read_text and the existing-plan wb open follow symlinks, and neither path has a containment or no-follow check. Exploitation requires a crafted symlink and a readable, writable target that parses as the ticket's plan.

Remediation

Suggested fixes recorded by this audit. Applying them is the maintainer’s responsibility.

  1. FIX-001
    High
    Configuration resolution executes project-local Python, and activation follows project-controlled workflow hooks.
    Load configuration through trusted installed code and require explicit project trust before executing hooks or project scripts.
  2. FIX-002
    Medium
    Static review capped
    Manually review the omitted 4 static analyzer matches or reduce bundled generated/vendor/reference content before enabling automatic publication.
  3. FIX-003
    Medium
    Existing plan writes follow symlinks and can modify files outside the selected ticket tree.
    Reject symlinked plan files and directories, enforce containment within the approved ticket root, and use no-follow file opens.
  4. FIX-004
    Low
    Tracker publication sends ticket content to the configured service.
    Keep publication approval, preview destination and body, exclude secrets, and scope credentials to the selected project.

Expert evidence

Immutable subject identity, scanner metadata, dismissed matches, and source-level evidence.

Artifact subject

Marketplace commit
bad9dafc37d1638cd29cb9bab06d5f8dbcd0f6c2
Content hash
4c297c1d378255b9d7866d8de6653d433dbe8843d30c601606203574f7279299
Tree hash
6d9182e1f5819a434d17b635016db408042a9852f741b8a2a02fcf3bfd5fe288
Skill path
skills/bmad-code-org/bmad-ticket
Audit payload hash
5229dd58a7c80bdde6f088477567b2ae

Analysis metadata

Audit model: codex

Analysis state: Complete

Scope is limited to the recorded files, lines, methods, and evidence. No runtime or sandbox execution is claimed.

Verify and export

The manifest and lockfile bind install artifacts to cryptographic hashes. This integrity claim is separate from the security assessment.

Audit attestation: active