Back to skill

Security audit

Custom Mail

Security checks for vulnerabilities and agentic risk

Overview

The skill’s mail-console purpose is coherent, but its setup asks users to run mutable external Docker/repository/npm artifacts while supplying mail and deployment secrets.

Review before installing. Use only test or narrowly scoped mail-provider and Cloudflare credentials, avoid ':latest', prefer verified image digests and pinned commits/tool versions, and stop/remove the Docker container when finished. Treat sent emails and attachments as data shared with the selected mail provider.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:76
Finding

Unpinned External Executable Dependencies and Mutable Container Artifacts

Content
View full analysis
Remediation
View remediation
docker run ... xuxuclassmate/custom-mail@sha256: ``` 2. Remove the recommendation to use `latest`, and document the expected digest for each release. 3. Require container signature and provenance verification using an appropriate mechanism such as Cosign before execution. 4. Clone or fetch the repository and check out a reviewed immutable commit: ```bash git clone https://github.com/InnoNestX/Custom-Mail.git cd Custom-Mail git checkout ``` 5. Verify the commit signature or compare the commit hash against a trusted, separately published release manifest. 6. Commit and review dependency lockfiles. Replace `npm install` with `npm ci` so dependency resolution follows the lockfile exactly. 7. Pin Wrangler to a reviewed version rather than allowing implicit package resolution, and invoke it from a lockfile-controlled project dependency. 8. Review Dockerfiles, Compose files, package lifecycle scripts, Rust build scripts, and deployment scripts before executing them. 9. Use narrowly scoped, short-lived mail-provider and Cloudflare tokens. Avoid supplying production secrets until artifact integrity has been verified. 10. Run builds and dependency installation in an isolated environment without unrelated credentials, sensitive host mounts, or unnecessary network access. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly supports sending email, including attachments, through third-party providers but does not clearly warn users that message bodies, recipient data, and files will be transmitted to external services. This creates a privacy and data-handling risk, especially if users assume the console is purely local because it runs in Docker.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
75% confidence
Finding

Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · SKILL.md (reported line 115)May include surrounding context.

Verify:

bash
curl -s http://localhost:8787/api/health

Health includes "plugins" (provider, theme, layout, logo) and "available" catalogs.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

The skill instructs users to run npx wrangler without pinning a specific package version. That can fetch whatever version is current at execution time, creating supply-chain and reproducibility risk if a compromised or breaking release is published. In this context the command is presented as a deployment step, so users may execute it with secrets configured, which increases the blast radius.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

This second npx wrangler invocation has the same issue: it resolves an unpinned package from the registry at runtime. Because the command is used to set secrets, a malicious or substituted package version could exfiltrate credentials or alter deployment behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The file mixes English and Chinese trigger phrases as activation examples, but it does not explain whether multilingual invocation is optional, user-selected, or required. Under the policy, locale or language behavior should not be implicitly forced without opt-in or clear justification.

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