Versioned security assessment

Report ID: SA-26421118

7/9/2026, 2:28:03 PM

pdf security assessment v4

Skill Security Certification Report

Audit History
Audit model: codex Historical report
Skill name
pdf
Version
v4
Maintainer
sickn33
Coverage
12 Files scanned · 1,909 Lines analyzed
Policy version
Unavailable

Confirmed finding summary

No confirmed security findings

The completed audit recorded no confirmed security findings. This is not proof that the Skill has no side effects.

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.

No prompt injection, malicious network behavior, or data-exfiltration intent was found. Most external-command and blocker findings are false positives from markdown formatting, JavaScript template literals, comments, or PDF field identifiers; the confirmed findings are expected local filesystem reads and writes used for PDF processing.

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

12 Files scanned · 1,909 Lines analyzed

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

Not recorded by this audit

Network access

May connect to external services.

Observed in 3 evidence locations

Filesystem access

May read or write local files.

Observed in 19 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 62 evidence locations

Capability review items (25)
Medium
Node.js fs operations
const existingPdfBytes = fs.readFileSync('input.pdf');
The reference example reads local PDF files from disk. This is expected for PDF processing, but it is real filesystem access that could expose unintended files if paths are chosen poorly.
Medium
Node.js fs operations
fs.writeFileSync('modified.pdf', pdfBytes);
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Node.js fs operations
fs.writeFileSync('created.pdf', pdfBytes);
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Node.js fs operations
const pdf1Bytes = fs.readFileSync('doc1.pdf');
The reference example reads local PDF files from disk. This is expected for PDF processing, but it is real filesystem access that could expose unintended files if paths are chosen poorly.
Medium
Node.js fs operations
const pdf2Bytes = fs.readFileSync('doc2.pdf');
The reference example reads local PDF files from disk. This is expected for PDF processing, but it is real filesystem access that could expose unintended files if paths are chosen poorly.
Medium
Node.js fs operations
fs.writeFileSync('merged.pdf', mergedPdfBytes);
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Synchronous file operations
const existingPdfBytes = fs.readFileSync('input.pdf');
The reference example reads local PDF files from disk. This is expected for PDF processing, but it is real filesystem access that could expose unintended files if paths are chosen poorly.
Medium
Synchronous file operations
fs.writeFileSync('modified.pdf', pdfBytes);
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Synchronous file operations
fs.writeFileSync('created.pdf', pdfBytes);
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Synchronous file operations
const pdf1Bytes = fs.readFileSync('doc1.pdf');
The reference example reads local PDF files from disk. This is expected for PDF processing, but it is real filesystem access that could expose unintended files if paths are chosen poorly.
Medium
Synchronous file operations
const pdf2Bytes = fs.readFileSync('doc2.pdf');
The reference example reads local PDF files from disk. This is expected for PDF processing, but it is real filesystem access that could expose unintended files if paths are chosen poorly.
Medium
Synchronous file operations
fs.writeFileSync('merged.pdf', mergedPdfBytes);
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Python file write/append
with open("batch_merged.pdf", "wb") as output:
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Python file write/append
with open(output_file, 'w', encoding='utf-8') as f:
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Python file write/append
with open("cropped.pdf", "wb") as output:
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Python file write/append
with open(f"chunk_{start_idx//chunk_size}.pdf", "wb") as output:
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Python file write/append
with open(json_output_path, "w") as f:
The shipped script writes output JSON or PDF data to a command-line path. This is intended functionality, but it is real local file write capability and can overwrite existing files.
Medium
Python file write/append
with open(output_pdf_path, "wb") as f:
The shipped script writes output JSON or PDF data to a command-line path. This is intended functionality, but it is real local file write capability and can overwrite existing files.
Medium
Python file write/append
with open(output_pdf_path, "wb") as output:
The shipped script writes output JSON or PDF data to a command-line path. This is intended functionality, but it is real local file write capability and can overwrite existing files.
Medium
Python file write/append
with open("merged.pdf", "wb") as output:
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Python file write/append
with open(f"page_{i+1}.pdf", "wb") as output:
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Python file write/append
with open("rotated.pdf", "wb") as output:
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Python file write/append
with open("watermarked.pdf", "wb") as output:
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Medium
Python file write/append
with open("encrypted.pdf", "wb") as output:
The guide or reference example writes generated PDF, text, image, or JSON output to local paths. This is expected behavior, but it can overwrite files or create outputs in unintended locations.
Low
Python glob/pattern matching
pdf_files = glob.glob(os.path.join(input_dir, "*.pdf"))
The batch-processing example enumerates PDF files in a user-supplied directory with glob. This is legitimate for PDF batching, but it can access more local files than intended if scoped poorly.

Risk findings

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

No confirmed security findings were recorded for this completed audit.

Remediation

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

  1. FIX-001
    Medium
    Local file overwrite risk
    Validate output paths before writing PDFs, JSON files, images, or text files, and require confirmation before overwriting existing files.
  2. FIX-002
    Low
    Broad batch-processing scope
    Limit batch processing to explicit user-selected directories and document which files will be read before processing begins.
  3. FIX-003
    Low
    Command-line example safety
    Keep command examples limited to explicit PDF utilities, quote paths with spaces, and avoid constructing shell commands from untrusted text.

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