Back to skill

Security audit

ShipStation Orders

Security checks for vulnerabilities and agentic risk

Overview

This skill behaves like a disclosed ShipStation order-monitoring helper, but users should understand it uses ShipStation credentials and stores local tracking state.

Install only if you are comfortable giving the skill ShipStation API credentials and allowing it to create local state files with order IDs and check timestamps. Keep the .env file out of version control, review any heartbeat or cron setup before enabling recurring checks, and remember that notifications require an external wrapper such as the documented agent heartbeat.

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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (11)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · README.md (reported line 8)May include surrounding context.

Quick Start

bash
# 1. Copy .env.example to .env and add your credentials
cp .env.example .env

# 2. Edit .env with your ShipStation API key + secret

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · README.md (reported line 11)May include surrounding context.

Quick Start

bash
# 1. Copy .env.example to .env and add your credentials
cp .env.example .env

# 2. Edit .env with your ShipStation API key + secret

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · check-orders.js (reported line 10)May include surrounding context.

js
## Quick Start

```bash
# 1. Copy .env.example to .env and add your credentials
cp .env.example .env

# 2. Edit .env with your ShipStation API key + secret

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · README.md (reported line 9)May include surrounding context.

bash
# 1. Copy .env.example to .env and add your credentials
cp .env.example .env

# 2. Edit .env with your ShipStation API key + secret

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The documented purpose says the skill monitors orders and sends alerts, but the behavior described includes local state persistence and output-only JSON/exit codes rather than actual alert delivery. This mismatch can mislead reviewers and users about what data is stored locally and what actions the skill really performs, reducing informed consent and making operational misuse or unsafe deployment more likely.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · check-orders.js (reported line 12)May include surrounding context.

js
const WORKDIR = __dirname;
const STATE_PATH = path.join(WORKDIR, 'shipping-state.json');
const ENV_PATH = path.join(WORKDIR, '.env');

function loadEnv(file) {
  const env = {};

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · check-orders.js (reported line 74)May include surrounding context.

js
const WORKDIR = __dirname;
const STATE_PATH = path.join(WORKDIR, 'shipping-state.json');
const ENV_PATH = path.join(WORKDIR, '.env');

function loadEnv(file) {
  const env = {};

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · check-shipping.js (reported line 7)May include surrounding context.

js
const WORKDIR = __dirname;
const STATE_PATH = path.join(WORKDIR, 'shipping-state.json');
const ENV_PATH = path.join(WORKDIR, '.env');

function loadEnv(file) {
  const env = {};

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill declares required binaries and environment secrets but does not declare an explicit tool/permission scope for network and environment access. That weakens reviewability and least-privilege enforcement, making it easier for an agent runtime to grant broader capabilities than users expect when handling ShipStation API credentials.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

This is a markdown file, so vague-trigger review applies. The description says to 'Monitor ShipStation orders, detect issues, and send alerts' and 'Monitor ShipStation for new orders and issues' but does not specify concrete trigger phrases, activation boundaries, or exclusion conditions, which could cause unintended invocation in general order-monitoring contexts.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

For markdown files, warnings should be present when behavior may affect user data or system integrity. The document explains that the script maintains state.json and auto-prunes stored order data, but it presents this as implementation detail rather than a user-facing warning that local files will be created and updated in the workspace.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
check-orders.js:70