azure-mgmt-fabric-py
3 findings (1 high, 2 medium), mainly data exfiltration, command injection, unauthorized tool use. Most recent scan 2026-02-05.
This skill presents MEDIUM to HIGH security risks. Primary concerns include: (1) Potential typosquatting of official Azure SDK naming conventions, (2) Unrestricted access to Azure credentials via DefaultAzureCredential, (3) Ability to create costly cloud resources without safeguards, and (4) Supply chain risks from unpinned dependencies. The skill lacks proper provenance indicators (no license, no version, suspicious naming). While the code examples appear to be legitimate Azure SDK usage patterns, the packaging and presentation raise red flags about authenticity. The skill should not be used without verification of its source and implementation of additional safety controls.
Scanner's overall assessment (LLM analyzer)
Second scanner: NVIDIA SkillSpector
SkillSpector found no issues but could not fully inspect the package, usually because SKILL.md refers to a file that is not present, so it fails closed to CAUTION instead of SAFE. Read it as "not fully checked", not as a finding. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
Azure Fabric Management SDK for Python. Use for managing Microsoft Fabric capacities and resources. Triggers: "azure-mgmt-fabric", "FabricMgmtClient", "Fabric capacity", "Microsoft Fabric", "Power BI capacity".
- Package
- 2 files, 21 KB
- SKILL.md
- 587 words, 12+ sections
- Code
- None. Instructions only.
SKILL.md covers: Azure Fabric Management SDK for Python · Installation · Environment Variables · Authentication · Create Fabric Capacity · Get Capacity Details · List Capacities in Resource Group · List All Capacities in Subscription · Update Capacity · Suspend Capacity · Resume Capacity · Delete Capacity
Findings
HIGH Unrestricted Cloud Resource Management Unauthorized Tool Usellm
The skill provides full Azure Fabric capacity management capabilities including create, update, suspend, and delete operations without any safety guardrails, confirmation prompts, or cost warnings. Creating or scaling Azure Fabric capacities can incur significant costs (F2, F4 SKUs are expensive). The skill could be triggered to create costly resources without explicit user awareness.
SKILL.md
capacity = client.fabric_capacities.begin_create_or_update(
resource_group_name=resource_group,
capacity_name=capacity_name,
resource=FabricCapacity(
location="eastus",
sku=CapacitySku(
name="F2", # Fabric SKU
tier="Fabric"
)MEDIUM Credential Exposure via DefaultAzureCredential Data Exfiltrationllm
The skill uses DefaultAzureCredential which automatically searches for credentials in multiple locations including environment variables, managed identity, Azure CLI, and Visual Studio. This could inadvertently expose Azure credentials to the agent without explicit user consent. The skill instructions encourage setting AZURE_SUBSCRIPTION_ID and AZURE_RESOURCE_GROUP as environment variables, which the agent would have access to.
SKILL.md
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
client = FabricMgmtClient(
credential=credential,
subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"]
)MEDIUM Unpinned Dependency Installation Command Injectionllm
The installation instructions use 'pip install azure-mgmt-fabric' and 'pip install azure-identity' without version pinning. This creates a supply chain risk where malicious versions could be installed. The skill also references non-existent files (FabricMgmtClient.py, DefaultAzureCredential.py, CheckNameAvailabilityRequest.py) which may indicate incomplete or deceptive documentation.
SKILL.md
pip install azure-mgmt-fabric
pip install azure-identityWhat is in the package
| File | Kind | Size |
|---|---|---|
SKILL.md | doc | 6.1 KB |
references/acceptance-criteria.md | doc | 15 KB |
External hosts referenced
github.com
Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.
Package contents recorded 2026-10-22 at commit cfbcbbdc679c. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.
What we checked
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Behavioral analyzer. Checks what the skill asks the agent to do against what its description claims it does.
- Llm analyzer. A language model reads the skill and reports intent-level issues the rules cannot express.
- Trigger analyzer. Looks for instructions that fire on conditions the user did not ask for.
- Meta analyzer. A second model pass that validates, deduplicates and re-scores the other analyzers' findings.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://github.com/microsoft/agent-skills
- Raw scan result: github-skills-azure-mgmt-fabric-py-scan.json
- Badge for your README:
 - Request a re-scan