T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/huawei_cloud/dispatcher.py:1469- Finding
Read-Only Skill Dispatcher Exposes Destructive and Mutating Cloud Actions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill claims to be read-only observability tooling, but the bundled dispatcher exposes unlisted cluster-changing actions and Kubernetes secret access.
Treat this as a Review item before installation. Only use it with a tightly scoped read-only Huawei Cloud IAM user and Kubernetes RBAC role, and do not grant permissions for secrets, create/update/delete, scaling, node operations, EIP changes, or remediation. The package should be remediated by enforcing a strict action allowlist, removing mutation and secret-data actions, using verified TLS, and storing temporary certificates securely.
scripts/huawei_cloud/dispatcher.py:1469Read-Only Skill Dispatcher Exposes Destructive and Mutating Cloud Actions
scripts/huawei_cloud/cce.py:3313Dispatcher Can Return Kubernetes Secret Values Across All Namespaces
scripts/huawei_cloud/cce.py:1134Kubernetes API Server Certificate Verification Is Disabled
scripts/huawei_cloud/cce.py:1315Predictable Temporary Files Are Used for Kubernetes Client Private Keys
scripts/huawei_get_node_security_groups.py:136Standalone Helper Accepts Cloud Credentials Through Command-Line Arguments and Implements Broken Authentication
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
---
name: observability-context-builder
description: Use this skill when a Huawei Cloud CCE issue needs observability context from AOM alarms, metrics, LTS logs, Pod logs, or Kubernetes events before diagnosis.
---
Referenced artifact was not completely inspected
od (Must Read): This skill executes actions via local Python scripts using the `scripts/huawei-cloud.py` dispatcher. Using hcloud, kubectl, or other CLI tools o
Referenced artifact was not completely inspected
od (Must Read): This skill executes actions via local Python scripts using the `scripts/huawei-cloud.py` dispatcher. Using hcloud, kubectl, or other CLI tools o
Referenced artifact was not completely inspected
od (Must Read): This skill executes actions via local Python scripts using the `scripts/huawei-cloud.py` dispatcher. Using hcloud, kubectl, or other CLI tools o
Referenced artifact was not completely inspected
od (Must Read): This skill executes actions via local Python scripts using the `scripts/huawei-cloud.py` dispatcher. Using hcloud, kubectl, or other CLI tools o
Referenced artifact was not completely inspected
od (Must Read): This skill executes actions via local Python scripts using the `scripts/huawei-cloud.py` dispatcher. Using hcloud, kubectl, or other CLI tools o
Referenced artifact was not completely inspected
od (Must Read): This skill executes actions via local Python scripts using the `scripts/huawei-cloud.py` dispatcher. Using hcloud, kubectl, or other CLI tools o
Referenced artifact was not completely inspected
od (Must Read): This skill executes actions via local Python scripts using the `scripts/huawei-cloud.py` dispatcher. Using hcloud, kubectl, or other CLI tools o
Referenced artifact was not completely inspected
od (Must Read): This skill executes actions via local Python scripts using the `scripts/huawei-cloud.py` dispatcher. Using hcloud, kubectl, or other CLI tools o
Documenting permission to create cluster certificates for kubeconfig access introduces credential-access capability beyond the stated need. Even if intended for diagnostics, kubeconfig/cert material can enable broader cluster access and materially increases the blast radius if the script, logs, or execution environment are compromised.
| API Action | Permission | Purpose |
| --------------------------- | ------------------ | ------------------------------------- |
| `cce:cluster:get` | Get cluster | View CCE cluster details |
| `cce:cluster:createCert` | Create certificate | Obtain kubeconfig for kubectl access |
| `aom:alarm:list` | List alarms | Query AOM active/history alarms |
| `aom:alarm:analyze` | Analyze alarms | Deduplicate and group alarms |
| `aom:metricsData:get` | Get metrics data | Query Pod/node CPU/memory metrics |
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- Allow automatic R1 read-only queries: alarms, metrics, logs, events, inventory, read-only report generation.
- Prohibit any action requiring `confirm=true` — no mutations allowed.
- Never persist AK/SK, tokens, certificates, or kubeconfig.
- Log output must be sanitized. When suspected secrets are found, describe the hit location only — never copy the original text.
- Charts and reports must only be generated from authorized query results.
Detected: suspicious.exposed_secret_literal, suspicious.insecure_tls_verification