Back to skill

Security audit

Sendivent

Security checks for vulnerabilities and agentic risk

Overview

This skill is a legitimate Sendivent API reference, but it exposes production messaging, deletion, and webhook-secret workflows without enough safeguards.

Review this skill before installing if you will use it with production credentials. Prefer sandbox keys, pin install/package versions, avoid logging webhook signing secrets, and require explicit confirmation plus a lookup/read-back step before deleting contacts, removing push tokens, deleting webhooks, or sending real notifications.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T08 · Insecure Dependencies

Warning
Location
references/sdk-guide.md:10
Finding

Unpinned Third-Party Packages and Skill Content

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
references/sdk-guide.md:258
Finding

Webhook Signing Secret Exposed Through Process Logs

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (15)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
93% confidence
Finding

DELETE /v1/contacts/{identifier} is a destructive endpoint that accepts a flexible identifier and is presented without guardrails such as confirmation, validation constraints, or safer lookup patterns. In an agent workflow, ambiguous or attacker-influenced parameters could cause deletion of the wrong contact or intentional removal of records, resulting in irreversible data loss.

Content

Scanner excerpt · SKILL.md (reported line 207)May include surrounding context.

md
### Delete contact

`DELETE /v1/contacts/{identifier}`

Hard delete (GDPR compliant). Returns `{ "success": true, "deleted": true }`.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
81% confidence
Finding

DELETE /v1/contacts/{identifier}/push-tokens removes a device token based on a user-supplied identifier and token value, with no documented validation or confirmation safeguards. In agent use, parameter confusion or malicious prompting could unregister the wrong device, causing message delivery disruption or denial of service for push notifications.

Content

Scanner excerpt · SKILL.md (reported line 217)May include surrounding context.

md
`POST /v1/contacts/{identifier}/push-tokens` — Register token: `{ "token": "ExponentPushToken[...]" }`

`DELETE /v1/contacts/{identifier}/push-tokens` — Remove token: `{ "token": "..." }`

---

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

DELETE /v1/webhooks/{uuid} removes webhook configuration and is exposed in a skill that may be driven by natural-language requests, yet the documentation provides no warning, approval step, or operational safeguards. Deleting a webhook can silently disable delivery-status monitoring and downstream automations, creating significant integrity and availability impact.

Content

Scanner excerpt · SKILL.md (reported line 358)May include surrounding context.

md
- `GET /v1/webhooks` — Get webhook config
- `PATCH /v1/webhooks/{uuid}` — Update (url, enabled_events, is_active)
- `DELETE /v1/webhooks/{uuid}` — Remove webhook

### Payload format

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/api-guide.md (reported line 144)May include surrounding context.

md
Update existing contact. Only provided fields are changed.

### DELETE /v1/contacts/{identifier}

Hard delete (GDPR). Returns `{ "success": true, "deleted": true }`.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/api-guide.md (reported line 152)May include surrounding context.

md
Body: `{ "token": "ExponentPushToken[...]" }`

### DELETE /v1/contacts/{identifier}/push-tokens

Body: `{ "token": "..." }`

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/api-guide.md (reported line 266)May include surrounding context.

md
Update: `url`, `enabled_events`, `is_active`, `description`.

### DELETE /v1/webhooks/{uuid}

Soft delete webhook endpoint.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger list includes broad phrases like 'notification api' and 'sendivent api' that could cause the skill to activate for generic notification-related requests rather than explicit user intent to use this product. Over-broad invocation increases the chance the agent routes sensitive messaging, contact, or webhook tasks to this skill unexpectedly, which is especially risky because the skill exposes outbound communication and deletion operations.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The skill enables outbound multi-channel messaging using contact identifiers, payload data, and third-party providers, but does not explicitly warn that personal data may be transmitted to external services such as email, SMS, Slack, WhatsApp, or Telegram providers. This omission can lead users or agents to disclose PII without sufficient awareness, consent, or data-handling controls.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill documents hard deletion of contacts and mentions GDPR compliance, but does not prominently warn that the operation is permanent and may remove user data irreversibly. In an agent setting, omission of an explicit destructive-action warning raises the risk of accidental deletion through automation or ambiguous user requests.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The markdown documents a DELETE /v1/contacts/{identifier} endpoint as a hard delete under GDPR, which is a destructive and potentially irreversible operation affecting user data. There is no accompanying warning about permanence, recovery limitations, or the need for caution before use.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/sdk-guide.md (reported line 246)May include surrounding context.

Webhooks are managed via the REST API. Use fetch or any HTTP client:

typescript
const response = await fetch("https://api.sendivent.com/v1/webhooks", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.SENDIVENT_API_KEY}`,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/sdk-guide.md (reported line 246)May include surrounding context.

Webhooks are managed via the REST API. Use fetch or any HTTP client:

typescript
const response = await fetch("https://api.sendivent.com/v1/webhooks", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.SENDIVENT_API_KEY}`,

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The example prints data.webhook.signing_secret and tells the reader to save it, but does not warn that this value is a secret that must be stored securely and never logged or exposed. In documentation, this omission can lead developers to copy insecure handling patterns, causing webhook verification secrets to leak and enabling forged webhook delivery events.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The GET /v1/deliveries/{uuid}/trace endpoint is described as returning a full delivery trace with content snapshot, which may expose message contents or other sensitive delivery metadata. The documentation does not warn users that this endpoint can reveal potentially sensitive notification content and should be handled accordingly.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.