Back to skill

Security audit

eSign Automation

Security checks for vulnerabilities and agentic risk

Overview

This e-signature skill is coherent, but it needs review because it runs an unpinned third-party CLI while handling contracts, signer details, and an API key.

Review this skill before installing in a production or regulated environment. Use only a pinned, vetted version of the eSignGlobal CLI, preferably installed from a controlled source, and expose only the specific PDF files and a least-privilege `ESIGNGLOBAL_APIKEY` needed for the task. Users should understand that send, template render, contract compare, and related workflows may transmit documents and recipient details to eSignGlobal.

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 (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:78
Finding
Unpinned Third-Party CLI Is Downloaded and Executed at Runtime## Vulnerability Details **File Location**: `SKILL.md`, lines 78–81 **Vulnerability Type**: Unpinned runtime dependency execution **Risk Level**: Medium ### Vulnerable Code ```markdown Use the external CLI through `npx`: ```bash npx @esignglobal/envelope-cli <command> ``` ``` The same unversioned package invocation is used throughout the documented workflows, including commands that process credentials, contracts, and signer information. ### Technical Analysis The Skill instructs the Agent to execute `@esignglobal/envelope-cli` through `npx` without specifying an exact package version. The project contains no dependency lockfile, package integrity metadata, checksum verification, or enforced local-installation policy. If the package is unavailable locally, `npx` may resolve, download, and execute the package version currently served by the configured npm registry. Consequently, the code that executes can change after this Skill has been audited. Describing the CLI as trusted does not technically bind package identity, version, provenance, or integrity. This creates a software supply-chain exposure. A compromised publisher account, malicious package release, registry compromise, or dependency takeover could cause arbitrary JavaScript to execute with the permissions of the Agent process. ### Attack Path 1. An attacker compromises the npm package, its publisher account, or another relevant part of its dependency supply chain. 2. The attacker publishes a malicious release under `@esignglobal/envelope-cli`, or alters a transitively resolved component. 3. The Agent follows `SKILL.md` and runs an unversioned command such as: ```bash npx @esignglobal/envelope-cli send-envelope --file "/tmp/contract.pdf" --signers '[{"userName":"Bob Smith","userEmail":"bob@example.com"}]' --confirm ``` 4. If no safe local copy is selected, `npx` retrieves and executes the malicious release. 5. The malicious package executes within the Agent process context and ...[truncated 1002 chars]
Remediation
## Remediation Suggestions 1. Pin the CLI to an exact, reviewed version rather than resolving the current registry release: ```bash npx --yes @esignglobal/envelope-cli@1.7.5 <command> ``` Exact version pinning reduces unexpected changes but does not alone provide complete integrity protection. 2. Prefer declaring the CLI in a project manifest and committing the generated lockfile with integrity metadata. 3. Install dependencies using a deterministic command such as: ```bash npm ci ``` 4. Invoke only the locally installed package and prohibit runtime downloads: ```bash npx --no-install @esignglobal/envelope-cli <command> ``` Alternatively, call the verified binary under `node_modules/.bin`. 5. Verify package provenance, publisher identity, signatures or attestations, and dependency integrity before approving updates. 6. Establish a controlled dependency-update process that includes security review, malware scanning, and regression testing before changing the pinned version. 7. Run the CLI in a sandbox with least-privilege filesystem and network access. Expose only the specific document required for the task. 8. Scope and rotate `ESIGNGLOBAL_APIKEY`, and avoid making unrelated credentials available in the CLI process environment. 9. Consider using an approved internal package registry or immutable artifact repository so audited package artifacts cannot change after approval.
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 (44)

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill explicitly sends contracts, attachments, signer identities, CC recipients, and related metadata to an external e-sign service, but it does not prominently require user-facing disclosure or consent about third-party data transmission. This can lead to unintentional privacy, confidentiality, or policy violations, especially when handling legal documents, personal data, or regulated business records.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The skill repeatedly invokes an external package via `npx @esignglobal/envelope-cli` without pinning an exact version. This creates a supply-chain risk: a future malicious or compromised package release could be fetched and executed at runtime with access to the agent's environment, including `ESIGNGLOBAL_APIKEY` and sensitive contract data.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
Using unpinned `npx @esignglobal/envelope-cli` means the executed code is not stable or reviewable over time. If the upstream package or dependency chain is hijacked, the skill may execute attacker-controlled code during normal signing workflows and expose documents, recipient identities, or API credentials.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
This command reference encourages runtime execution of a package resolved from the registry without version pinning. In an agent context, that broadens the blast radius because package compromise could lead to code execution wherever the skill runs, not just incorrect business logic.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
An unpinned `npx` invocation allows silent drift to newer package contents, making the skill dependent on mutable third-party code. Because this skill processes contracts and signer metadata, a compromised package could exfiltrate high-value business documents and personal data.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
This is a real supply-chain exposure, not a mere style issue, because `npx` may download and execute current registry content at the moment of use. The skill's own safety rules do not mitigate compromise of the external package itself.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
Invoking the CLI through unpinned `npx` creates a path for malicious upstream updates to run in the agent environment. Since the tool can operate on files, URLs, and credentials, exploitation could affect confidentiality and integrity of legal workflows.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The command is vulnerable to dependency drift and potential package takeover because no fixed version is declared. In practice, that means identical prompts may execute materially different code over time, undermining trust and auditability.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
This usage pattern gives the external registry control over what code is executed when the skill runs. Given the sensitive nature of e-sign envelopes and downloadable signed documents, a compromised package could leak or tamper with critical business artifacts.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
Because the skill is designed for repeated automation, every unpinned invocation compounds exposure to malicious package updates. This is especially risky in environments where the agent has access to file paths, API keys, and contract metadata.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The lack of version pinning means the trust boundary extends to future unpublished or compromised releases of the package and its transitive dependencies. That is a concrete supply-chain vulnerability in an automation skill that can handle legally significant documents.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
An agent following this skill would execute code obtained from a mutable package endpoint without pinning, making compromise or unexpected updates immediately impactful. The result could include credential theft, unauthorized API actions, or document exfiltration.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
This finding is valid because the package specifier omits a version, so the exact executed code can change independently of the skill file. In regulated contract-signing workflows, that unpredictability is particularly dangerous for both security and compliance.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
Fetching and executing a floating package version via `npx` opens the door to supply-chain attacks. Since the CLI can interact with envelope state and recipient lists, exploitation could lead to unauthorized sends, cancellations, or data leakage.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The skill treats the CLI as trusted, but versionless `npx` weakens that trust by allowing execution of whatever the registry serves at runtime. That is a genuine vulnerability because it can subvert all higher-level workflow safeguards in the document.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
This unpinned package execution is a real risk in a skill that processes confidential PDFs and signer PII. A malicious update could abuse the same command surface to read files, intercept tokens, or alter outputs returned to the user.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
Running `npx @esignglobal/envelope-cli` without a version allows silent code changes outside the skill repository's control. In security-sensitive automation, that creates a practical path for remote code execution through a compromised registry package.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The skill's extensive examples reinforce a dangerous operational pattern: using floating `npx` invocations across many workflows. Because the agent may execute these commands directly, upstream compromise would immediately affect envelope creation, sending, and retrieval operations.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
This is not contextually harmless; the sensitive business function makes the unpinned package more dangerous. Even a short-lived compromise could expose signed files, audit certificates, or callback URLs handled by the CLI.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
A floating `npx` dependency undermines reproducibility and expands the trust boundary to the public npm ecosystem at execution time. For legal-signature workflows, this can directly impact confidentiality, integrity, and non-repudiation-related evidence handling.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
This example still executes mutable third-party code through `npx` without version pinning. The risk is amplified because the surrounding workflow can create draft envelopes and issue sender-view URLs, making token or metadata theft valuable to an attacker.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The package is executed in a context where environment variables and user-provided file paths may be present. An unpinned version creates a credible path for malicious code to harvest `ESIGNGLOBAL_APIKEY` or access sensitive local PDFs.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
This finding is valid because runtime behavior depends on whatever package version `npx` resolves at that moment. In a document-signing skill, such non-determinism can translate to arbitrary code execution with access to contracts and recipient information.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
Unpinned package execution is a concrete supply-chain weakness here, not a theoretical issue. The command can trigger outbound actions and expose sensitive outputs, so a compromised upstream release could abuse trusted automation paths.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
Because `npx` may fetch and run the newest package, the skill effectively delegates security to an external registry on each use. That is especially dangerous for cancellation and reminder operations that affect live signing workflows.

Static analysis

No suspicious patterns detected.