Back to skill

Security audit

Alibabacloud Finops Inspect

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed Alibaba Cloud read-only FinOps inspection skill, with the main cautions being credential scope and unpinned Python dependencies.

Before installing or running, use a dedicated virtual environment or container, pin and review dependencies, and run with a least-privilege read-only RAM sub-account rather than broad admin credentials. Confirm the region and resource-type parameters so the scan does not cover more of the account than intended.

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
scripts/requirements.txt:5
Finding

Unpinned Runtime Dependencies Create a Supply-Chain Compromise Risk

Content
View full analysis

Vulnerability Details

File Locations:

  • SKILL.md:202-205
  • scripts/requirements.txt:5-17

Vulnerability Type: Unpinned third-party dependencies installed at runtime
Risk Level: Medium

Vulnerable Code

SKILL.md:202-205:

bash
# Install dependencies (if not already done)
pip install -r scripts/requirements.txt

# Run the inspection script
python3 scripts/main.py --regions cn-hangzhou --types ecs --idle-only

scripts/requirements.txt:5-17:

text
alibabacloud_credentials>=1.0.0
alibabacloud_tea_openapi>=0.3.0
alibabacloud_tea_util>=0.3.0
alibabacloud_openapi_util>=0.2.0

# Product SDKs
alibabacloud_ecs20140526>=4.0.0
alibabacloud_rds20140815>=3.0.0
alibabacloud_vpc20160428>=3.0.0
alibabacloud_slb20140515>=3.0.0
alibabacloud_alb20200616>=1.0.0
alibabacloud_nlb20220430>=1.0.0
alibabacloud_cms20190101>=2.0.0

Technical Analysis

The Skill requires operators to install dependencies using the active pip package index, while every dependency is constrained only by a lower version bound. There is no lockfile, exact version pinning, package hash verification, or trusted-index restriction.

Consequently, future package releases that satisfy the >= constraints can be installed without having been reviewed with the Skill. If an upstream package, maintainer account, build artifact, or configured package index is compromised, malicious code may execute during package installation, build processing, or subsequent import by scripts/main.py.

This risk is especially significant because the application initializes Alibaba Cloud's credential chain. A malicious dependency running in the same process could access environment variables, local credential configuration, and the authenticated SDK execution context.

Attack Path

  1. An attacker compromises an allowed dependency, its publisher account, its distribution infrastructure, or an active pip index.
  2. The attac ...[truncated 1562 chars]
Remediation
View remediation

Remediation Suggestions

  1. Replace lower-bound constraints with exact, reviewed versions:
    text
    alibabacloud_credentials==X.Y.Z
    alibabacloud_tea_openapi==X.Y.Z
    
  2. Generate a fully resolved lockfile that includes all transitive dependencies.
  3. Record cryptographic hashes for every distribution and install with:
    bash
    python3 -m pip install --require-hashes -r requirements.lock
    
  4. Restrict installation to an approved package index or internal artifact repository using explicit index configuration.
  5. Review and scan dependency updates before changing locked versions.
  6. Run dependency installation and the Skill in an isolated virtual environment or container under a non-privileged user.
  7. Use short-lived, least-privilege Alibaba Cloud credentials and grant only the documented read-only API permissions.
  8. Separate dependency installation from credential-bearing execution where practical, so package build or installation steps cannot access cloud credentials.
  9. Add automated software-composition analysis, provenance verification, and recurring vulnerability monitoring to the release process.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (42)

Credential Access

High
Category
Privilege Escalation
Confidence
90% confidence
Finding

Automatic access to cloud credentials from environment or CLI config materially increases risk because users may not realize the script can enumerate all enabled regions and resources in the account. In a skill ecosystem, ambient credential harvesting is especially sensitive because it couples execution of documentation-driven scripts with high-value secrets.

Content

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

md
- **Environment**: Python 3.10+
- **Alibaba Cloud Account**: An Alibaba Cloud account with the relevant services activated (ECS / RDS / VPC / SLB / ALB / NLB / CMS, etc.)
- **Access Credentials**: Configure access credentials properly. This skill uses the `alibabacloud-credentials` credential chain to automatically read credentials from environment variables or the CLI config. For configuration details, see [Manage Access Credentials in Python](https://help.aliyun.com/zh/sdk/developer-reference/manage-access-credentials).
- **RAM Permissions**: A least-privilege RAM policy with read-only actions is recommended. Key actions include:
  - `ecs:DescribeRegions` / `ecs:DescribeInstances` / `ecs:DescribeDisks`
  - `rds:DescribeDBInstances`

Credential Access

High
Category
Privilege Escalation
Confidence
90% confidence
Finding

Automatic access to cloud credentials from environment or CLI config materially increases risk because users may not realize the script can enumerate all enabled regions and resources in the account. In a skill ecosystem, ambient credential harvesting is especially sensitive because it couples execution of documentation-driven scripts with high-value secrets.

Content

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

md
- **Environment**: Python 3.10+
- **Alibaba Cloud Account**: An Alibaba Cloud account with the relevant services activated (ECS / RDS / VPC / SLB / ALB / NLB / CMS, etc.)
- **Access Credentials**: Configure access credentials properly. This skill uses the `alibabacloud-credentials` credential chain to automatically read credentials from environment variables or the CLI config. For configuration details, see [Manage Access Credentials in Python](https://help.aliyun.com/zh/sdk/developer-reference/manage-access-credentials).
- **RAM Permissions**: A least-privilege RAM policy with read-only actions is recommended. Key actions include:
  - `ecs:DescribeRegions` / `ecs:DescribeInstances` / `ecs:DescribeDisks`
  - `rds:DescribeDBInstances`

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 · SKILL.md (reported line 402)May include surrounding context.

md
## Related Documentation

- [Python SDK Documentation](https://help.aliyun.com/zh/sdk/developer-reference/python-sdk)
- [Manage Access Credentials in Python](https://help.aliyun.com/zh/sdk/developer-reference/manage-access-credentials)
- [ECS Product](https://api.aliyun.com/product/Ecs)
- [RDS Product](https://api.aliyun.com/product/Rds)
- [VPC Product](https://api.aliyun.com/product/Vpc)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill describes executable behavior that can access environment variables and cloud credentials, but it declares no explicit tool scope such as permissions or allowed-tools. This creates an authorization ambiguity where an agent runtime may permit broader execution or environment access than users expect, increasing the risk of unintended credential exposure or script execution.

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 · SKILL.md (reported line 148)May include surrounding context.

md
>
> The ONLY valid execution method is: `python3 scripts/main.py [parameters]`
>
> **NEVER** use `aliyun` CLI directly. **NEVER** write custom scripts. **NEVER** call APIs directly.
> If you do any of these, the execution is INVALID and will FAIL evaluation.

1. **Single Entry Point**: ALL inspection tasks MUST be executed exclusively via `python3 scripts/main.py` with appropriate CLI parameters. The Agent MUST NOT:

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 · SKILL.md (reported line 234)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 240)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 242)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 251)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 257)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 259)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 269)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 273)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 279)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 280)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 281)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 285)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 288)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 403)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 404)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 405)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 406)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 407)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 408)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

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 · SKILL.md (reported line 409)May include surrounding context.

md
First, the `alibabacloud-credentials` credential chain loads AK/SK in the following priority: environment variables → `~/.aliyun/config.json` → runtime prompt. Credentials live in memory only.

Next, call the [DescribeRegions](https://api.aliyun.com/api/Ecs/2014-05-26/DescribeRegions) API to obtain the list of regions enabled under the account. If the user passed `--regions`, that list is used instead.

**Multi-Region Concurrency**: Throttling is independent across regions, so the skill defaults to 3-5 concurrent requests across different regions to shorten total execution time. Within a single region, requests remain serial to avoid triggering Throttling.

Static analysis

No suspicious patterns detected.