azure-deploy
6 findings (1 critical, 5 medium), mainly data exfiltration, command injection. Most recent scan 2026-10-22.
Second scanner: NVIDIA SkillSpector
Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: \"run azd up\", \"run azd deploy\", \"execute deployment\", \"push to production\", \"push to cloud\", \"go live\", \"ship it\", \"bicep deploy\",…
- Package
- 41 files, 129 KB
- SKILL.md
- 719 words, 7 sections
- Code
- PowerShell (2), Shell (2)
- License
- MIT
SKILL.md covers: Azure Deploy · Triggers · Rules · Steps · SDK Quick References · MCP Tools · References
Findings
CRITICAL Bash: sensitive data exfiltration via network Data Exfiltrationbehavioral
Variable $ENDPOINT (tainted at line 2: `ENDPOINT=$(azd env get-values | grep -E "SERVICE_.*_URI|.*_ENDPOINT" | head -1 | cut -d'=' -f2)`) flows to network sink `curl` at line 5. This sends sensitive data over the network.
references/recipes/azd/verify.md:26
curl -f "$ENDPOINT/health" || curl -f "$ENDPOINT"MEDIUM Discovery and execution chain (find -exec) Command Injectionpipeline
The find command with -exec executes commands on discovered files. An attacker can use this to find and execute hidden malicious scripts. (found in documentation — may be instructional)
references/recipes/azd/ef-migrations.md:10
find . -type d -name "Migrations" 2>/dev/null
find . -name "*.csproj" -exec grep -l "Microsoft.EntityFrameworkCore" {} \;
MEDIUM Bash: tainted data flows to dangerous sink Data Exfiltrationbehavioral
Variable $ENDPOINT (line 2) flows to `curl` at line 5.
references/recipes/azd/post-deployment.md:79
curl -f "$ENDPOINT/health" || echo "Health check failed"MEDIUM Bash: tainted data flows to dangerous sink Data Exfiltrationbehavioral
Variable $ENDPOINT (line 2) flows to `curl` at line 8.
references/recipes/azd/post-deployment.md:82
curl -f "$ENDPOINT/api/test-db" || echo "Database connection failed"MEDIUM Bash: tainted data flows to dangerous sink Data Exfiltrationbehavioral
Variable $RG_NAME (line 4) flows to `source` at line 12.
references/recipes/terraform/README.md:82
--resource-group $RG_NAME \MEDIUM Bash: tainted data flows to dangerous sink Data Exfiltrationbehavioral
Variable $RG_NAME (line 4) flows to `source` at line 19.
references/recipes/terraform/README.md:89
--resource-group $RG_NAME \What is in the package
41 files, 129 KB. Show the list.
| File | Kind | Size |
|---|---|---|
SKILL.md | doc | 6.5 KB |
references/auth-best-practices.md | doc | 6.1 KB |
references/global-rules.md | doc | 1.2 KB |
references/live-role-verification.md | doc | 3.9 KB |
references/pre-deploy-checklist.md | doc | 18 KB |
references/region-availability.md | doc | 3.0 KB |
references/troubleshooting.md | doc | 8.0 KB |
references/recipes/README.md | doc | 431 B |
references/sdk/azd-deployment.md | doc | 792 B |
references/sdk/azure-identity-dotnet.md | doc | 941 B |
references/sdk/azure-identity-java.md | doc | 1.2 KB |
references/sdk/azure-identity-py.md | doc | 1.1 KB |
references/sdk/azure-identity-ts.md | doc | 1.1 KB |
references/recipes/azcli/README.md | doc | 1.7 KB |
references/recipes/azcli/errors.md | doc | 492 B |
references/recipes/azcli/verify.md | doc | 2.0 KB |
references/recipes/azd/README.md | doc | 3.7 KB |
references/recipes/azd/ef-migrations.md | doc | 5.0 KB |
references/recipes/azd/errors.md | doc | 15 KB |
references/recipes/azd/functions-deploy.md | doc | 3.5 KB |
references/recipes/azd/post-deployment.md | doc | 4.2 KB |
references/recipes/azd/sql-entra-auth.md | doc | 2.5 KB |
references/recipes/azd/sql-managed-identity.md | doc | 7.4 KB |
references/recipes/azd/verify.md | doc | 4.9 KB |
references/recipes/bicep/README.md | doc | 2.4 KB |
references/recipes/bicep/errors.md | doc | 511 B |
references/recipes/bicep/verify.md | doc | 763 B |
references/recipes/cicd/README.md | doc | 1.2 KB |
references/recipes/cicd/errors.md | doc | 542 B |
references/recipes/cicd/verify.md | doc | 754 B |
references/recipes/terraform/README.md | doc | 3.2 KB |
references/recipes/terraform/errors.md | doc | 858 B |
references/recipes/terraform/verify.md | doc | 752 B |
references/recipes/azd/scripts/apply-migrations.ps1 | script | 1.8 KB |
references/recipes/azd/scripts/apply-migrations.sh | script | 1.8 KB |
references/recipes/azd/scripts/grant-and-migrate.ps1 | script | 4.2 KB |
references/recipes/azd/scripts/grant-and-migrate.sh | script | 4.3 KB |
references/recipes/cicd/examples/azdo-azd.yml | config | 487 B |
references/recipes/cicd/examples/azdo-multistage.yml | config | 831 B |
references/recipes/cicd/examples/github-azd.yml | config | 782 B |
references/recipes/cicd/examples/github-bicep.yml | config | 660 B |
External hosts referenced
learn.microsoft.com myapp.azurewebsites.net aka.ms api-xxxx.azurecontainerapps.io apiservice.xxx.azurecontainerapps.io aspire-dashboard.xxx.azurecontainerapps.io azure.microsoft.com schema.management.azure.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.
Environment variables referenced
SERVICE_API_NAME SQL_DATABASE AZURE_RESOURCE_GROUP APP_PROJECT_PATH AZURE_CONTAINER_REGISTRY_ENDPOINT AZURE_ENV_NAME ENDPOINT AZURE_CLIENT_ID AZURE_FUNCTIONS_ENVIRONMENT AZURE_PRINCIPAL_ID PRINCIPAL_ID AUTH_TYPE AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID AZURE_LOCATION AZURE_SUBSCRIPTION_ID MANAGED_IDENTITY_CLIENT_ID ACR_ID ACR_PASS AZURE_TENANT_ID
Package contents recorded 2026-10-22 at commit f49ac319a7d3. 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.
- Bytecode analyzer.
- Pipeline analyzer.
- Correlation analyzer.
- Behavioral analyzer. Checks what the skill asks the agent to do against what its description claims it does.
- Trigger analyzer. Looks for instructions that fire on conditions the user did not ask for.
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.
Scan history
| Date | Verdict | Findings | Change | Analyzers | Raw |
|---|---|---|---|---|---|
| CRITICAL | 6 | = | static bytecode pipeline correlation behavioral trigger | JSON | |
| CRITICAL | 6 | first scan | static bytecode pipeline correlation behavioral trigger | JSON |
Sources
- Repository: https://github.com/microsoft/azure-skills
- Raw scan result: microsoft-azure-skills-skills-azure-deploy-scan.json
- Badge for your README:
 - Request a re-scan