Back to skill

Security audit

huawei-cloud-flexus-l-server-flexusagent-deployment

Security checks across malware telemetry and agentic risk

Overview

The skill is mostly aligned with deploying and managing FlexusAgent, but it exposes admin/cloud secrets in logs or chat and uses high-privilege remote script execution that needs human review.

Review before installing. Use a dedicated least-privilege, time-limited Huawei Cloud identity; avoid passing AK/SK, tokens, admin passwords, or API keys on command lines; do not share logs from runs; confirm whether public port 80 exposure is acceptable; and inspect or pin the externally fetched shell scripts and dependencies before using this in a production account.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (25)

Lp3

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding
The skill clearly describes capabilities that access environment variables, execute shell/Python commands, and make network/API requests, yet it declares no explicit permissions boundary. This creates a governance and containment gap: operators cannot accurately assess or restrict what the skill is allowed to do before execution.

Intent-Code Divergence

High
Confidence
99% confidence
Finding
The documentation explicitly instructs the agent to return the newly set admin password in its reply, directly contradicting repeated earlier rules forbidding disclosure of secrets. Exposing fresh credentials in chat transcripts or logs can immediately compromise the deployed Dify/FlexusAgent instance.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The file contains marketplace search, installed-plugin enumeration, and plugin installation logic that exceeds the skill's declared scope of deployment, password management, MaaS configuration, and workflow operations. Undeclared capability expansion is dangerous because it gives the skill broader authority to alter the target platform and increases the attack surface for supply-chain abuse or unauthorized feature enablement.

Description-Behavior Mismatch

Medium
Confidence
97% confidence
Finding
The code can query security groups and create ingress rules, including opening ports to arbitrary CIDRs, but this network-modification capability is not disclosed in the skill description. Hidden firewall changes are security-sensitive because they can expose management or application services to the internet and materially change the tenant's network posture.

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
The COC helpers allow creation and execution of arbitrary scripts on remote instances, effectively granting generic remote code execution beyond the narrow business functions described by the skill. In the context of a deployment/admin skill with cloud credentials, this is especially dangerous because compromise or misuse can lead to full host takeover, data theft, persistence, and lateral movement.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
Plugin marketplace installation is broader than the stated purpose and introduces code from external packages into the managed platform. That creates a supply-chain risk and gives the skill power to change the runtime behavior of the platform in ways the user may not expect from the manifest.

Context-Inappropriate Capability

Medium
Confidence
99% confidence
Finding
The code prints the new FlexusAgent admin password directly to stdout before confirmation. Console output is commonly captured in terminal scrollback, CI logs, session recordings, shell history wrappers, or centralized logging, which can expose privileged credentials to other users or operators.

Missing User Warnings

High
Confidence
99% confidence
Finding
The skill tells the agent to print the new admin password back to the user with no guardrails about transcript retention, audit logs, or shared-chat exposure. Because this is the active administrative credential for the service, leakage would grant direct unauthorized access.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The recommended policy combines broad create, execute, query, and delete permissions across compute instances and cloud scripts using Resource "*", but the document does not clearly warn users that these permissions enable destructive actions such as deleting instances and creating/executing scripts remotely. In the context of a one-click deployment skill that handles infrastructure provisioning and password/workflow operations, this omission can cause operators to over-grant privileges, increasing blast radius if the skill, credentials, or account are misused.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The documentation instructs users to pass AK/SK and security tokens directly on the command line, which commonly exposes secrets through shell history, process listings, terminal logs, and CI job output. In a cloud-deployment skill, these credentials can enable unauthorized access to Huawei Cloud resources if observed or retained by other users or systems.

Missing User Warnings

Medium
Confidence
86% confidence
Finding
The password-change procedure describes a sensitive administrative action without warning about service impact, authorization requirements, or the risk of locking out operators if performed incorrectly. In this skill's context, changing the Dify administrator password affects a live platform and can disrupt access or transfer control if triggered by the wrong person.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The MaaS integration example includes both a platform password and a MaaS API key as command-line parameters, creating multiple opportunities for credential leakage via shell history, process tables, logs, and screenshots. Because this skill manages AI platform and model-provider integration, exposed secrets could permit unauthorized platform access, API abuse, billing impact, or exfiltration of model-related data.

Missing User Warnings

High
Confidence
99% confidence
Finding
The function prints the Authorization header, full request headers, and request body during instance creation. These logs can expose signed credentials, project identifiers, and sensitive provisioning details to console output, logs, or downstream observability systems, enabling replay or account misuse depending on token lifetime and log access.

Missing User Warnings

High
Confidence
98% confidence
Finding
The password-change flow executes a shell script as root on the remote instance and does so by fetching a script from an external URL at runtime. This combines privileged remote execution with an unpinned external dependency, creating risk of credential compromise, command injection through parameters, or complete system compromise if the hosted script is altered.

Missing User Warnings

High
Confidence
99% confidence
Finding
The workflow import path downloads content, base64-encodes payload data, injects an admin password directly into a shell command, and executes a remotely fetched script on the target host. This is highly dangerous because it exposes credentials to process arguments/logs and couples privileged execution to mutable external content, enabling credential theft or full remote compromise.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The ingress-rule helper defaults to opening traffic from 0.0.0.0/0 and lacks safeguards or user warnings for public exposure. In a deployment skill, this can easily leave administrative or application ports internet-accessible, substantially increasing the chance of scanning, brute force, exploitation, and data exposure.

Missing User Warnings

High
Confidence
99% confidence
Finding
This line discloses a sensitive administrator password to stdout without masking or warning. Because this skill manages an admin account for a deployed AI platform, exposure of that password could allow full administrative takeover of the application if logs or console output are accessible to others.

Ssd 3

High
Confidence
99% confidence
Finding
Revealing the newly configured administrator password in the assistant reply is a direct sensitive-data disclosure flaw. In the context of an infrastructure deployment skill, this is especially dangerous because the credential unlocks a newly provisioned internet-accessible admin interface.

Hidden Instructions

High
Category
Prompt Injection
Content
## Parameter Confirmation

‌‌Before executing any command, the command's parameters must be confirmed.

---
Confidence
77% confidence
Finding

Hidden Instructions

High
Category
Prompt Injection
Content
## Parameter Confirmation

‌‌Before executing any command, the command's parameters must be confirmed.

---
Confidence
77% confidence
Finding

External Script Fetching

High
Category
Supply Chain
Content
"description": "Change FlexusAgent admin user password",
        "risk_level": "LOW",
        "content": '''#!/bin/bash
curl -sSL https://documentation-samples.obs.cn-north-4.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-moudle/agent/reset_admin_password.sh | bash -s "${adminPassword}"'''
    },
    "import_dify_app_workflow": {
        "name": "import_dify_app_workflow",
Confidence
99% confidence
Finding
curl -sSL https://documentation-samples.obs.cn-north-4.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-moudle/agent/reset_admin_password.sh | bash

External Script Fetching

High
Category
Supply Chain
Content
"type": "SHELL",
        "description": "import dify app workflow on dify server instance",
        "risk_level": "MEDIUM",
        "content": '''curl -sSL https://flexus-config-cn-north-4-product.obs.cn-north-4.myhuaweicloud.com/stable/dify/scripts/import_yml_to_dify.sh | bash -s ${base64String} ${dify_admin_password}'''
    },
}
Confidence
99% confidence
Finding
curl -sSL https://flexus-config-cn-north-4-product.obs.cn-north-4.myhuaweicloud.com/stable/dify/scripts/import_yml_to_dify.sh | bash

Known Vulnerable Dependency: requests — 10 advisory(ies): CVE-2014-1830 (Exposure of Sensitive Information to an Unauthorized Actor in Requests); CVE-2024-47081 (Requests vulnerable to .netrc credentials leak via malicious URLs); CVE-2024-35195 (Requests `Session` object does not verify requests after making first request wi) +7 more

High
Category
Supply Chain
Confidence
93% confidence
Finding
requests

Known Vulnerable Dependency: pyyaml — 8 advisory(ies): CVE-2019-20477 (Deserialization of Untrusted Data in PyYAML); CVE-2020-1747 (Improper Input Validation in PyYAML); CVE-2020-14343 (Improper Input Validation in PyYAML) +5 more

Critical
Category
Supply Chain
Confidence
89% confidence
Finding
pyyaml

Known Vulnerable Dependency: urllib3 — 10 advisory(ies): CVE-2025-66471 (urllib3 streaming API improperly handles highly compressed data); CVE-2024-37891 (urllib3's Proxy-Authorization request header isn't stripped during cross-origin ); CVE-2026-21441 (Decompression-bomb safeguards bypassed when following HTTP redirects (streaming ) +7 more

High
Category
Supply Chain
Confidence
86% confidence
Finding
urllib3

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.