Back to skill

Security audit

Secure Data Analyst Skill Suite

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a disclosed local workflow for credentials and scripts, but its documented secret-access model gives local scripts broad reusable credential access that users should review carefully before installing.

Install only if you trust MGC Blackbox and the scripts you will run through it. Prefer a virtual environment, pin and verify the MGC package version, avoid entering plaintext secrets through agent/tool-call text, and treat every stored or sealed script as privileged because it may be able to retrieve credentials and send data unless the runtime enforces sandboxing and network restrictions.

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
SKILL.md:62
Finding

Unpinned Third-Party Security Dependency

Content
View full analysis
=1.4.10): ``` pip install mgc-blackbox ``` 2. Start MGC service: ``` mgc ``` ``` Equivalent installation instructions appear in `README.md`: ```markdown - Install MGC Blackbox: ``` pip install mgc-blackbox ``` ``` The manifest also declares: ```json "install": "pip install mgc-blackbox", "runtime": "mgc", ``` ### Technical Analysis The Skill instructs users to install `mgc-blackbox` without pinning an exact version or verifying an integrity hash. Although the declared requirement states version 1.4.10 or newer and the package name is consistent across the project, the actual command installs whichever release is currently selected by the package index. The dependency implements the local service and MCP operations that handle credentials, encrypted scripts, knowledge records, and script execution. Consequently, its behavior forms part of the Skill's trusted computing base. A compromised, malicious, or unexpectedly changed future release could execute arbitrary code with the installing user's privileges or capture sensitive information handled by MGC. No evidence was found that the package is currently malicious, uses a typosquatted name, or is downloaded from an untrusted custom domain. The issue is the absence of version and integrity controls. ### Attack Path 1. An attacker compromises the package publisher account, package index, release pipeline, or a future dependency release. 2. The attacker publishes a modified `mgc-blackbox` package under the expected package name. 3. A user follows the documented `pip install mgc-blackbox` instruction. 4. The package is installed and its code executes when the user starts `mgc`. 5. The co ...[truncated 921 chars]
Remediation
View remediation
``` Install it with: ```text pip install --require-hashes -r requirements.txt ``` 3. Replace every unpinned installation instruction in `SKILL.md`, `README.md`, and `manifest.json`. 4. Recommend installation in an isolated virtual environment rather than the user's global Python environment. 5. Document the trusted package index and prohibit unexpected extra indexes to reduce dependency-confusion risk. 6. Review and update the pinned version deliberately, including a security review whenever the dependency changes. ]]>

T09 · Insecure Skill Coding Practices

Error
Location
prompts/script_management.md:71
Finding

User-Supplied Scripts Receive a Reusable Master Token and Decrypted Credentials Without Enforced Network Isolation

Content
View full analysis
Remediation
View remediation
")` Agent-call example. Require credential entry through the trusted local WebUI or a protected secret-input channel that does not place plaintext in conversation history, Agent context, tool-call logs, or telemetry. 8. Clearly document whether `mgc_run` enforces network and filesystem isolation. If these protections already exist, make them mandatory prerequisites and fail closed when they are unavailable. 9. Redact secrets from exceptions, e ...[truncated 125 chars]
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (26)

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

md
|---------|------|-----------------|
| Paste credentials in AI chat | Credential exposure | Store in MGC, call internally in scripts |
| Let AI auto-select script names | Script misuse risk | User must provide info_owner |
| Access credentials without authorization | Unauthorized access | Request user authorization before each access |
| Send script content to AI | Script exposure | Use MGC to apply, AI only sees results |
| Expect suite to auto-process data | Violates design | User-owned scripts, manually trigger each step |

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · agent_system_prompt.md (reported line 201)May include surrounding context.

md
|---------|------|-----------------|
| Paste credentials in AI chat | Credential exposure | Store in MGC, call internally in scripts |
| Let AI auto-select script names | Script misuse risk | User must provide info_owner |
| Access credentials without authorization | Unauthorized access | Request user authorization before each access |
| Send script content to AI | Script exposure | Use MGC to apply, AI only sees results |
| Expect suite to auto-process data | Violates design | User-owned scripts, manually trigger each step |

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

md
- Request user authorization before each sensitive operation
- Apply scripts via MGC after user authorization
- Must not view script content
- Must not access credentials
- Must not automatically execute workflows
- Must not auto-select script names (info_owner must be provided by user)

Credential Access

High
Category
Privilege Escalation
Confidence
82% confidence
Finding

The phrase 'store or access credentials' combined with 'Triggered By: User or Agent' suggests an agent may initiate credential-related workflows without a narrowly scoped user command. Even though the document states authorization is required and plaintext is hidden, allowing ambiguous agent-triggered credential access expands the attack surface for social engineering, excessive prompting, or misuse of privileged tool paths.

Content

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

md
| Document | Use Case | Triggered By |
|----------|----------|--------------|
| credential_management.md | Need to store or access credentials | User or Agent |
| script_management.md | Need to store or apply scripts | User or Agent |
| knowledge_management.md | Need to store or read knowledge | User or Agent |

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · prompts/credential_management.md (reported line 64)May include surrounding context.

md
# How to Call Credentials with Zero Exposure (Core)

Scripts can safely access credentials, but AI can never see credential content.

Below is the **standard zero-exposure credential call pattern** (pseudocode):

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · prompts/credential_management.md (reported line 70)May include surrounding context.

md
# How to Call Credentials with Zero Exposure (Core)

Scripts can safely access credentials, but AI can never see credential content.

Below is the **standard zero-exposure credential call pattern** (pseudocode):

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · prompts/credential_management.md (reported line 173)May include surrounding context.

md
# How to Call Credentials with Zero Exposure (Core)

Scripts can safely access credentials, but AI can never see credential content.

Below is the **standard zero-exposure credential call pattern** (pseudocode):

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · prompts/credential_management.md (reported line 202)May include surrounding context.

md
# How to Call Credentials with Zero Exposure (Core)

Scripts can safely access credentials, but AI can never see credential content.

Below is the **standard zero-exposure credential call pattern** (pseudocode):

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · prompts/credential_management.md (reported line 210)May include surrounding context.

md
# How to Call Credentials with Zero Exposure (Core)

Scripts can safely access credentials, but AI can never see credential content.

Below is the **standard zero-exposure credential call pattern** (pseudocode):

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · prompts/credential_management.md (reported line 177)May include surrounding context.

text
Credential Name: db_warehouse_prod
Operation: Access Credential
Authorization Required: YES

Do you authorize accessing this credential? Reply "yes" to proceed or "no" to cancel.

Credential Access

High
Category
Privilege Escalation
Confidence
97% confidence
Finding

The skill explicitly instructs users how scripts can access credentials, normalizing secret retrieval as part of routine script behavior. In the context of an agent skill, that increases risk because any downstream script execution path can become a credential-use primitive, especially if authorization is weak or users are socially engineered into approving runs.

Content

Scanner excerpt · prompts/script_management.md (reported line 76)May include surrounding context.

md
# How to Write Scripts for Zero-Exposure Credential Calls

Scripts can safely access credentials, but AI can never see credential content.

Below is the **standard zero-exposure credential call pattern** (pseudocode):

Credential Access

High
Category
Privilege Escalation
Confidence
98% confidence
Finding

The example provides actionable code to read a local token from disk and exchange it for credential material via the MGC API. Publishing this pattern lowers the barrier for abuse: a malicious script or insider can adapt it to harvest credentials, and the 'AI cannot see credentials' framing may create a false sense of safety even though local code can still misuse them.

Content

Scanner excerpt · prompts/script_management.md (reported line 84)May include surrounding context.

Standard Example: Script Internally Accesses Credentials Safely

Scripts access credentials via MGC local API:

python
import requests

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill declares that core capabilities may be triggered by either the user or the agent, but it does not define concrete activation conditions or approval gates at the invocation point. In an agentic environment, this ambiguity can cause overbroad tool usage or unintended sensitive-operation prompts, increasing the chance of privilege misuse or confusing consent boundaries.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
- Request user authorization before each sensitive operation
- Apply scripts only via MGC Blackbox
- Must not view script content or credentials
- Must not automatically execute workflows
- Must not auto-select script names (info_owner must be provided by user)

The Agent can reference documents in prompts/ as workflow guidance after user authorization.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
- Request user authorization before each sensitive operation
- Apply scripts only via MGC Blackbox
- Must not view script content or credentials
- Must not automatically execute workflows
- Must not auto-select script names (info_owner must be provided by user)

The Agent can reference documents in prompts/ as workflow guidance after user authorization.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · agent_system_prompt.md (reported line 26)May include surrounding context.

md
- Generate, modify, or infer user scripts
- Apply scripts without user authorization
- Transfer any data to external systems
- Chain multiple workflow steps without confirmation
- Automatically select script names (info_owner must be explicitly provided by user)
- Automatically perform data access, cleaning, analysis, or transmission

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · agent_system_prompt.md (reported line 28)May include surrounding context.

md
- Transfer any data to external systems
- Chain multiple workflow steps without confirmation
- Automatically select script names (info_owner must be explicitly provided by user)
- Automatically perform data access, cleaning, analysis, or transmission

### You Must:

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · agent_system_prompt.md (reported line 203)May include surrounding context.

md
- Apply scripts without authorization
- Access credentials without authorization
- View or infer script content
- Automatically execute workflows

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% 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 · prompts/credential_management.md (reported line 94)May include surrounding context.

md
print("Token not found!")
        return None

    resp = requests.post(
        f"{BASE_URL}/api/mgc/sensitive/get",
        headers={"X-MGC-Token": token, "Content-Type": "application/json"},
        json={

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% 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 · prompts/script_management.md (reported line 107)May include surrounding context.

md
print("Token not found!")
        return None

    resp = requests.post(
        f"{BASE_URL}/api/mgc/sensitive/get",
        headers={"X-MGC-Token": token, "Content-Type": "application/json"},
        json={

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The document shows how scripts can retrieve and use credentials, but it does not warn that once a script has the decrypted secret it can transmit that secret or resulting sensitive data to databases, APIs, or other external destinations. This omission can create a false sense of safety around 'zero-exposure' handling, even though the protection only applies between the user and the AI, not between the script and downstream systems.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The document makes a contradictory security claim: it says the AI cannot see plaintext knowledge, but then instructs the AI to call mgc_get and use the returned content in analysis. If mgc_get provides content usable by the model, then plaintext is effectively exposed to the AI context despite the zero-exposure claim, which can mislead users about confidentiality guarantees and cause accidental disclosure of sensitive prompts, business rules, or methodologies.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
78% confidence
Finding

The section introduces a model where scripts obtain a reusable token from a persistent file under the user's home directory, which is a form of session or authentication persistence. If local scripts can read that token, compromise of one script or process can enable repeated access to sensitive APIs without renewed user interaction.

Content

Scanner excerpt · prompts/script_management.md (reported line 74)May include surrounding context.

md
---

# How to Write Scripts for Zero-Exposure Credential Calls

Scripts can safely access credentials, but AI can never see credential content.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The document goes beyond generic script management and provides concrete mechanics for reading a local token file and invoking a sensitive credential-retrieval API. Even though framed as 'zero-exposure' and local-only, these instructions materially enable secret access and can be repurposed by a malicious or compromised script to obtain credentials and use them without further isolation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

Line L032 says the suite does not generate knowledge content, while lines L129-L135 list 'Generating prompts' as a use of stored knowledge. That wording can contradict the earlier restriction because prompt generation is itself a form of derived content generation from knowledge assets.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.prompt_injection_instructions

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
SKILL.md:22