Back to skill

Security audit

ComPDF Watermark Manager

Security checks for vulnerabilities and agentic risk

Overview

This skill is a scoped ComPDF helper for PDF watermark work, with clear upload confirmation and credential-use instructions, though users should treat uploaded PDFs and the stored API key carefully.

Install only if you are comfortable sending selected PDFs to ComPDF for processing and storing a ComPDF API key locally. Use it for watermark endpoints only, avoid sensitive or regulated PDFs unless your organization permits ComPDF processing, and protect or rotate the API key if the workspace may be shared.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:32
Finding

Plaintext API Key Persistence Without Required Access Controls

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 32–40
Vulnerability Type: Plaintext credential storage with insufficient filesystem safeguards
Risk Level: Medium

Vulnerable Code Snippet:

markdown
6. Resolve credentials only from `api_key` in the directory containing this `SKILL.md`. Read its first non-empty line. Do not inspect environment variables or any other local path. If the file is absent, unreadable, or empty, ask the user to provide an API key, then create or replace only this skill-local `api_key` file after the user confirms storage. Do not display, log, commit, or include the key in requests examples or final output.
7. Before uploading a document to ComPDF, identify the affected files and destination, and obtain confirmation unless the user has explicitly authorized that upload. Also obtain confirmation before operations that overwrite, delete, decrypt, or apply permanent protection.
8. Return the endpoint, method, content type, complete request fields, expected task/result fields, and the next polling or download step. Preserve original files unless replacement is explicitly requested.

## Credentials

Store only the current skill's API key in the sibling `api_key` file. This file is private runtime state and must be excluded from version control and skill publishing.

To obtain an API key, register or sign in at [ComPDF Portal](https://www.compdf.com/compdf-portal/signin?utm_source=clawhub&utm_medium=referral&utm_campaign=compdf_skills_repo_en&ref_platform_id=clawhub_compdfkit_skills_en). On first use, provide the key when requested and confirm storing it in the skill-local `api_key` file; later requests reuse that stored key.

Technical Analysis

The Skill directs the agent to persist an API credential in an ordinary plaintext file named api_key. It appropriately limits the credential lookup location, requires user approval before storage, and prohibits disclosure or version-con ...[truncated 2013 chars]

Remediation
View remediation

Remediation Suggestions

  1. Prefer an operating-system keychain or managed secret store instead of a plaintext project file.
  2. If file storage is unavoidable, create the file atomically with owner-only permissions such as 0600, and ensure the containing directory is not writable by untrusted principals.
  3. Before every read or write, verify that the path is a regular file owned by the expected user and reject symbolic links and unexpected hard links.
  4. Avoid unsafe overwrite behavior. Write securely to an owner-only temporary file in the same directory and atomically rename it after validation.
  5. Add api_key to version-control and package-publication exclusion rules, while retaining the existing prohibition against logging or displaying it.
  6. Provide an explicit command or workflow to delete the stored credential and document key rotation and revocation procedures.
  7. Minimize the key's server-side permissions and quotas where ComPDF supports such controls.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (11)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 29)May include surrounding context.

md
3. Read the matching heading in `references/official-api-reference.md`. Use its exact endpoint path, request fields, request mode, and response fields; do not i

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 32)May include surrounding context.

md
6. Resolve credentials only from `api_key` in the directory containing this `SKILL.md`. Read its first non-empty line. Do not inspect environment variables or a

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The manifest says this skill is for adding or removing text and image watermarks in PDFs, but this file documents a much broader API surface including format conversion, merging, splitting, encryption/decryption, compression, document comparison, PDF generation, and AI extraction/parsing. Bundling and exposing documentation for all of these operations materially expands the apparent behavior and intent beyond watermarking alone.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The workflow documentation normalizes uploading user files to ComPDF and retrieving result links, but does not warn that documents are sent to an external third-party service. In a document-processing skill, this can cause inadvertent disclosure of sensitive PDFs, regulated data, or confidential business records if users or integrators assume processing is local.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

These sections describe adding passwords and permission controls to PDFs and removing password protection from encrypted PDFs. Encryption/decryption changes document security state rather than watermarking, so it is not justified by the stated watermark-focused purpose.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The encryption example includes a literal password value inside returned file parameters, which encourages unsafe handling of secrets in examples, logs, traces, or UI output. In real integrations, this pattern can lead developers to log document passwords or expose them through telemetry, creating credential and document-protection leakage.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The AI overview and subsequent IDP sections describe intelligent document parsing and field extraction workflows, including structured JSON/Markdown output and bbox grounding. These capabilities are not justified by a skill whose declared purpose is only watermark addition/removal, and they introduce semantically different document-analysis functionality.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

Several sections switch from English to Chinese text inline, such as parameter descriptions and headings, without telling users that the reference may require Chinese comprehension or providing an alternate locale selection. This can violate language/locale policy because the skill effectively forces part of the documentation into a specific language without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

Multiple parameter descriptions in later sections are presented only in Chinese, while the rest of the file is primarily English. Users are not given a language choice or notice that certain fields require reading Chinese, creating an avoidable locale constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The merge, split, delete, and related sections include Chinese-only explanatory text for important parameters such as page ranges and passwords. Because these are required to use the APIs correctly, presenting them only in Chinese imposes a language requirement without opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

Core AI parsing and extraction parameters such as OCR language, mode, extractFields, enableGrounding, and optionsJson are partially described only in Chinese. Since these are central to correct usage, the file effectively enforces a Chinese locale for part of the workflow without explicit user choice.

Content

No source excerpt is available for this finding.