azure-aci-env-secret
match (effective permission)
{
"action": "Microsoft.ContainerInstance/containerGroups/read",
"scope_type": "resource|resourceGroup|subscription"
}
emit
| target type | Credential |
|---|---|
| source | <containerGroup> |
| target | <Credential> |
| permissions | Microsoft.ContainerInstance/containerGroups/read |
Narrative
{principal.name} can read the definition of {group.name} (containerGroups/read), exposing plaintext env vars and image-registry credentials.
Raw rule rules/derived/azure/aci.yaml
id: azure-aci-env-secret
emits: ExposesCredential
match_effective_permission:
action: Microsoft.ContainerInstance/containerGroups/read
scope_type: resource|resourceGroup|subscription
emit:
target_type: Credential
source: <containerGroup>
target: <Credential>
permissions:
- Microsoft.ContainerInstance/containerGroups/read
note: Plain environmentVariables[].value and imageRegistryCredentials are returned by GET; often embed
registry passwords / connection strings.
false_positive_note: "environmentVariables marked secureValue are NOT returned by read \u2014 do not\
\ claim exposure for those. Only plaintext env values and imageRegistryCredentials are readable."
narrative: '{principal.name} can read the definition of {group.name} (containerGroups/read), exposing
plaintext env vars and image-registry credentials.'