Versioned security assessment

Report ID: SA-BAD9DAFC

9/29/2026, 9:41:01 PM

mirrord-kafka security assessment v1

Skill Security Certification Report

Audit History
Scanner version 3.0.0 Audit model: codex Latest published report
Skill name
mirrord-kafka
Version
v2.5
Maintainer
metalbear-co
Coverage
6 Files scanned · 1,165 Lines analyzed
Policy version
skillstore-security-audit-policy-v1

Highest confirmed finding severity

High

4 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.

Most alerts are false positives involving Markdown backticks, TLS property names, or read-only discovery. Four alerts identify credential exposure through command arguments or unencrypted key exports; unfiltered workload inspection adds a separate disclosure risk. No evidence found of malicious exfiltration or prompt injection.

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

6 Files scanned · 1,165 Lines analyzed

5 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.

Not recorded by this audit

Filesystem access

May read or write local files.

Observed in 10 evidence locations

Env variables

May read values from the process environment.

Not recorded by this audit

External commands

May invoke commands or programs outside the Skill.

Observed in 50 evidence locations

Capability review items (1)
Medium
Shell command substitution
--from-literal=keystore.jks.base64="$(base64 < keystore.jks | tr -d '\n')" \
The substitution puts the private keystore into kubectl command arguments through --from-literal. Process inspection or execution logging can capture this credential-bearing data.

Risk findings

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

Confirmed security concerns (4)

RISK-001 High
Certificate/key files
openssl pkcs12 -in keystore.p12 -nocerts -nodes -out client-key.pem
The -nodes option exports an unencrypted private key to client-key.pem without specifying restrictive permissions. This creates an avoidable credential exposure risk.
RISK-002 High
Certificate/key files
openssl pkcs12 -in keystore.p12 -nocerts -nodes -out client-key.pem
The command uses -nodes to write an unencrypted private key without restrictive permission guidance. This unnecessarily exposes sensitive key material on disk.
RISK-003 High
Java keystore files
--from-literal=keystore.jks.base64="$(base64 < keystore.jks | tr -d '\n')" \
The private keystore is expanded into --from-literal, exposing credential-bearing bytes in process arguments. The same example also puts the store password in arguments.
RISK-004 Medium
Unfiltered Workload Inspection Can Expose Inline Secrets
The workflow requests complete deployment YAML to discover container names and environment variables. Inline passwords or tokens can enter agent context without filtering or redaction.
The command explicitly requests full YAML, including literal environment values. Exposure depends on workload contents, but no output filtering is specified.

Remediation

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

  1. FIX-001
    High
    The keystore Secret example passes private-key material and passwords through command arguments, contradicting the main security guidance.
    Prepare base64 text and passwords in owner-only temporary files, use --from-file with explicit Secret keys, and delete temporary copies afterward.
  2. FIX-002
    High
    Both legacy conversion examples use -nodes to write an unencrypted private key without specifying protective file permissions.
    Prefer encrypted PEM output. When unencrypted output is required, use a private temporary directory, umask 077, and prompt cleanup after Secret creation.
  3. FIX-003
    Medium
    Automatic discovery retrieves complete workload YAML, which can include inline credentials unrelated to Kafka configuration.
    Confirm the target context and namespace, retrieve only required fields, and redact sensitive values before returning output to the agent.

Expert evidence

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

Artifact subject

Marketplace commit
bad9dafc37d1638cd29cb9bab06d5f8dbcd0f6c2
Content hash
27c31cf0908fc121ae7752824a692b2a6bb30d70a113bbb42ee3dffe73f2de8c
Tree hash
2310e96d2d6f454c2dd4ac3baccd964964a4a1e7b8661dedad5bf933b57a589d
Skill path
skills/metalbear-co/mirrord-kafka
Audit payload hash
7dbfe83c52a4cd0c05dfea5f1b87bd55

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