Back to skill

Security audit

Paperclip

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent for operating a local Paperclip control plane, but it asks agents to run mutable setup code and persist operational context without enough user control.

Install only if you trust the Paperclip package, repository, and any configured Paperclip deployment or adapters. Prefer pinning a reviewed package version or repository commit, run setup in an isolated environment, and require confirmation before saving Paperclip environment details or work context to persistent memory.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T08 · Insecure Dependencies

Warning
Location
quickstart.md:5
Finding
Execution of an Unpinned npm Package## Vulnerability Details **File Location**: `quickstart.md:5-7`; also recommended in `SKILL.md:44-46,56` **Vulnerability Type**: Supply-chain risk caused by mutable package resolution **Risk Level**: Medium **Vulnerable code:** ```bash npx paperclipai onboard --yes ``` Supporting instruction: ```markdown - Node.js 20+ for the official `paperclipai` package and local server - pnpm 9.15+ for repo-based workflows - `curl` for direct API checks and automation - Prefer `npx paperclipai onboard --yes` for the first working instance. ``` ### Technical Analysis The recommended setup command runs the version of `paperclipai` currently resolved by npm without specifying a reviewed version or verifying package integrity. The `--yes` option suppresses the installation confirmation that could otherwise alert the operator that code is about to be downloaded and executed. Because the resolved package is mutable after this skill has been reviewed, compromise of the npm package, publisher credentials, package ownership, or registry resolution path could cause arbitrary package code or lifecycle scripts to execute locally. The project does not provide a version pin, expected checksum, trusted registry restriction, or lockfile-backed installation procedure for this setup path. ### Attack Path 1. An attacker compromises the `paperclipai` npm package, its publisher account, or the package resolution infrastructure. 2. The attacker publishes a malicious version under the package name resolved by the unpinned command. 3. A user or agent follows the documented first-use setup procedure. 4. `npx` retrieves the current mutable package version without requiring interactive installation confirmation. 5. Malicious package lifecycle or application code executes with the permissions of the invoking user. ### Impact Assessment Successful exploitation could provide arbitrary code execution under the invoking user's account. The resul ...[truncated 339 chars]
Remediation
## Remediation Suggestions - Pin the package to a specifically reviewed version, for example: ```bash npx --yes paperclipai@<reviewed-version> onboard --yes ``` - Document the expected npm registry and reject unexpected registry overrides. - Publish and verify package provenance, signatures, or integrity hashes before execution. - Prefer a lockfile-backed installation workflow with committed integrity metadata. - Review package lifecycle scripts and consider disabling them during installation where operationally possible. - Remove automatic confirmation suppression when interactive review is appropriate, or clearly warn users that the command downloads and executes third-party code.

T08 · Insecure Dependencies

Note
Location
quickstart.md:13
Finding
Execution of an Unpinned Upstream Repository and Dependency Graph## Vulnerability Details **File Location**: `quickstart.md:13-17` **Vulnerability Type**: Supply-chain risk caused by cloning and executing a mutable default branch **Risk Level**: Low **Vulnerable code:** ```bash git clone https://github.com/paperclipai/paperclip.git cd paperclip pnpm install pnpm dev ``` ### Technical Analysis The manual installation workflow clones the repository's current default branch without selecting a reviewed release tag or commit. It then installs the dependency graph and starts the project. Both the upstream repository contents and dependencies resolved during installation can change after this skill has been audited. `pnpm install` may execute package lifecycle scripts, while `pnpm dev` executes scripts defined by the cloned repository. Consequently, compromise of the upstream repository, its maintainers, or a dependency can result in local code execution. Although the documented source is a declared GitHub repository rather than an overtly suspicious source, the procedure lacks immutable source selection and integrity verification. ### Attack Path 1. An attacker compromises the upstream repository, a maintainer account, or a dependency included in the installation graph. 2. Malicious code is added to the mutable default branch, a package lifecycle script, or a resolved dependency. 3. A user follows the documented manual repository workflow. 4. `git clone` retrieves the compromised default-branch content. 5. `pnpm install` resolves dependencies and may execute malicious lifecycle scripts. 6. `pnpm dev` executes the compromised project scripts with the invoking user's permissions. ### Impact Assessment Successful exploitation could produce arbitrary code execution as the invoking user. An attacker could potentially read or modify user-accessible files, project workspaces, Paperclip data, environment variables, and credentials exposed to the installation or development process. No p ...[truncated 119 chars]
Remediation
## Remediation Suggestions - Clone or check out an immutable, reviewed release tag or full commit hash rather than relying on the default branch. - Verify a signed release, signed commit, or published checksum before installation. - Require the repository's committed lockfile and install with: ```bash pnpm install --frozen-lockfile ``` - Review package lifecycle scripts before allowing them to execute. - Consider using `--ignore-scripts` during dependency installation when compatible with the project, followed by explicit execution of only required and reviewed build steps. - Document the exact reviewed repository revision and dependency-lockfile hash in the setup guide. - Run initial installation and development startup in an isolated, least-privileged environment without unrelated credentials.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (4)

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The skill instructs users to run `npx paperclipai onboard --yes` without pinning an exact package version. `npx` will fetch the latest published package at execution time, so a compromised maintainer account, dependency hijack, or malicious upstream release could result in arbitrary code execution on the user's machine. In this skill's context, that risk is more serious because the command is presented as the preferred first-use bootstrap path and is likely to be run immediately by operators.

External Transmission

Medium
Category
Data Exfiltration
Content
## API Identity Check

```bash
curl -sS "$PAPERCLIP_API_URL/api/agents/me" \
  -H "Authorization: Bearer $PAPERCLIP_API_KEY"
```
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The quickstart instructs users to run `npx paperclipai onboard --yes` without pinning a specific package version. `npx` will fetch the latest published package at execution time, which creates a supply-chain risk: a compromised maintainer account, malicious new release, or unexpected breaking change could execute arbitrary code on the user's machine during onboarding. In a control-plane/orchestration skill, this is more dangerous because the package is likely to access local config, credentials, services, and automation workflows.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill explicitly instructs the agent to persist integration preferences and reusable operational context to the user's main memory without requiring clear user notice, consent, or data-minimization safeguards. Even if the data is not obviously secret, storing infrastructure details, workspaces, blockers, and deployment mode can create privacy leakage and unintended long-term profiling across sessions.

Static analysis

No suspicious patterns detected.