agent orchestration
CrewAI is an open-source Python framework for building multi-agent AI systems using either autonomous Crews (teams of role-based agents) or event-driven Flows (precise workflow automations). It provides high-level abstractions and low-level APIs to combine agent collaboration with fine-grained control over execution paths.
Build teams of specialized AI agents that work autonomously together on complex tasks Create event-driven workflows with precise control over conditional branching and state management Combine Crews and Flows to balance autonomous decision-making with production-ready process control Integrate AI agents into existing Python applications with clean, maintainable code structure Deploy agentic automation for use cases ranging from simple tasks to enterprise-grade workflows ⚠ REVIEW
Risk score 60/100
52 HIGH✓ 64 MEDIUM 22 LOW 1 INFO
✓ CRITICAL/HIGH reflect AI-verified findings (false positives excluded) · MEDIUM/LOW/INFO are unverified scanner output
AI-verified (CRITICAL/HIGH): 52 likely real (100%) 7 false positive — excluded from CRITICAL/HIGH count above
Findings by checker · 4 high-signal, 1 mostly false-positive (hidden by default)
CHK-129 43 findings 38 likely 5 false positive
12% FP CHK-047 6 findings 6 likely
0% FP CHK-099 6 findings 5 likely 1 false positive
17% FP CHK-083 3 findings 3 likely
0% FP ▼ Show 1 checker that are mostly false positives (1 findings) 139 findings click to expand
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/tavily_extractor_tool/tavily_extractor_tool.py
AI: likely real likely ▼
CHK-047 Potential SSRF — user-controlled URL passed to HTTP client in lib/crewai-core/src/crewai_core/auth/oauth2.py
lib/crewai-core/src/crewai_core/auth/oauth2.py
AI: likely real likely ▼
CHK-047 Potential SSRF — user-controlled URL passed to HTTP client in lib/cli/src/crewai_cli/remote_template/main.py
lib/cli/src/crewai_cli/remote_template/main.py
AI: likely real possible ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/firecrawl_crawl_website_tool/firecrawl_crawl_website_tool.py
AI: likely real likely ▼
CHK-083 Potential path traversal — user-controlled path in file operation: lib/crewai-tools/src/crewai_tools/tools/file_writer_tool/file_writer_tool.py
lib/crewai-tools/src/crewai_tools/tools/file_writer_tool/file_writer_tool.py
AI: likely real possible ▼
CHK-083 Potential path traversal — user-controlled path in file operation: lib/crewai-tools/src/crewai_tools/security/safe_path.py
lib/crewai-tools/src/crewai_tools/security/safe_path.py
AI: likely real possible ▼
CHK-083 Potential path traversal — user-controlled path in file operation: lib/crewai-tools/src/crewai_tools/tools/directory_read_tool/directory_read_tool.py
lib/crewai-tools/src/crewai_tools/tools/directory_read_tool/directory_read_tool.py
AI: likely real possible ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/exa_tools/exa_search_tool.py
AI: likely real likely ▼
CHK-099 Potential IDOR — 'task_id' accessed without ownership check
lib/crewai/src/crewai/tools/tool_usage.py
AI: likely real possible ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/contextualai_create_agent_tool/contextual_create_agent_tool.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — token: str
lib/crewai-tools/src/crewai_tools/tools/invoke_crewai_automation_tool/invoke_crewai_automation_tool.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — password: str
lib/crewai-core/src/crewai_core/settings.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/firecrawl_scrape_website_tool/firecrawl_scrape_website_tool.py
AI: likely real likely ▼
CHK-047 Potential SSRF — user-controlled URL passed to HTTP client in lib/crewai/src/crewai/experimental/skills/registry.py
lib/crewai/src/crewai/experimental/skills/registry.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — token: str
lib/crewai-tools/src/crewai_tools/aws/bedrock/knowledge_base/retriever_tool.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/firecrawl_search_tool/firecrawl_search_tool.py
AI: likely real likely ▼
CHK-099 Potential IDOR — 'entity_id' accessed without ownership check
lib/crewai-tools/src/crewai_tools/tools/composio_tool/composio_tool.py
AI: likely real possible ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/ai_mind_tool/ai_mind_tool.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/hyperbrowser_load_tool/hyperbrowser_load_tool.py
AI: likely real likely ▼
CHK-099 Potential IDOR — 'task_id' accessed without ownership check
lib/crewai/src/crewai/a2a/updates/polling/handler.py
AI: likely real possible ▼
CHK-099 Potential IDOR — 'task_id' accessed without ownership check
lib/crewai/src/crewai/a2a/updates/streaming/handler.py
AI: likely real possible ▼
CHK-099 Potential IDOR — 'task_id' accessed without ownership check
lib/crewai/src/crewai/a2a/updates/push_notifications/handler.py
AI: likely real possible ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/tavily_search_tool/tavily_search_tool.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/scrapegraph_scrape_tool/scrapegraph_scrape_tool.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/contextualai_query_tool/contextual_query_tool.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/qdrant_vector_search_tool/qdrant_search_tool.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/contextualai_rerank_tool/contextual_rerank_tool.py
AI: likely real likely ▼
CHK-047 Potential SSRF — user-controlled URL passed to HTTP client in lib/crewai-files/src/crewai_files/core/sources.py
lib/crewai-files/src/crewai_files/core/sources.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/spider_tool/spider_tool.py
AI: likely real likely ▼
CHK-047 Potential SSRF — user-controlled URL passed to HTTP client in lib/cli/src/crewai_cli/experimental/skills/main.py
lib/cli/src/crewai_cli/experimental/skills/main.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/brightdata_tool/brightdata_unlocker.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — token: str
lib/crewai-tools/src/crewai_tools/tools/github_search_tool/github_search_tool.py
AI: likely real likely ▼
CHK-047 Potential SSRF — user-controlled URL passed to HTTP client in lib/cli/src/crewai_cli/model_catalog.py
lib/cli/src/crewai_cli/model_catalog.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/brightdata_tool/brightdata_serp.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — "API_KEY"
lib/crewai/src/crewai/mcp/config.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — token: str
lib/crewai/src/crewai/a2a/auth/server_schemes.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — password: str
lib/crewai/src/crewai/a2a/utils/task.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai/src/crewai/rag/embeddings/providers/voyageai/types.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai/src/crewai/rag/embeddings/providers/cohere/types.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai/src/crewai/rag/embeddings/providers/google/types.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai/src/crewai/rag/embeddings/providers/microsoft/types.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai/src/crewai/rag/embeddings/providers/huggingface/huggingface_provider.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai/src/crewai/rag/embeddings/providers/roboflow/roboflow_provider.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai/src/crewai/rag/embeddings/providers/jina/types.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai/src/crewai/rag/embeddings/providers/jina/jina_provider.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/browserbase_load_tool/browserbase_load_tool.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai/src/crewai/rag/embeddings/providers/openai/types.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/rag/embedding_service.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — token: str
lib/crewai-tools/src/crewai_tools/tools/generate_crewai_automation_tool/generate_crewai_automation_tool.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/scrapfly_scrape_website_tool/scrapfly_scrape_website_tool.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/daytona_sandbox_tool/daytona_base_tool.py
AI: likely real likely ▼
CHK-129 Sensitive field in return type/schema — api_key: str
lib/crewai-tools/src/crewai_tools/tools/contextualai_parse_tool/contextual_parse_tool.py
AI: likely real likely ▼
CHK-125a os.unlink() — file deletion — no scope constraint in loaders/docx_loader.py
lib/crewai-tools/src/crewai_tools/rag/loaders/docx_loader.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in crewai_devtools/docs_check.py
lib/devtools/src/crewai_devtools/docs_check.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in crewai_devtools/cli.py
lib/devtools/src/crewai_devtools/cli.py
possible ▼
CHK-125a os.unlink() — file deletion — no scope constraint in crewai_core/token_manager.py
lib/crewai-core/src/crewai_core/token_manager.py
possible ▼
CHK-125a os.unlink() — file deletion — no scope constraint in crewai_core/settings.py
lib/crewai-core/src/crewai_core/settings.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in firecrawl_search_tool/firecrawl_search_tool.py
lib/crewai-tools/src/crewai_tools/tools/firecrawl_search_tool/firecrawl_search_tool.py
possible ▼
CHK-042 Generic API Key Assignment detected in lib/crewai-tools/src/crewai_tools/tools/tavily_search_tool/README.md [test context]
lib/crewai-tools/src/crewai_tools/tools/tavily_search_tool/README.md
possible ▼
CHK-102 Direct SQL execution — may bypass ORM-level access controls
lib/crewai-tools/src/crewai_tools/tools/snowflake_search_tool/snowflake_search_tool.py
possible ▼
CHK-102 Direct SQL execution — may bypass ORM-level access controls
lib/crewai-tools/src/crewai_tools/tools/singlestore_search_tool/singlestore_search_tool.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in pyproject.toml
pyproject.toml
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in workflows/publish.yml
.github/workflows/publish.yml
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in utilities/reset_memories.py
lib/crewai/src/crewai/utilities/reset_memories.py
possible ▼
CHK-125a shutil.rmtree() — recursive directory deletion — no scope constraint in skills/cache.py
lib/crewai/src/crewai/experimental/skills/cache.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in transports/stdio.py
lib/crewai/src/crewai/mcp/transports/stdio.py
possible ▼
CHK-125a os.remove() — file deletion — no scope constraint in provider/json_provider.py
lib/crewai/src/crewai/state/provider/json_provider.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in tracing/utils.py
lib/crewai/src/crewai/events/listeners/tracing/utils.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in crewai_cli/run_declarative_flow.py
lib/cli/src/crewai_cli/run_declarative_flow.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in crewai_cli/git.py
lib/cli/src/crewai_cli/git.py
possible ▼
CHK-125a shutil.rmtree() — recursive directory deletion — no scope constraint in crewai_cli/create_json_crew.py
lib/cli/src/crewai_cli/create_json_crew.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in crewai_cli/run_crew.py
lib/cli/src/crewai_cli/run_crew.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in crewai_cli/evaluate_crew.py
lib/cli/src/crewai_cli/evaluate_crew.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in crewai_cli/replay_from_task.py
lib/cli/src/crewai_cli/replay_from_task.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in crewai_cli/cli.py
lib/cli/src/crewai_cli/cli.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in crewai_cli/train_crew.py
lib/cli/src/crewai_cli/train_crew.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in crewai_cli/install_crew.py
lib/cli/src/crewai_cli/install_crew.py
possible ▼
CHK-125a os.remove() — file deletion — no scope constraint in crewai_cli/checkpoint_cli.py
lib/cli/src/crewai_cli/checkpoint_cli.py
possible ▼
CHK-125a shutil.rmtree() — recursive directory deletion — no scope constraint in crewai_cli/create_crew.py
lib/cli/src/crewai_cli/create_crew.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in crewai_cli/kickoff_flow.py
lib/cli/src/crewai_cli/kickoff_flow.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in crewai_cli/plot_flow.py
lib/cli/src/crewai_cli/plot_flow.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in tools/main.py
lib/cli/src/crewai_cli/tools/main.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in triggers/main.py
lib/cli/src/crewai_cli/triggers/main.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in deploy/validate.py
lib/cli/src/crewai_cli/deploy/validate.py
possible ▼
CHK-125a shutil.rmtree() — recursive directory deletion — no scope constraint in deploy/archive.py
lib/cli/src/crewai_cli/deploy/archive.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in deploy/main.py
lib/cli/src/crewai_cli/deploy/main.py
possible ▼
CHK-125a shutil.rmtree() — recursive directory deletion — no scope constraint in skills/main.py
lib/cli/src/crewai_cli/experimental/skills/main.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in adapters/mcp_adapter.py
lib/crewai-tools/src/crewai_tools/adapters/mcp_adapter.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in oxylabs_amazon_search_scraper_tool/oxylabs_amazon_search_scraper_tool.py
lib/crewai-tools/src/crewai_tools/tools/oxylabs_amazon_search_scraper_tool/oxylabs_amazon_search_scraper_tool.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in mongodb_vector_search_tool/vector_search.py
lib/crewai-tools/src/crewai_tools/tools/mongodb_vector_search_tool/vector_search.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in scrapfly_scrape_website_tool/scrapfly_scrape_website_tool.py
lib/crewai-tools/src/crewai_tools/tools/scrapfly_scrape_website_tool/scrapfly_scrape_website_tool.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in snowflake_search_tool/snowflake_search_tool.py
lib/crewai-tools/src/crewai_tools/tools/snowflake_search_tool/snowflake_search_tool.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in patronus_eval_tool/patronus_local_evaluator_tool.py
lib/crewai-tools/src/crewai_tools/tools/patronus_eval_tool/patronus_local_evaluator_tool.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in singlestore_search_tool/singlestore_search_tool.py
lib/crewai-tools/src/crewai_tools/tools/singlestore_search_tool/singlestore_search_tool.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in browserbase_load_tool/browserbase_load_tool.py
lib/crewai-tools/src/crewai_tools/tools/browserbase_load_tool/browserbase_load_tool.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in couchbase_tool/couchbase_tool.py
lib/crewai-tools/src/crewai_tools/tools/couchbase_tool/couchbase_tool.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in serpapi_tool/serpapi_base_tool.py
lib/crewai-tools/src/crewai_tools/tools/serpapi_tool/serpapi_base_tool.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in multion_tool/multion_tool.py
lib/crewai-tools/src/crewai_tools/tools/multion_tool/multion_tool.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in oxylabs_universal_scraper_tool/oxylabs_universal_scraper_tool.py
lib/crewai-tools/src/crewai_tools/tools/oxylabs_universal_scraper_tool/oxylabs_universal_scraper_tool.py
possible ▼
CHK-125 subprocess module — arbitrary shell execution — no scope constraint in linkup/linkup_search_tool.py
lib/crewai-tools/src/crewai_tools/tools/linkup/linkup_search_tool.py
possible ▼
▼ Show 7 false positives (5% of this view) Last scanned: Jul 12, 2026
More servers
google-gemini/gemini-cli 85
An open-source AI agent that brings the power of Gemini directly into your terminal.
106k★
skypilot-org/skypilot 85
obra/superpowers 85
Foundational skill pack by Jesse Vincent now in anthropics/claude-plugins-official. Includes ffuf web-fuzzing/pentest skill. Partial analysis done — full hook and plugin inspection pending. tier=T2
191k★
Significant-Gravitas/AutoGPT 85
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.
186k★
nanocoai/nanoclaw 85
A lightweight alternative to OpenClaw that runs in containers for security. Connects to WhatsApp, Telegram, Slack, Discord, Gmail and other messaging apps,, has memory, scheduled jobs, and runs directly on Anthropic's Agents SDK
30k★
google-gemini/gemini-cli 85
An open-source AI agent that brings the power of Gemini directly into your terminal.
106k★
Scan your entire org's MCP deployment
2,500+ repos pre-scored. 22% carry CRITICAL findings.