Back to skill

Security audit

go-klavis

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed Go client guide for Klavis AI, with broad remote API capabilities that are documented and scoped to user-requested Go integrations.

Install this only for Go projects that intentionally integrate with Klavis AI. Treat KLAVIS_API_KEY as sensitive, choose the correct US or EU host, verify MCP server URLs and tool arguments, and require explicit user approval before calling methods that delete users, change auth, create/delete instances, run sandboxes, or invoke downstream tools.

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
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

MCP Config Access

High
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

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

md
## When to use

- Go code needs to discover MCP servers, list or call tools, or manage Klavis instances, Strata or user integrations.
- Go code needs Klavis OAuth, sandbox or universe REST endpoints.
- The project already imports `github.com/psyb0t/go-klavis`.

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/setup.md (reported line 55)May include surrounding context.

md
| `CallServerToolWithResponse` | `POST /mcp-server/call-tool` |
| `CreateServerInstanceWithResponse` | `POST /mcp-server/instance/create` |
| `CreateSelfHostedServerInstanceWithResponse` | `POST /mcp-server/self-hosted/instance/create` |
| `GetServerInstanceWithResponse`, `UpdateServerInstanceWithResponse`, `DeleteServerInstanceWithResponse` | `GET`, `PATCH`, `DELETE /mcp-server/instance/{instanceId}` |
| `SetInstanceAuthWithResponse` | `POST /mcp-server/instance/set-auth` |
| `GetInstanceAuthDataWithResponse`, `DeleteInstanceAuthWithResponse` | `GET`, `DELETE /mcp-server/instance/{instanceId}/auth` |
| `GetAllUsersWithResponse` | `GET /user/` |

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/setup.md (reported line 57)May include surrounding context.

md
| `CreateSelfHostedServerInstanceWithResponse` | `POST /mcp-server/self-hosted/instance/create` |
| `GetServerInstanceWithResponse`, `UpdateServerInstanceWithResponse`, `DeleteServerInstanceWithResponse` | `GET`, `PATCH`, `DELETE /mcp-server/instance/{instanceId}` |
| `SetInstanceAuthWithResponse` | `POST /mcp-server/instance/set-auth` |
| `GetInstanceAuthDataWithResponse`, `DeleteInstanceAuthWithResponse` | `GET`, `DELETE /mcp-server/instance/{instanceId}/auth` |
| `GetAllUsersWithResponse` | `GET /user/` |
| `GetUserIntegrationsWithResponse` | `GET /user/{userId}/integrations` |
| `GetUserByUserIdWithResponse`, `DeleteUserByUserIdWithResponse` | `GET`, `DELETE /user/{userId}` |

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/setup.md (reported line 60)May include surrounding context.

md
| `GetInstanceAuthDataWithResponse`, `DeleteInstanceAuthWithResponse` | `GET`, `DELETE /mcp-server/instance/{instanceId}/auth` |
| `GetAllUsersWithResponse` | `GET /user/` |
| `GetUserIntegrationsWithResponse` | `GET /user/{userId}/integrations` |
| `GetUserByUserIdWithResponse`, `DeleteUserByUserIdWithResponse` | `GET`, `DELETE /user/{userId}` |
| `GetStrataAuthWithResponse`, `DeleteStrataAuthWithResponse` | `GET`, `DELETE /mcp-server/strata/{strataId}/auth/{serverName}` |

Request bodies include `CreateServerRequest`, `ListToolsRequest` and `CallToolRequest`. `CreateServerRequest` requires `ServerName` and `UserId`; `IsReadOnly` defaults to false when omitted. Tool requests require `ServerUrl`; calls also require `ToolName` and accept `ToolArgs`.

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/setup.md (reported line 61)May include surrounding context.

md
| `GetAllUsersWithResponse` | `GET /user/` |
| `GetUserIntegrationsWithResponse` | `GET /user/{userId}/integrations` |
| `GetUserByUserIdWithResponse`, `DeleteUserByUserIdWithResponse` | `GET`, `DELETE /user/{userId}` |
| `GetStrataAuthWithResponse`, `DeleteStrataAuthWithResponse` | `GET`, `DELETE /mcp-server/strata/{strataId}/auth/{serverName}` |

Request bodies include `CreateServerRequest`, `ListToolsRequest` and `CallToolRequest`. `CreateServerRequest` requires `ServerName` and `UserId`; `IsReadOnly` defaults to false when omitted. Tool requests require `ServerUrl`; calls also require `ToolName` and accept `ToolArgs`.

Static analysis

No suspicious patterns detected.