Versioned security assessment

Report ID: SA-64CA8AF0

7/8/2026, 12:44:31 PM

doc-sync-tool security assessment v4

Skill Security Certification Report

Audit History
Audit model: codex Historical report
Skill name
doc-sync-tool
Version
v4
Maintainer
ZhanlinCui
Coverage
13 Files scanned · 1,747 Lines analyzed
Policy version
Unavailable

Highest confirmed finding severity

High

2 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 alerts are false positives from Markdown examples, JavaScript template literals, ANSI color codes, and hardcoded helper commands. Confirmed risks involve local file writes, watch-triggered synchronization, predictable test temporary paths, and unreviewed propagation of AI agent instruction files. No prompt injection attempt, network access, or credential exfiltration was found in the reviewed files.

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

13 Files scanned · 1,747 Lines analyzed

10 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 27 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 69 evidence locations

Capability review items (8)
Medium
Node.js fs operations
fs.renameSync(file, newPath);
fs.renameSync renames every discovered Agents.md file under the current tree and can overwrite AGENTS.md without a prompt. This is an intended helper, but it creates real data-integrity risk.
Medium
Node.js fs operations
fs.renameSync(file, newPath);
fs.renameSync renames every discovered Gemini.md file under the current tree and can overwrite GEMINI.md without a prompt. This is an intended helper, but it creates real data-integrity risk.
Medium
Node.js fs operations
fs.writeFileSync(targetFilePath, content, 'utf8');
writeFileSync overwrites an existing target agent file when content differs from the selected newest source. There is no diff, backup, or confirmation gate.
Medium
Node.js fs operations
fs.writeFileSync(targetFilePath, content, 'utf8');
writeFileSync creates missing agent instruction files from the selected source content. This modifies the repository automatically and can propagate unwanted instructions.
Medium
Synchronous file operations
fs.writeFileSync(targetFilePath, content, 'utf8');
The synchronous write overwrites an existing target agent file without review. The risk is the write behavior, not the synchronous API choice.
Medium
Synchronous file operations
fs.writeFileSync(targetFilePath, content, 'utf8');
The synchronous write creates target agent files automatically without approval. This can spread incorrect or malicious instruction content.
Medium
Temp directory access
TEST_DIR="/tmp/doc-sync-test-$(date +%s)"
The test script uses a predictable /tmp path based on the current timestamp and later removes it recursively. This is test-only, but predictable temp paths are unsafe on shared systems.
Medium
File system watching
const watcher = fs.watch(dir, { recursive: true }, (eventType, filename) => {
fs.watch monitors the project tree and triggers synchronization on matching file changes. Persistent automatic sync increases the chance of unreviewed overwrites.

Risk findings

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

Confirmed security concerns (2)

RISK-001 High
Unreviewed Agent Instruction Overwrite
The sync logic selects the newest AGENTS.md, CLAUDE.md, or GEMINI.md file and writes its content to companion files without a diff, backup, or confirmation. This can propagate malicious or mistaken agent instructions across tools.
The code explicitly sorts by modification time and writes source content into other agent files. Watch mode automatically triggers the same sync path after file changes.
RISK-002 Medium
Broad Recursive Project Modification Scope
The tool scans from the current working directory or a wrapper-selected target directory, then recursively processes matching files. Running it from a broad parent directory can modify many projects unexpectedly.
CONFIG.scanPath is process.cwd(), scanDirectory recurses through child directories, and run-sync.sh changes into a caller-provided target before running sync.js.

Remediation

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

  1. FIX-001
    High
    Unreviewed overwrites of agent instruction files
    Add dry-run mode, diff output, explicit confirmation, and automatic backups before writeFileSync updates target files.
  2. FIX-002
    Medium
    Broad recursive scan and watch scope
    Require an explicit project root, reject home or filesystem-root targets, and print the exact scope before syncing.
  3. FIX-003
    Medium
    Rename helpers can modify many files recursively
    Add collision checks, dry-run output, and backups, or remove the rename helpers from the published skill.
  4. FIX-004
    Medium
    Predictable temporary test directory
    Use mktemp or fs.mkdtemp for test directories and clean up only paths created by the test process.
  5. FIX-005
    Low
    Documentation and implementation use inconsistent filename casing
    Update documentation and tests to match uppercase target filenames, or explicitly support both casing styles.

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