Skip to main content
compliance · azure

VMs whose patch orchestration mode is set to Manual

resource types
1
rule IDs covered
1
severity
medium

What does ZopNight detect here?

Azure exposes 4 patch orchestration modes, and only Manual leaves OS patching with no automatic channel. AutomaticByOS, ImageDefault, and AutomaticByPlatform all patch through some mechanism. RC-1303 therefore fires solely when patchSettings.patchMode equals Manual, avoiding the false claim that every non-Azure-orchestrated VM goes unpatched.

Signal and threshold

How ZopNight evaluates VMs whose patch orchestration mode is set to Manual.
Field Value
Rule IDsRC-1303
Categorycompliance
Severitymedium
Metricnone — pure configuration read
Sourcevm_update_mgmt.go

Four patch modes, one genuinely unpatched

Azure’s patchSettings.patchMode takes four values, and they are not interchangeable synonyms for “managed” versus “unmanaged”. AutomaticByPlatform is Azure-orchestrated patching. AutomaticByOS is the Windows default, where Windows Update installs patches on its own schedule. ImageDefault is the Linux default, deferring to whatever the image configures. Manual alone means the platform installs nothing and nothing inside the guest is expected to either. Per Microsoft’s automatic guest patching reference, Manual is the only mode where no automatic patch channel exists, so Manual is the only value this rule fires on.

How a boolean flattened three modes into a false alarm

The discoverer also derives a coarse update_management boolean, true only for AutomaticByPlatform. An earlier revision of this rule keyed on that boolean, which collapsed AutomaticByOS, ImageDefault, and Manual into one “false” bucket and produced a near-universal, factually wrong “not patched” claim against VMs that patch themselves perfectly well through Windows Update or their image defaults. The current rule reads the raw patch_mode string instead, compares case-insensitively against Manual, and abstains fail-closed when no patchSettings block was surfaced at all. There is no tag fallback, because no customer tag carries the raw mode.

Why a Manual fleet is an incident waiting on a CVE

A VM in Manual mode accumulates missing OS patches until a human intervenes per machine. When the next actively-exploited CVE ships a fix, the window between patch availability and deployment is entirely manual toil. Audit frameworks treat systematic patching as table stakes, so a Manual production fleet reads as a control failure even before an exploit lands.

Read the mode straight off the VM

Terminal window
az vm show -g <rg> -n <vm> \
--query "osProfile.{win:windowsConfiguration.patchSettings.patchMode, linux:linuxConfiguration.patchSettings.patchMode}"

One of the two fields is populated depending on OS; Manual there is what triggers RC-1303.

Getting out of Manual

Switch the mode to AutomaticByPlatform and pair it with Azure Update Manager maintenance schedules for control over when reboots happen, then track compliance from Update Manager’s reports. Reader alone reproduces this detection; ZopNight does not change patch settings.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

417 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

417 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·