azure-aci-env-secret

derived azure emits ExposesCredential

match (effective permission)

{ "action": "Microsoft.ContainerInstance/containerGroups/read", "scope_type": "resource|resourceGroup|subscription" }

emit

target typeCredential
source<containerGroup>
target<Credential>
permissionsMicrosoft.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.'
move · open · esc close