Back to skill

Security audit

agent-bom discover azure

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed Azure inventory helper that uses existing read-only Azure credentials locally; the main caution is that Azure credential/cache access and exported inventory are sensitive.

Install only if you are comfortable letting the workflow use your existing Azure identity to perform read-only inventory discovery. Prefer a least-privilege Azure role, review the generated inventory before sharing it, and treat both the Azure token cache and exported inventory as sensitive data.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Credential Access

High
Category
Privilege Escalation
Content
credential_handling: "Credentials stay in the operator environment. The skill invokes Azure SDK discovery locally and writes canonical inventory JSON with source_type=skill_invoked_pull. agent-bom receives sanitized inventory only when the operator explicitly scans or pushes that inventory."
    data_flow: "Operator Azure subscription -> read-only Azure SDK calls -> canonical inventory JSON -> optional local agent-bom inventory scan. No agent-bom-hosted service is required. Credential-like values are redacted before persistence/export."
    file_reads:
      - "~/.azure/azureProfile.json"
      - "~/.azure/config"
      - "~/.azure/msal_token_cache.json"
    file_writes:
Confidence
82% confidence
Finding
The skill declares that it may read Azure CLI profile material from the operator's home directory, including the MSAL token cache. Even though the stated purpose is local authentication and the surrounding text says not to print secrets, reading token-bearing files materially increases access to credential artifacts and creates risk of accidental exposure, over-collection, or misuse if the implementation is compromised.

Credential Access

High
Category
Privilege Escalation
Content
data_flow: "Operator Azure subscription -> read-only Azure SDK calls -> canonical inventory JSON -> optional local agent-bom inventory scan. No agent-bom-hosted service is required. Credential-like values are redacted before persistence/export."
    file_reads:
      - "~/.azure/azureProfile.json"
      - "~/.azure/config"
      - "~/.azure/msal_token_cache.json"
    file_writes:
      - "operator-selected inventory JSON output path"
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Credential Access

High
Category
Privilege Escalation
Content
file_reads:
      - "~/.azure/azureProfile.json"
      - "~/.azure/config"
      - "~/.azure/msal_token_cache.json"
    file_writes:
      - "operator-selected inventory JSON output path"
    network_endpoints:
Confidence
90% confidence
Finding
The skill explicitly lists ~/.azure/msal_token_cache.json as a file read target, which can contain bearer tokens or refresh-token-adjacent authentication material depending on platform and configuration. Access to token cache data is highly sensitive because compromise or accidental leakage could allow unauthorized use of the operator's Azure identity across subscription resources.

Credential Access

High
Category
Privilege Escalation
Content
## Guardrails

- Use only operator-approved Azure subscriptions and read-only identities.
- Do not request or display raw `AZURE_CLIENT_SECRET`, access tokens, or
  connection strings.
- Do not modify Azure resources. This workflow is discovery-only.
- Write inventory only to a path the operator chose.
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
- python
      env: []
      credentials: azure-read-only
    credential_policy: "Use the operator's existing Azure identity chain. Prefer Azure CLI, workload identity, managed identity, or short-lived service principal credentials. Do not ask users to paste client secrets. Do not print credential values."
    optional_env:
      - AZURE_SUBSCRIPTION_ID
      - AZURE_TENANT_ID
Confidence
80% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Static analysis

No suspicious patterns detected.