Back to skill

Security audit

Generect API

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a legitimate Generect lead-enrichment integration, but it needs review because it sends contact data to a third-party API and suggests running an unpinned npm package.

Review before installing. Use this only for data you are allowed to send to Generect, prefer pinned and reviewed package versions over `@latest`, avoid exposing broad environment secrets to the MCP process, and require user confirmation before submitting personal or prospecting data.

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:138
Finding

Unpinned Third-Party Package Download and Execution

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, line 138
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: Medium

Vulnerable Code Snippet:

markdown
- Local: `npx -y generect-ultimate-mcp@latest` with env `GENERECT_API_KEY`

Technical Analysis

The documented local integration invokes npx with the mutable @latest tag and the automatic-confirmation option (-y). Following this instruction causes npm to download and execute whichever package release is identified as latest at execution time. The dependency is not pinned to an audited version, and the instruction provides no lockfile or package-integrity verification.

Consequently, the code ultimately executed can change after the Skill has been reviewed. Although the audit found no evidence that the package is currently malicious, compromise of its publisher account, package ownership, release pipeline, or npm distribution path could turn this documented command into a supply-chain execution vector. The package also receives access to the GENERECT_API_KEY environment variable as part of the documented setup.

Attack Path

  1. An attacker compromises the npm publisher account, release pipeline, or another distribution component for generect-ultimate-mcp.
  2. The attacker publishes a malicious release that becomes the package's latest version.
  3. A user or Agent follows the instruction in SKILL.md and runs npx -y generect-ultimate-mcp@latest.
  4. npx downloads and executes the attacker-controlled release without an interactive package confirmation.
  5. The malicious process runs with the invoking user's privileges and can read environment variables available to it, including GENERECT_API_KEY.
  6. Subject to the invoking account's permissions and host controls, the process could exfiltrate credentials, access or alter local files, or perform network operations.

Impact Assessment

Successful exploitati ...[truncated 448 chars]

Remediation
View remediation

Remediation Suggestions

  • Replace @latest with an exact, reviewed package version; for example, use generect-ultimate-mcp@X.Y.Z.
  • Record the approved dependency in a project manifest and lockfile rather than dynamically selecting a release at execution time.
  • Require lockfile integrity verification, such as npm ci with a committed package-lock.json, in a controlled installation directory.
  • Verify and document the package's official publisher, source repository, release provenance, and expected integrity hash.
  • Remove -y where practical so unexpected downloads are not approved automatically.
  • Run the MCP package under a dedicated, least-privileged account or sandbox with narrowly restricted filesystem and network access.
  • Expose GENERECT_API_KEY only to the process that requires it, use a minimally privileged and revocable key, and rotate it if dependency compromise is suspected.
  • Establish a review and update procedure so version changes occur only after code, provenance, and dependency-tree assessment.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (9)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill documents shell-based execution paths (curl and npx) but does not declare any explicit tool scope or allowed-tools restrictions. In an agent environment, that mismatch can let the skill be invoked with broader execution capability than users expect, increasing the chance of unintended command execution or data transfer to the external service.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The description is broad enough to match many common lead-gen, prospecting, enrichment, and email tasks, which can cause over-invocation of this skill in situations where the user did not clearly intend third-party processing. Because the skill sends business contact and prospecting data to an external API, overbroad triggering increases privacy, compliance, and unintended data-sharing risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill lacks a clear warning that names, email addresses, LinkedIn URLs, company data, and other prospecting inputs may be transmitted to Generect for enrichment and validation. Without that notice, users may unknowingly disclose personal or business-contact data to a third party, creating privacy, consent, and regulatory exposure.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

The curl example explicitly demonstrates transmitting query data and an authorization token to an external API. While expected for an integration skill, this is still a real security and privacy concern because it operationalizes outbound data flow and could encourage sending sensitive prospecting or personal data without adequate consent or review.

Content

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

Returns list of API usage transactions.

Usage via curl

bash
curl -X POST https://api.generect.com/api/linkedin/leads/by_icp/ \

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

The skill is centered on sending data to https://api.generect.com/, an external service that performs lead enrichment and email discovery. In context, this makes third-party transmission intrinsic to the skill, so the main risk is not the URL itself but the lack of safeguards around what user or contact data may be sent and when.

Content

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

Usage via curl

bash
curl -X POST https://api.generect.com/api/linkedin/leads/by_icp/ \
  -H "Authorization: Token $GENERECT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"job_title":["VP Sales"],"location":["United States"],"per_page":5}'

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding

The skill recommends running npx -y generect-ultimate-mcp@latest, which pulls and executes the latest package version at runtime without pinning. This creates a supply-chain risk: a compromised maintainer account, malicious update, or dependency hijack could cause arbitrary code execution in the agent environment.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The documentation explicitly lists personal profile and employment-history fields such as full name, LinkedIn URL, job history, education, skills, and job-seeker status, but provides no guidance on lawful use, minimization, consent, retention, or user-facing disclosure. In a lead-generation and prospecting skill, this omission increases the risk of privacy misuse, non-compliant processing of personal data, and downstream abuse such as unsolicited outreach or excessive profiling.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/generect.sh (reported line 12)May include surrounding context.

sh
set -euo pipefail

BASE="https://api.generect.com/api/linkedin"
AUTH="Authorization: Token ${GENERECT_API_KEY:?Set GENERECT_API_KEY}"

cmd="${1:?Usage: generect.sh <leads|companies|email|validate|lead-url> '<json>'}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/generect.sh (reported line 27)May include surrounding context.

sh
*) echo "Unknown command: $cmd" >&2; exit 1 ;;
esac

curl -sS -X POST "$endpoint" \
  -H "$AUTH" \
  -H "Content-Type: application/json" \
  -d "$body"

Static analysis

No suspicious patterns detected.