azure-func-slots-extensions-write

derived azure emits CanModifyCode

match (effective permission)

{ "action": "Microsoft.Web/sites/slots/extensions/write", "scope_type": "resource|resourceGroup|subscription" }

emit

source typeIdentity
source<principal>
target<function app deployment slot>
permissionsMicrosoft.Web/sites/slots/extensions/write
conditionsservice_state

Narrative

{principal.name} can deploy arbitrary code to slot {target.name} via the Kudu extensions API (slots/extensions/write).

Raw rule rules/derived/azure/functions.yaml

id: azure-func-slots-extensions-write
emits: CanModifyCode
match_effective_permission:
  action: Microsoft.Web/sites/slots/extensions/write
  scope_type: resource|resourceGroup|subscription
emit:
  source_type: Identity
  source: <principal>
  target: <function app deployment slot>
  permissions:
  - Microsoft.Web/sites/slots/extensions/write
  conditions:
  - service_state
  escalation: 'Slot-scoped Kudu/SCM ZipDeploy / VFS write: deploy attacker code into a slot, then swap
    it live.'
  false_positive_note: Code runs on next invoke/restart of the slot or after a swap into a running slot
    -> CONDITIONAL(trigger_exists) absent a trigger.
  narrative: '{principal.name} can deploy arbitrary code to slot {target.name} via the Kudu extensions
    API (slots/extensions/write).'
move · open · esc close