Back to skill

Security audit

Find Software Developer

Security checks for vulnerabilities and agentic risk

Overview

The skill’s main purpose is coherent, but its REST auth instructions tell the agent to execute a local .env.local file, which is unnecessarily risky.

Install only if you are comfortable using ServiceGraph and sending vendor-search criteria or firm domains to that API. Avoid following the shown command that sources .env.local; use a pre-exported SERVICEGRAPH_API_KEY or a safe secret manager/MCP integration instead, and confirm before spending credits on unlocks.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:87
Finding

Arbitrary Shell Command Execution Through Unsafe Dotenv Sourcing

Content
View full analysis
Remediation
View remediation
&2 exit 1 } curl --fail --silent --show-error \ -H "Authorization: Bearer ${SERVICEGRAPH_API_KEY}" \ 'https://api.servicegraph.co/v1/datasets/pro_services/fields' ``` 4. If dotenv-file support is unavoidable, use a dedicated parser that treats the file strictly as data. Permit only the exact `SERVICEGRAPH_API_KEY` key, validate its expected format, and reject command substitutions, shell expansions, additional keys, malformed records, and duplicate assignments. 5. Avoid command forms such as `source FILE`, `. FILE`, or `eval` for secret loading. 6. Keep the existing instruction not to paste the key into chat, and ensure errors and debug output never print the bearer token. 7. Document that local configuration files must not be trusted merely because they exist in the workspace. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

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 · SKILL.md (reported line 74)May include surrounding context.

  1. Try the call first through a shell wrapper that sources .env.local:

    bash
    ( set -a; [ -f .env.local ] && . ./.env.local; set +a;
      curl -sS -H "Authorization: Bearer $SERVICEGRAPH_API_KEY" \
           'https://api.servicegraph.co/v1/datasets/pro_services/fields' )
    

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The description says the skill should trigger not only on explicit examples but also 'even when described indirectly' for phrases like 'build a tool, ship a feature, technical partner.' These are common, high-level software phrases that can overlap with many unrelated requests, making activation boundaries unclear.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
78% confidence
Finding

The skill instructs the agent to send authenticated requests to an external service, which creates a data exfiltration boundary: user queries, selected firm domains, and account-linked API usage are transmitted off-platform. In context this is expected behavior for the skill, but it is still security-relevant because external transmission should be tightly scoped, disclosed, and minimized.

Content

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

bash
   ( set -a; [ -f .env.local ] && . ./.env.local; set +a;
     curl -sS -H "Authorization: Bearer $SERVICEGRAPH_API_KEY" \
          'https://api.servicegraph.co/v1/datasets/pro_services/fields' )
  1. On 401 prompt the user:

Static analysis

No suspicious patterns detected.