Versioned security assessment

Report ID: SA-EBDFE608

7/23/2026, 5:08:38 PM

payload security assessment v8

Skill Security Certification Report

Audit History
Scanner version 3.0.0 Audit model: codex Latest published report
Skill name
payload
Version
v8
Maintainer
payloadcms
Coverage
12 Files scanned · 6,798 Lines analyzed
Policy version
skillstore-security-audit-policy-v1

Highest confirmed finding severity

High

3 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 static alerts are false positives caused by Markdown syntax, TypeScript examples, local addresses, and standard environment-variable configuration. The IP allowlist example is unsafe because it trusts spoofable forwarding headers and compares CIDR text as a literal value. Semantic review also found empty authentication-secret fallbacks, an access-bypassing preview endpoint, and debugging access functions that always grant permission.

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

12 Files scanned · 6,798 Lines analyzed

4 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 20 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 24 evidence locations

External commands

May invoke commands or programs outside the Skill.

Observed in 50 evidence locations

Capability review items (1)
High
Hardcoded IP address
const internalIps = ['192.168.1.0/24', '10.0.0.5']
The access example trusts forwarding headers and compares them to private IP and CIDR text. Clients can spoof these headers without a trusted proxy, and plain includes matching does not evaluate CIDR ranges.

Risk findings

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

Confirmed security concerns (3)

RISK-001 High
Empty Authentication Secret Fallback
Four configuration examples replace a missing PAYLOAD_SECRET with an empty string. If accepted, this creates a predictable secret and risks authentication compromise.
The empty-string fallback is explicit at all four lines. Payload uses this secret for authentication and cryptographic operations.
RISK-002 High
Preview Endpoint Bypasses Collection Access
The preview endpoint checks only for a user, then performs a dynamic Local API query without access enforcement. Authenticated users may read unauthorized collections.
The handler accepts collection and where values from request data and calls req.payload.find without access enforcement. The skill states that Local API access is bypassed by default.
RISK-003 High
Debug Access Functions Always Grant Permission
Two exported debugging access functions log request metadata and return true unconditionally. Reusing either function as access control grants every request permission.
Both examples end with return true after logging and are presented as Access functions. The debugging label reduces production likelihood but not the impact if reused.

Remediation

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

  1. FIX-001
    High
    Spoofable IP allowlist
    Resolve client addresses through a trusted proxy configuration, reject untrusted forwarding headers, and use a tested CIDR matcher.
  2. FIX-002
    High
    Empty authentication-secret fallback
    Require a non-empty PAYLOAD_SECRET and stop application startup when it is missing or too weak.
  3. FIX-003
    High
    Preview endpoint bypasses collection access
    Allowlist previewable collections and call the Local API with the requesting user and explicit access enforcement.
  4. FIX-004
    High
    Debug access functions grant all requests
    Remove unconditional true returns, delegate to real access rules, and clearly isolate diagnostic logging from production access functions.

Expert evidence

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

Artifact subject

Marketplace commit
ebdfe608f5de2b66ff37ab4af12af8ac4f5e8006
Content hash
050fc66234ef54906e34a1c0f5209ad7558f9adc59a7a0efd4db342f81427e20
Tree hash
852603dbdf2cb38f91c5c9c7ea243c8003ef255147d2faeffe951e7f52d1de3b
Skill path
skills/payloadcms/payload
Audit payload hash
5278817ad0822f5e17facc55e0e997ba

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