Versioned security assessment

Report ID: SA-64CA8AF0

7/8/2026, 12:46:15 PM

nodejs-backend-patterns security assessment v7

Skill Security Certification Report

Audit History
Audit model: codex Historical report
Skill name
nodejs-backend-patterns
Version
v7
Maintainer
wshobson
Coverage
1 Files scanned · 1,021 Lines analyzed
Policy version
Unavailable

Highest confirmed finding severity

High

3 confirmed security findings require attention.

Installation context

Historical evidence

This report may not describe the currently installable artifact. Open the current Skill page for install guidance.

Open current Skill page

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

Most static findings are false positives caused by Markdown code fences, TypeScript imports, and normal environment configuration examples. One static network finding is confirmed because the Fastify example binds to all interfaces, and semantic review found unsafe dynamic SQL, permissive CORS, and unbounded Redis key deletion guidance.

Report position

Historical report

Open audit history before using this report to install.

Audit attestation

Not attestable

The required immutable binding is incomplete.

Human verification

Not verified

No human verification is recorded for this report.

Coverage

1 Files scanned · 1,021 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

    Binding unavailable

  2. Artifact

    Identity incomplete

  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.

Observed in 1 evidence location

Network access

May connect to external services.

Observed in 5 evidence locations

Filesystem access

May read or write local files.

Observed in 11 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 47 evidence locations

Capability review items (1)
Medium
Hardcoded IP address
await fastify.listen({ port: 3000, host: '0.0.0.0' });
The Fastify example binds to 0.0.0.0, which exposes the listener on all network interfaces when copied directly. This can be valid in containers, but the guidance lacks a local-development warning or environment gate.

Risk findings

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

Confirmed security concerns (3)

RISK-001 High
Unsafe Dynamic SQL Column Interpolation
The update flow accepts request body updates and converts their keys into a SQL SET clause without an allowlist. A malicious field name could alter the generated SQL if this pattern is copied into production.
The data flow is visible from req.body updates to Object.keys(updates) and direct interpolation into SET ${setClause}. Parameter binding protects values, but not interpolated column identifiers.
RISK-002 Medium
Permissive CORS Example
The Fastify setup registers CORS with origin true, which can allow arbitrary origins. Authenticated APIs should restrict origins to an explicit allowlist.
The permissive origin setting is explicit. It may be acceptable for limited public APIs, but it is unsafe as broad backend guidance.
RISK-003 Medium
Unbounded Redis Key Pattern Deletion
The cache service accepts a pattern, calls Redis KEYS, and deletes every matching key. This can cause latency spikes or broad cache deletion if the pattern is influenced by untrusted input.
The method directly uses a caller-supplied pattern with KEYS and bulk deletion. The risk depends on call sites, which are not shown in the skill.

Remediation

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

  1. FIX-001
    High
    Dynamic SQL update builder uses request body keys as column names.
    Allowlist writable fields and map them to fixed column names before building the SET clause.
  2. FIX-002
    Medium
    Fastify CORS example allows arbitrary origins.
    Use an explicit allowed-origin list from configuration and document safe production defaults.
  3. FIX-003
    Medium
    Cache invalidation uses Redis KEYS and deletes every matched key.
    Use SCAN with prefix scoping, validate patterns, and keep broad invalidation internal only.
  4. FIX-004
    Medium
    Fastify listen example binds to all interfaces.
    Default local examples to localhost and document when 0.0.0.0 is appropriate for container deployments.

Expert evidence

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

Artifact subject

Marketplace commit
Unavailable
Content hash
Unavailable
Tree hash
Unavailable
Skill path
Unavailable
Audit payload hash
Unavailable

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: not_attestable