Back to skill

Security audit

iGPT email search

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed email-search integration that uses an iGPT API key and connected email account to retrieve matching emails, with no evidence of hidden execution or destructive behavior.

Install only if you are comfortable granting iGPT read-only access to the connected email account and sending search queries through its API. Use a virtual environment, prefer a pinned reviewed SDK version, and use a revocable API key with the minimum needed access.

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:48
Finding
Unpinned Third-Party Python Dependency## Vulnerability Details **File Location**: `SKILL.md`, lines 48-54 **Vulnerability Type**: Unpinned third-party package installation **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 setup instructions install `igptai` from PyPI without an exact version constraint or an integrity hash. Consequently, the installed code depends on whichever release the package index resolves at installation time rather than the version reviewed when this Skill was published. Python packages may execute code during installation or import. In the documented workflow, the dependency receives the `IGPT_API_KEY` and processes queries and results associated with connected email accounts. If the package publisher, distribution account, or package-index delivery chain were compromised, a malicious release could execute with the installing user's operating-system privileges. No evidence demonstrates that the current `igptai` package is malicious. The finding concerns the unsafe, non-reproducible dependency installation procedure and its supply-chain exposure. ### Attack Path 1. An attacker compromises the package publisher, its PyPI account, or another relevant distribution component. 2. The attacker publishes a malicious release under the legitimate `igptai` package name. 3. A user follows the documented `pip install igptai` command. 4. Because no version or hash is specified, `pip` resolves and installs the attacker-controlled release. 5. Malicious package code executes during installation or when imported by the documented Python workflow. 6. The code may read process-accessible se ...[truncated 750 chars]
Remediation
## Remediation Suggestions 1. Pin the dependency to an exact, reviewed version, for example `igptai==X.Y.Z`. 2. Supply and verify cryptographic hashes using a locked requirements file and `pip install --require-hashes`. 3. Generate the lock file from a trusted environment and review dependency changes before updating it. 4. Verify package provenance, publisher identity, release signatures or attestations where available, and the expected source repository. 5. Install and execute the SDK in an isolated virtual environment or container under a non-privileged account. 6. Expose only the required API credential to the process and avoid placing unrelated secrets in the same environment. 7. Use a minimally scoped, revocable API key and establish a rotation and revocation process for suspected compromise. 8. Add automated dependency scanning and controlled update review to detect compromised or vulnerable releases.
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.