Pincer

ReviewAudited by ClawScan on May 10, 2026.

Overview

Pincer has a coherent security-scanning purpose, but the visible script has review-worthy safety gaps around unpinned runtime code, fail-open scanning, and unvalidated file paths.

Before installing, understand that Pincer can install other skills and change future trust decisions. Prefer setting autoApprove to "never" until the scanner is fail-closed, mcp-scan is pinned, and fetched file paths are safely validated.

Findings (4)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If the external scanner errors, times out, or changes output format, a skill could be treated as clean and proceed toward installation.

Why it was flagged

The scanner command's non-zero exit is swallowed, and the parser falls back to "clean" when it does not recognize warning patterns. For a tool that may auto-approve clean installs, this is a fail-open scan path.

Skill content
output=$(uvx mcp-scan@latest --skills "$target" 2>&1) || true ... else
    echo "clean"
Recommendation

Fail closed on scanner errors, preserve and check exit codes, parse structured output where possible, and require manual approval whenever any scan stage fails.

What this means

A malicious or malformed skill file listing could cause pincer to write outside its intended temporary or cache directory before installation.

Why it was flagged

File names parsed from external clawhub output are used directly to create directories and write files, without visible checks for traversal segments such as ../ or canonical containment under the destination directory.

Skill content
files=$(echo "$files_output" | grep -E '^\S+\s+[0-9]+[BKM]' | awk '{print $1}' || true) ... mkdir -p "$file_dir" ... > "$dest_dir/$file"
Recommendation

Reject absolute paths and ../ segments, canonicalize the final path, and verify every fetched file stays inside the intended destination directory before writing.

What this means

A future compromised or breaking mcp-scan release could affect every scan and install decision made through pincer.

Why it was flagged

The skill executes mcp-scan via uvx using @latest, so the code run during scans can change over time and is not pinned to a reviewed version.

Skill content
output=$(uvx mcp-scan@latest --skills "$target" 2>&1) || true
Recommendation

Pin mcp-scan to a specific reviewed version, document the provenance, and consider checksums or a lockfile for reproducible execution.

What this means

If the trust list is changed too broadly, future clean-looking skills from those publishers may install with less prompting.

Why it was flagged

The skill stores persistent trust and history settings that influence future install decisions. This is disclosed and purpose-aligned, but it is state that can affect later agent behavior.

Skill content
"trustedPublishers": ["openclaw", "steipete", "invariantlabs-ai"], ... "autoApprove": "clean", ... "logInstalls": true
Recommendation

Review ~/.config/pincer/config.json periodically, keep trusted publishers limited, and set autoApprove to "never" if you want every install to require explicit confirmation.