Versioned security assessment

Report ID: SA-C3FC4C52

7/5/2026, 1:58:46 AM

epub-chapter-extractor security assessment v7

Skill Security Certification Report

Audit History
Audit model: codex Historical report
Skill name
epub-chapter-extractor
Version
v7
Maintainer
Abilityai
Coverage
2 Files scanned · 306 Lines analyzed
Policy version
Unavailable

Highest confirmed finding severity

Medium

1 confirmed security finding requires 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.

The skill performs intended local EPUB extraction, but it uses external uv commands and writes files to local output directories. Most Markdown backtick detections are false positives, and the ~/.claude references point to the skill installation path rather than hidden user data. The main additional concern is unpinned runtime dependencies resolved during command execution.

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

2 Files scanned · 306 Lines analyzed

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

Not recorded by this audit

Filesystem access

May read or write local files.

Observed in 4 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 14 evidence locations

Capability review items (6)
Medium
Python file write/append
with open(filepath, 'w', encoding='utf-8') as f:
The script writes Markdown files into an output directory derived from user input or the EPUB path. This is intended behavior, but it can overwrite existing files in the selected directory.
Medium
Python os file operations
os.makedirs(output_dir, exist_ok=True)
The script creates the output directory on the local filesystem from a user-supplied or derived path. This is legitimate for the skill, but it is still a real filesystem modification.
Medium
Ruby/shell backtick execution
When the user wants to extract chapters from an EPUB, run the extraction script with `uv`:
The instruction tells the agent to run the extraction script with uv. That external command is core functionality, but it executes local code and package tooling.
Medium
Ruby/shell backtick execution
```bash
This code block includes the uv shell command that runs extract_chapters.py with user-provided file paths. The command is intended, but shell execution with substituted paths is security-relevant.
Medium
Ruby/shell backtick execution
```bash
This example block includes a uv command that runs the extractor against a user path. It is expected for the skill, but it is still external command execution.
Medium
Ruby/shell backtick execution
```bash
This code block includes the external open command for the output folder. The operational risk is low, but it is still a shell command run by the agent.

Risk findings

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

Confirmed security concerns (1)

RISK-001 Medium
Unpinned Runtime Dependencies
SKILL.md instructs running uv with ebooklib, beautifulsoup4, html2text, and lxml without version pins. Each use may resolve newer package versions and execute changed dependency code.
The commands explicitly use uv --with package names without version constraints. No malicious source is specified, so the concern is supply-chain exposure rather than proven compromise.

Remediation

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

  1. FIX-001
    Medium
    Unpinned runtime dependencies
    Pin exact versions for ebooklib, beautifulsoup4, html2text, and lxml, or ship a lockfile for reproducible installs.
  2. FIX-002
    Medium
    Shell examples substitute user-controlled paths
    Quote both EPUB and output paths in documentation, and prefer argument arrays when an agent runtime supports them.
  3. FIX-003
    Medium
    Output writes can overwrite existing chapter files
    Warn before writing into a nonempty output directory or create a unique destination folder for each extraction.

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