Back to skill

Security audit

Alibabacloud Httpdns

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent Alibaba Cloud HTTPDNS admin helper, but it deserves review because it can expose raw account secrets and installs or updates Alibaba Cloud CLI plugins from mutable sources.

Install only if you intend to let an agent administer Alibaba Cloud HTTPDNS with your active aliyun profile. Use a least-privilege RAM policy, avoid raw account-secret output unless absolutely necessary, and prefer installing the Alibaba Cloud CLI/plugins through a pinned or organization-approved channel rather than the mutable latest commands in the guide.

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
references/cli-installation-guide.md:16
Finding

Unverified and Unpinned Alibaba Cloud CLI and Plugin Installation

Content
View full analysis

Vulnerability Details

File Locations:

  • references/cli-installation-guide.md:16-18
  • references/cli-installation-guide.md:40-41
  • SKILL.md:35-36

Vulnerability Type: Unverified remote executable and unpinned automatic plugin installation
Risk Level: Medium

Vulnerable Code

references/cli-installation-guide.md:16-18:

bash
curl -fsSL https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz | tar xz
mkdir -p "$HOME/.local/bin"
mv aliyun "$HOME/.local/bin/"

references/cli-installation-guide.md:40-41:

bash
aliyun configure set --auto-plugin-install true
aliyun plugin update

SKILL.md:35-36:

bash
aliyun configure set --auto-plugin-install true
aliyun plugin update

Technical Analysis

The installation instructions retrieve a mutable latest archive from an external endpoint, stream it directly into tar, and install the resulting executable without verifying a vendor signature or cryptographic checksum. Because the artifact is not pinned to a specific approved version, its contents can change after the Skill has been reviewed.

The instructions also enable automatic plugin installation and run an unpinned plugin update. This permits plugin code that was not included in the audited project to be downloaded and executed later. The repository contains no evidence that the Alibaba Cloud endpoint or plugin channel is currently malicious; the vulnerability is the absence of controls that establish artifact identity and integrity.

HTTPS provides transport protection but does not independently protect against compromise of the vendor distribution infrastructure, release pipeline, DNS or certificate trust chain, or an upstream plugin package.

Attack Path

  1. An attacker compromises the CLI distribution endpoint, release pipeline, plugin channel, or a relevant part of the network trust chain.
  2. The attacker replaces the mutable latest archive ...[truncated 1362 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the Alibaba Cloud CLI to a specific reviewed version instead of using a mutable latest URL.
  2. Download the archive to a temporary file before extraction.
  3. Obtain a SHA-256 checksum or cryptographic signature through an authenticated vendor channel and verify it before extracting or executing the artifact.
  4. Abort installation if the expected version, checksum, signature, archive structure, or executable name does not match.
  5. Extract into a newly created private temporary directory and inspect the archive paths to prevent unexpected path traversal or file placement.
  6. Keep automatic plugin installation disabled by default. Install only explicitly required plugins at reviewed and pinned versions.
  7. Document an approved plugin source, expected versions, integrity values, and a controlled upgrade-review procedure.
  8. Prefer a trusted package manager with version pinning and package-signature verification where supported.
  9. Run installation and plugin updates with a minimally privileged local account and a least-privilege Alibaba Cloud profile.

A hardened installation flow should follow this pattern:

bash
version="APPROVED_VERSION"
archive="aliyun-cli-linux-${version}-amd64.tgz"
expected_sha256="VENDOR_PUBLISHED_SHA256"

curl -fL --proto '=https' --tlsv1.2 \
  -o "$archive" \
  "https://trusted-vendor.example/releases/${version}/${archive}"

printf '%s  %s\n' "$expected_sha256" "$archive" | sha256sum --check -

The actual release URL and integrity value must come from an authenticated Alibaba Cloud release channel rather than being invented or derived from the downloaded archive itself.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (16)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
`scripts/httpdns-openapi.sh account-info`, which masks secret-like fields in

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
`scripts/httpdns-openapi.sh account-info`, which masks secret-like fields in

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
`scripts/httpdns-openapi.sh account-info`, which masks secret-like fields in

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
`scripts/httpdns-openapi.sh account-info`, which masks secret-like fields in

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
`scripts/httpdns-openapi.sh account-info`, which masks secret-like fields in

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
`scripts/httpdns-openapi.sh account-info`, which masks secret-like fields in

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
`scripts/httpdns-openapi.sh account-info`, which masks secret-like fields in

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
`scripts/httpdns-openapi.sh account-info`, which masks secret-like fields in

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
`scripts/httpdns-openapi.sh account-info`, which masks secret-like fields in

Unvalidated Output Injection

High
Category
Output Handling
Confidence
93% confidence
Finding

The skill explicitly documents a path to return unmasked account secrets via account-info --raw, including SignSecret and similar values. In an agent context, this creates a direct secret-exposure workflow that can leak long-lived credentials into chat output, logs, transcripts, or downstream tools if a user asks for raw values or if prompt injection steers the agent toward that mode.

Content

Scanner excerpt · references/related-commands.md (reported line 36)May include surrounding context.

SignSecret and other secret-like fields.

Do not ask a follow-up confirmation before returning masked account info. Only use raw output when the user explicitly asks for unmasked/raw/full secret values:

bash

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill explicitly permits retrieval of unmasked/raw account secret values when a user asks, which creates a direct secret-exfiltration path through the agent. Even though masking is the default, documenting a supported bypass for raw secret output materially increases the risk of credential disclosure, prompt abuse, or accidental leakage into logs and transcripts.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill instructs agents to create and delete placeholder domains in evaluation or test flows to prove API behavior, even when the user's task may only require verification or reporting. This normalizes unnecessary state-changing actions and could lead to unauthorized resource mutation, audit noise, or accidental impact in shared or production-like accounts.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · references/acceptance-criteria.md (reported line 84)May include surrounding context.

text

Reason: delete API assertions require an actual delete path. It is acceptable to
create and remove placeholder/evaluation domains under `example.com`; do not
create real user domains just to make `delete-domain` succeed unless the user
explicitly asked to validate the delete API path.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · references/api-reference.md (reported line 3)May include surrounding context.

md
# HTTPDNS OpenAPI Reference

Public product page: https://api.aliyun.com/product/Httpdns

Additional public references used by this Skill:

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · references/api-reference.md (reported line 10)May include surrounding context.

md
# HTTPDNS OpenAPI Reference

Public product page: https://api.aliyun.com/product/Httpdns

Additional public references used by this Skill:

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The manifest says the skill covers GetAccountInfo, AddDomain, DeleteDomain, DescribeDomains, ListDomains, GetResolveStatistics, GetResolveCountSummary, and RefreshResolveCache. However, the body also frames the skill as supporting 'configure HTTPDNS domains' and includes operational steps to enable/disable aliyun AI mode and set a user-agent, which are side-effecting CLI configuration changes not called out in the covered operations list.

Content

No source excerpt is available for this finding.