Back to skill

Security audit

Crewai

Security checks for vulnerabilities and agentic risk

Overview

This is a documentation-only CrewAI helper skill with purpose-aligned examples, but users should treat its package install, tool-use, and memory examples with normal sandboxing and privacy care.

Before installing or following the examples, use a virtual environment or container, pin and review dependency versions where possible, enable web/file/code tools only for the folders and tasks you intend, and keep CrewAI memory off or limited when working with secrets, credentials, personal data, or confidential documents.

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

Unpinned Third-Party Dependency Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:27
Vulnerability Type: Unpinned third-party dependencies
Risk Level: Medium

Vulnerable Code

bash
pip install crewai crewai-tools

Technical Analysis

The documented installation command does not constrain the versions of crewai or crewai-tools and does not verify package hashes. As a result, installations are not reproducible and will resolve whichever compatible releases are available from the configured package index at installation time.

If a package release, transitive dependency, or configured index is compromised, following this instruction could install attacker-controlled code. Python packages can execute build or installation logic, and the resulting libraries execute within applications that use them. The project does not provide a lockfile, hash-verified requirements file, reviewed version constraints, or an explicit trusted package source.

Attack Path

  1. An attacker compromises a referenced package, one of its transitive dependencies, or a package index configured on the victim's system.
  2. The attacker publishes or serves a malicious version that satisfies the unconstrained dependency request.
  3. A user follows the instruction in SKILL.md and runs pip install crewai crewai-tools.
  4. pip resolves and downloads the attacker-controlled package.
  5. Malicious package code executes during installation or when the installed library is imported and used.

Impact Assessment

Malicious dependency code could execute with the privileges of the user running pip or the CrewAI application. Depending on that user's permissions and environment, this could expose local files, credentials, API keys, Agent memory, and task data; alter application behavior; or execute arbitrary commands. The scope is normally limited to the installing user's access, but it may be broader if installation or application execution occurs under a privile ...[truncated 12 chars]

Remediation
View remediation

Remediation Suggestions

  • Pin all direct dependencies to reviewed versions and lock their transitive dependency graph.
  • Generate a requirements file containing cryptographic hashes and install it with:
    bash
    python -m pip install --require-hashes -r requirements.txt
    
  • Review dependency updates before regenerating the lockfile rather than automatically accepting the newest releases.
  • Use an explicit trusted package index and prevent unintended fallback to untrusted or privately configured indexes.
  • Perform installation inside a dedicated virtual environment or isolated container under a non-privileged account.
  • Add dependency vulnerability and provenance checks to the release process.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill name, description, and operating instructions are presented entirely in Chinese, with no indication that other languages are supported or that the user may choose their preferred language. This can constitute a language/locale policy violation when a skill effectively forces a specific language without opt-in.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill explicitly promotes external-capability tooling such as web scraping, file read/write via tools, API access, and code execution, but it does not provide any user-facing warnings, guardrails, or approval guidance. In an agent-orchestration skill, these capabilities can materially increase the risk of unsafe actions, unintended data exposure, or execution of harmful operations if users adopt the examples directly.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The examples enable memory at both agent and crew level and describe cross-task context retention, but they do not warn about retention of sensitive prompts, user data, or previously accessed content. In a multi-agent framework, persistent memory can silently accumulate and reuse sensitive information across tasks or sessions, creating privacy and data-governance risks.

Content

No source excerpt is available for this finding.