azure-appsvc-config-list
match (effective permission)
{
"action": "Microsoft.Web/sites/config/list/action",
"scope_type": "resource|resourceGroup|subscription"
}
emit
| source | <principal> |
|---|---|
| target | <app settings + connection strings of the site> |
| permissions | Microsoft.Web/sites/config/list/action |
Narrative
{principal.name} can list app settings and connection strings of {target.name} in cleartext (config/list/action).
Raw rule rules/derived/azure/appservice.yaml
id: azure-appsvc-config-list
emits: CanReadSecret
match_effective_permission:
action: Microsoft.Web/sites/config/list/action
scope_type: resource|resourceGroup|subscription
emit:
source: <principal>
target: <app settings + connection strings of the site>
permissions:
- Microsoft.Web/sites/config/list/action
note: Returns app settings and connection strings in cleartext (DB/Storage/Service Bus creds, Key Vault
reference targets). The companion credential-exposure fact is emitted by azure-appsvc-config-list-exposescred
(ExposesCredential).
false_positive_note: config/list/action is NOT in Website Contributor; do not infer it from sites/write.
Key Vault references resolve to a reference string, not the secret, unless already resolved.
narrative: '{principal.name} can list app settings and connection strings of {target.name} in cleartext
(config/list/action).'