Back to skill

Security audit

火山引擎DNS免费版

Security checks for vulnerabilities and agentic risk

Overview

This DNS skill is not malicious, but it needs review because it can change or delete DNS records using cloud credentials while its activation scope and dependency setup are too broad or unclear.

Install only if you intentionally want an agent to manage Volcengine DNS. Before use, identify and verify the official CLI or SDK, install it before exposing credentials, use least-privilege DNS-only API keys, and require a manual confirmation showing the zone, record, old value, new value, TTL, and rollback command before any update or delete.

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:247
Finding

Unpinned and Unverified DNS CLI Dependencies Create a Supply-Chain Risk

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:95-100, 116-130, 184-196, 243-248
Vulnerability Type: Unverified and unpinned third-party dependencies
Risk Level: Medium

The Skill directs an AI agent to execute a volcengine-dns command and states that a required Volcengine SDK should be installed using pip or npm. However, the project contains no implementation of this executable and does not identify an official package name, trusted registry, publisher, pinned version, lock file, checksum, or signature.

Relevant command invocation (SKILL.md:95-100):

bash
volcengine-dns add \
  --zone "example.com" \
  --record "api.example.com" \
  --type A \
  --value "192.168.1.100" \
  --ttl 300

Dependency declaration (SKILL.md:243-248):

markdown
| Dependency | Type | Required | Acquisition method |
|:-----|:-----|:-----|:-----|
| LLM API | API | Required | Provided by the agent's built-in LLM |
| Volcengine SDK | Library | Required | Install with pip/npm |
| dig/nslookup | Tool | Optional for verification | Provided by the operating system |

Technical Analysis

The package contains only SKILL.md; it does not ship an auditable volcengine-dns implementation. The generic instruction to install the required SDK through “pip/npm” does not provide enough information to authenticate the dependency or distinguish an official package from a typosquatted or dependency-confusion package.

This becomes security-sensitive because the documented workflow configures Volcengine access credentials in environment variables and then invokes the unspecified executable to create, update, and delete authoritative DNS records. A malicious package selected while attempting to satisfy the undocumented dependency could read those inherited environment variables during installation or execution.

The existence of an actively malicious dependency is not established by the repository. The confirmed ...[truncated 1972 chars]

Remediation
View remediation

Remediation Suggestions

  1. Identify the authoritative CLI and SDK explicitly:

    • Provide the exact package name.
    • Specify the official pip or npm registry.
    • Identify the trusted publisher and official source repository.
    • Document how users can verify that the package is authentic.
  2. Pin dependency versions:

    • Use an exact reviewed version rather than an unconstrained installation.
    • Supply a lock file where supported.
    • Provide cryptographic hashes or signature-verification instructions.
  3. Replace the generic “pip/npm installation” instruction with an exact installation command that does not allow ambiguous package selection.

  4. Prefer bundling a minimal, auditable implementation with the Skill or referencing an official vendor-distributed executable through a verified URL and integrity value.

  5. Run DNS operations with a dedicated least-privilege Volcengine identity:

    • Restrict access to the required hosted zones.
    • Permit only the required DNS actions.
    • Do not reuse credentials that provide access to unrelated cloud services.
    • Use short-lived credentials where supported.
  6. Avoid exposing long-lived secrets to package installation processes. Install and verify dependencies before injecting DNS credentials into the runtime environment.

  7. Require explicit user confirmation before record updates or deletions, and display the target zone, record, old value, and proposed value before execution.

  8. Add provenance and integrity checks to the documented setup procedure and fail closed when the executable path, package identity, or installed version does not match the approved dependency.

Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill advertises record modification and deletion capabilities early but does not present an upfront warning that these actions can disrupt production traffic, email delivery, and service availability. In the context of a DNS administration skill, destructive operations are highly sensitive, and lack of prominent warning or confirmation increases the risk of accidental outages or malicious social engineering through the agent.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

L163-L170 明确说该技能不适合“运维部署管理”,且整体定位是火山引擎 DNS 记录管理。但 L173 又写成“需要代码生成、编程辅助、调试测试、开发部署时使用”,把技能描述成通用开发/部署辅助工具,这与前述用途限制直接冲突,属于文档对技能意图的主动矛盾。

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger condition is overly broad and can cause the skill to activate for generic coding, debugging, or deployment requests unrelated to DNS. In an agent environment with read/exec/write tools and destructive DNS-change capabilities, incorrect routing increases the chance of unintended record modifications or confusing the agent into performing sensitive operations without strong task scoping.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The description states that the free version '强化中文本地化', indicating a deliberate Chinese-only localization preference, but there is no opt-in, alternative language option, or justification for restricting language. This can violate language/locale policy when a skill imposes a locale without user choice.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

L226-L229 说明“免费版仅支持单条记录操作”,传达出严格的单对象操作边界;但 L234-L235 又写“免费版支持查询多个域名区,但每次操作针对单个区”。这两处对免费版范围的表述不一致,容易误导使用者对实际能力边界的理解。

Content

No source excerpt is available for this finding.