Back to skill

Security audit

Pipedrive Toolkit Free

Security checks across malware telemetry and agentic risk

Overview

This skill is a read-only Pipedrive lookup helper, but it sends sensitive CRM data through a third-party proxy and asks for broader local execution permissions than the task needs.

Install only if you trust api.maton.ai/MATON to process your Pipedrive data and have reviewed its privacy, logging, and retention terms. Use the narrowest possible API/OAuth scopes, avoid broad list or pagination queries unless needed, and treat the free edition as read-only despite the ambiguous generic create/export/save wording.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (22)

Intent-Code Divergence

Medium
Confidence
95% confidence
Finding
The skill repeatedly markets itself as a free, read-only Pipedrive query tool, but the capability sections explicitly say it supports create/modify/export/save/import operations via generic parameters. This mismatch can mislead an agent or operator into granting broader trust and may enable unintended data modification or data exfiltration workflows if an executor interprets those instructions literally.

Description-Behavior Mismatch

Medium
Confidence
97% confidence
Finding
The declared toolset includes read, exec, glob, and grep, which grants broad filesystem inspection and arbitrary command execution despite the skill being presented as a simple CRM lookup tool. This violates least privilege and creates a large abuse surface where the skill could be used to run local commands, inspect secrets, or access unrelated files under the pretense of performing read-only CRM queries.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
Arbitrary command execution is unnecessary for a read-only Pipedrive lookup workflow and substantially increases the chance of command abuse, secret discovery, and unintended system interaction. In an agent setting, any generic exec capability can be repurposed beyond the documented CRM use case, especially when user input may influence constructed commands.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The examples instruct authenticated requests that transmit CRM data to an external proxy service using a bearer token, but the documentation does not clearly warn about privacy, third-party processing, logging, or data handling implications. In a CRM context, this can expose sensitive customer and sales information to an external service without sufficiently informed consent.

External Transmission

Medium
Category
Data Exfiltration
Content
# 1. 列出所有open商机
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/deals?status=open')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
93% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 2. 搜索联系人
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/persons/search?term=john')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
93% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 3. 查看管道列表
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/pipelines')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
90% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 列出所有商机
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/deals')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
94% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# status: open, won, lost, deleted, all_not_deleted
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/deals?status=open&limit=50')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
94% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 查看指定商机详情
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/deals/123')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
94% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 搜索商机
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/deals/search?term=enterprise')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
93% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 列出联系人
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/persons?limit=50')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
94% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 查看联系人详情
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/persons/123')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
94% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 搜索联系人
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/persons/search?term=john')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
94% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 列出组织
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/organizations')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
92% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 查看组织详情
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/organizations/456')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
92% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 列出活动
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/activities')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
93% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 按类型过滤活动
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/activities?type=call')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
92% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 按完成状态过滤
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/activities?done=0')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
92% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 列出所有管道
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/pipelines')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
90% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 列出阶段(按管道过滤)
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/stages?pipeline_id=1')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
90% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
# 使用start和limit参数分页
python -c "
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/deals?start=0&limit=50&sort=add_time%20DESC')
req.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
"
Confidence
94% confidence
Finding
https://api.maton.ai/

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.