Back to skill

Security audit

Nex.ai

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a real Nex API helper, but it gives an agent direct authenticated ability to change and delete CRM/context-graph data without clear confirmation safeguards.

Install only if you want your agent to access Nex with the scopes you grant. Prefer a narrowly scoped API key, avoid schema/delete scopes unless needed, require manual confirmation before any DELETE/PATCH/PUT/POST that changes important data, and do not submit confidential transcripts or regulated data without organizational approval.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (25)

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding
The declared purpose suggests a contextual CRM helper, but the skill actually documents a broad authenticated API client capable of creating, modifying, and deleting many remote resources. This mismatch increases the chance that an agent or user triggers destructive or high-privilege behavior under the assumption the skill is mainly read/query oriented.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
Delete an object definition and all its records.

**Endpoint**: `DELETE /v1/objects/{slug}`
**Scope**: `object.write`

```json
Confidence
90% confidence
Finding
This endpoint deletes an object definition and all of its records, making it an inherently destructive capability. In an agent skill context, exposing such operations without strong guardrails creates a real risk of accidental or prompt-induced data loss against the connected workspace.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```json
{
  "tool": "exec",
  "command": "bash {baseDir}/scripts/nex-api.sh DELETE /v1/objects/project",
  "timeout": 120
}
```
Confidence
89% confidence
Finding
The example provides a ready-to-run shell command for deleting an object, which lowers the barrier for accidental or manipulated execution. Because the wrapper is authenticated with the user's API key, misuse directly affects real production data rather than a sandbox.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
Remove an attribute from an object type.

**Endpoint**: `DELETE /v1/objects/{slug}/attributes/{attr_id}`
**Scope**: `object.write`

```json
Confidence
86% confidence
Finding
Deleting attribute definitions can break schemas, automation, and downstream consumers, and may effectively orphan or invalidate stored data. The risk is elevated in an agent setting because an LLM may infer or hallucinate identifiers and still attempt a destructive call.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```json
{
  "tool": "exec",
  "command": "bash {baseDir}/scripts/nex-api.sh DELETE /v1/objects/project/attributes/456",
  "timeout": 120
}
```
Confidence
86% confidence
Finding
The concrete command example makes destructive schema changes operationally trivial. If selected by an agent due to ambiguous prompts, it could remove important fields and disrupt records or integrations immediately.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
Permanently delete a record.

**Endpoint**: `DELETE /v1/records/{record_id}`
**Scope**: `record.write`

```json
Confidence
91% confidence
Finding
Permanent record deletion is a sensitive capability with clear integrity and availability implications. In a natural-language-driven environment, unintended deletions can result from prompt injection, misunderstanding, or overly broad automation logic.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```json
{
  "tool": "exec",
  "command": "bash {baseDir}/scripts/nex-api.sh DELETE /v1/records/789",
  "timeout": 120
}
```
Confidence
90% confidence
Finding
The example command demonstrates immediate deletion of a specific record using authenticated shell execution. This is dangerous because it normalizes direct destructive execution from prompt-driven workflows without a compensating verification step.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
Remove a relationship definition.

**Endpoint**: `DELETE /v1/relationships/{id}`
**Scope**: `relationship.write`

```json
Confidence
83% confidence
Finding
Removing relationship definitions can alter data semantics and break graph-based reasoning or application logic. While less catastrophic than mass record deletion, it can still cause substantial integrity issues in organizational context data.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```json
{
  "tool": "exec",
  "command": "bash {baseDir}/scripts/nex-api.sh DELETE /v1/relationships/789",
  "timeout": 120
}
```
Confidence
82% confidence
Finding
The runnable deletion example reduces friction for modifying graph structure in production. In context-graph systems, deleting relationships can silently degrade later AI answers and business workflows.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
Remove a relationship between two records.

**Endpoint**: `DELETE /v1/records/{record_id}/relationships/{relationship_id}`
**Scope**: `relationship.write`

```json
Confidence
82% confidence
Finding
Deleting relationship instances can change business context and history in ways that affect downstream decisions and recommendations. Because the skill is positioned as a context assistant, these operations can silently distort the graph the agent relies on.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```json
{
  "tool": "exec",
  "command": "bash {baseDir}/scripts/nex-api.sh DELETE /v1/records/1001/relationships/5001",
  "timeout": 120
}
```
Confidence
81% confidence
Finding
This example turns relationship removal into a copy-paste shell action against authenticated infrastructure. That increases risk of accidental use or misuse by an agent reacting to adversarial or ambiguous instructions.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
Delete a list definition.

**Endpoint**: `DELETE /v1/lists/{id}`
**Scope**: `object.write`

```json
Confidence
84% confidence
Finding
Deleting list definitions can disrupt workflows, segmentation, and access patterns. Although not always irreversible at the platform level, it is still a destructive administrative action exposed through a prompt-driven shell interface.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```json
{
  "tool": "exec",
  "command": "bash {baseDir}/scripts/nex-api.sh DELETE /v1/lists/300",
  "timeout": 120
}
```
Confidence
83% confidence
Finding
The skill includes a concrete shell command for deleting a list, making the action easy to trigger. In an agent environment, such examples can be reproduced without adequate human scrutiny.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
Remove a record from a list.

**Endpoint**: `DELETE /v1/lists/{id}/records/{record_id}`
**Scope**: `record.write`

```json
Confidence
80% confidence
Finding
Removing records from lists affects targeting, reporting, and operational state, and may be performed unintentionally if list or record IDs are mishandled. The capability is less severe than permanent deletion but still changes remote state in a potentially business-impacting way.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```json
{
  "tool": "exec",
  "command": "bash {baseDir}/scripts/nex-api.sh DELETE /v1/lists/300/records/4001",
  "timeout": 120
}
```
Confidence
80% confidence
Finding
The ready-made command enables direct mutation of list membership using shell execution and an API key. This creates risk of accidental data-management changes when the skill is invoked broadly or prompted imprecisely.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
Archive a task (soft delete).

**Endpoint**: `DELETE /v1/tasks/{task_id}`
**Scope**: `task.write`

```json
Confidence
80% confidence
Finding
Task deletion is described as archival rather than permanent destruction, so the impact is lower than other delete endpoints. However, it still permits state-changing actions that can suppress reminders or operational follow-up if triggered unintentionally.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```json
{
  "tool": "exec",
  "command": "bash {baseDir}/scripts/nex-api.sh DELETE /v1/tasks/800",
  "timeout": 120
}
```
Confidence
80% confidence
Finding
The concrete archive command makes it easy for an agent to change task state without verifying business intent. Even soft deletes can disrupt workflows and accountability if executed in error.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
Archive a note (soft delete).

**Endpoint**: `DELETE /v1/notes/{note_id}`
**Scope**: `note.write`

```json
Confidence
80% confidence
Finding
Note deletion is a softer-risk operation than schema or record deletion, but it still changes potentially important organizational memory. In a context-management product, removing notes can degrade historical traceability and AI recall.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```json
{
  "tool": "exec",
  "command": "bash {baseDir}/scripts/nex-api.sh DELETE /v1/notes/900",
  "timeout": 120
}
```
Confidence
80% confidence
Finding
The example demonstrates direct authenticated archival of a note, which can be misused or triggered accidentally by natural-language workflows. While the action is likely reversible, it still affects integrity of the context corpus.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The README explicitly states that the skill builds a context graph from conversations and shares organizational context with agents, but it does not warn users about the privacy, confidentiality, or third-party data-sharing implications. In a skill designed to ingest transcripts and business relationship data, that omission can cause users to send sensitive personal or corporate information to an external service without informed consent or appropriate governance review.

Session Persistence

Medium
Category
Rogue Agent
Content
1. Log in to [Nex](https://app.nex.ai)
2. Go to **Settings > Developer**
3. Create a new API key with the following scopes:
   - `record.read` - For querying context
   - `record.write` - For processing text
Confidence
60% confidence
Finding
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Lp3

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding
The skill exposes shell-based execution patterns throughout the document but does not declare any explicit tool scope such as allowed-tools or permissions. That weakens platform-level containment and makes it easier for the skill to be invoked with broader execution capability than users or reviewers may expect.

Vague Triggers

Medium
Confidence
86% confidence
Finding
The description is broad enough to match many generic requests involving context, records, notes, contacts, or insights. Over-broad activation increases the risk that an agent selects this skill unnecessarily, exposing sensitive organizational data or performing unintended remote actions.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The ProcessText feature encourages uploading conversations and meeting notes to a remote API without an explicit consent, sensitivity, or data-handling gate. In practice this can cause an agent to transmit confidential internal discussions or personal data to the SaaS backend without the user fully appreciating that external disclosure is happening.

External Transmission

Medium
Category
Data Exfiltration
Content
;;
esac

# --- Build curl arguments ---
CURL_ARGS=(
  -s
  -w '\n%{http_code}'
Confidence
70% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Static analysis

No suspicious patterns detected.