Back to skill

Security audit

iGPT Email Intelligence

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed iGPT email-search integration, with sensitive email/API-key access and an unpinned SDK install that users should handle carefully.

Install this only if you trust iGPT with read-only access to the connected email account and are comfortable setting `IGPT_API_KEY` in the runtime environment. Prefer installing the SDK in an isolated environment and pinning or reviewing the `igptai` package version before use.

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:46
Finding
Unpinned Third-Party Python Package Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 46–54 **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium ### Vulnerable Code ```markdown ## Prerequisites 1. An iGPT API key (get one at https://igpt.ai/hub/apikeys/) 2. A connected email datasource — the user must have completed OAuth authorization via `connectors/authorize` before search will return results 3. Python >= 3.8 with the `igptai` package installed ## Setup ```bash pip install igptai ``` ``` ### Technical Analysis The installation command resolves the latest available `igptai` release without an exact version constraint, cryptographic hashes, or a lockfile. Consequently, the installed code may differ from the version reviewed when this skill was published. Python package installation can execute package-controlled build or installation logic. Runtime imports also execute package initialization code. Although the document links to the package's source repository, that link does not cryptographically bind the downloaded PyPI artifact to reviewed source. This creates a supply-chain exposure if the package publisher account, package release, build pipeline, or transitive dependency is compromised. The audit did not establish that the current package is malicious; the confirmed issue is the unsafe, non-reproducible dependency installation practice. ### Attack Path 1. An attacker compromises the package publisher account, release pipeline, distribution artifact, or an unresolved dependency. 2. The attacker publishes a malicious release that satisfies the unrestricted package name. 3. A user follows the documented `pip install igptai` instruction. 4. `pip` downloads and installs the attacker-controlled release. 5. Malicious code executes during installation or when the package is imported. 6. The code runs with the privileges of the user or automation process and may access resources available to that proces ...[truncated 615 chars]
Remediation
## Remediation Suggestions 1. Pin `igptai` to an exact version that has undergone security review, for example: ```bash python -m pip install "igptai==X.Y.Z" ``` 2. Publish a requirements or lock file containing cryptographic hashes and install with hash enforcement: ```bash python -m pip install --require-hashes -r requirements.txt ``` 3. Pin and audit all transitive dependencies rather than relying only on a top-level version constraint. 4. Verify that published artifacts correspond to reviewed source through trusted provenance, signed releases, or reproducible builds. 5. Install and run the package in a least-privilege virtual environment or isolated container. 6. Avoid exposing unrelated credentials to the installation and runtime environment. 7. Add dependency vulnerability and provenance scanning to the release process, and require review before updating pinned versions.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

External Transmission

Medium
Category
Data Exfiltration
Content
This skill communicates exclusively with:

- `https://api.igpt.ai/v1/recall/search` — the search endpoint
- `https://api.igpt.ai/v1/connectors/authorize` — only during initial datasource connection setup

No other external endpoints are contacted. No data is sent to any third-party service. The `igptai` PyPI package source is available at https://github.com/igptai/igptai-python.
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
This skill communicates exclusively with:

- `https://api.igpt.ai/v1/recall/search` — the search endpoint
- `https://api.igpt.ai/v1/connectors/authorize` — only during initial datasource connection setup

No other external endpoints are contacted. No data is sent to any third-party service. The `igptai` PyPI package source is available at https://github.com/igptai/igptai-python.
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Scope Creep

Low
Category
Excessive Agency
Content
This skill queries iGPT's `recall/search` endpoint to find relevant emails and threads from a user's connected inbox. The search engine:

- Combines semantic vector search (understands meaning) with keyword matching (catches exact terms)
- Searches across the user's full indexed email history (not limited to 90 days like some providers)
- Supports date range filtering for time-bounded queries
- Returns ranked results with relevance scoring
- Includes attachment references when present
Confidence
70% confidence
Finding
Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.