In This Post
- The week in one paragraph
- Azure worked on hub-and-spoke routing from both ends at once
- The preview boundary cuts across the scenario the same page recommends
- The companion property, and two route limits worth not confusing
- Service tags reached the Front Door WAF rule engine
- Sovereignty was the loudest theme and the thinnest product surface
- Two supply-chain compromises, two web CVEs and four Azure CVEs
- The rest, briefly
- What I would act on
- Complete inventory — all 78
- Official Azure references
The week in one paragraph
Seventy-eight distinct items across five working days, and the one that matters most is a public preview with an unglamorous name: disable peering route propagation. It fixes a routing problem that has quietly defeated hub-and-spoke firewall designs for years, and it arrived alongside documentation for a second property that solves the mirror-image problem in the opposite direction. Everything else was volume. Sovereignty was the week's loudest theme by announcement count — seven items across four blogs — and almost none of it was product surface you can configure. Microsoft's security researchers published two supply-chain compromise analyses in three days, Azure WAF shipped guidance for two fresh web CVEs, and four Azure CVEs went into the Update Guide. Service tags became a first-class match condition in the Front Door WAF rule engine, which is a small change that removes a genuinely annoying piece of manual work.
Azure worked on hub-and-spoke routing from both ends at once
Two capabilities, documented in the same week, that together describe one problem: in a large hub-and-spoke estate, route tables do not scale the way the topology does.
| Capability | Direction it fixes | Status |
|---|---|---|
disablePeeringRoute |
Routes inside Azure — what a spoke subnet sees | Public preview |
summarizedGatewayPrefixes |
Routes advertised out to on-premises | Documented, no preview label |
Start with the first, because the problem it solves is one of those things that is obvious once stated and invisible until it bites. You build a hub-and-spoke network, put a firewall in the hub, and write a user-defined route sending everything through it. You summarise that route, because writing one per spoke does not scale. And then traffic does not go through the firewall.
The documentation now says why, plainly: “Azure selects routes by longest prefix match. A system-generated peering route can be more specific than a summarized UDR. In that case, Azure selects the peering route, and traffic bypasses the NVA.”
Your summarised route is a /8. The peering route Azure generated for the spoke is a /16. Longest prefix wins, so Azure uses its own route and your inspection path is bypassed — silently, with a correct-looking configuration on both sides. The documented workaround until now was a per-spoke override, and the documentation is candid about what that costs: “As you add spokes, per-spoke route overrides consume route-table capacity and require recurring configuration.”
The new property suppresses the system routes instead. It is “a route-table capability” that “suppresses system-generated IPv4 and IPv6 peering routes for supported workloads on subnets associated with the route table while preserving the virtual network peering connection” — the peering keeps working, only its automatic routes stop appearing.
Two values, and the default is the safe one:
disablePeeringRoute | Behaviour |
|---|---|
None | Azure adds system-generated peering routes. This value is the default. |
All | Azure suppresses IPv4 and IPv6 system-generated peering routes for supported workloads on subnets associated with the route table. |
So nothing changes in an existing estate until somebody opts in, which is the right call for a property whose failure mode is a subnet with no route to its peers.
Two design details are worth noting because they both reduce the blast radius. It applies “at subnet scope through the associated route table while retaining peering connectivity and leaving other subnets unchanged” — so this is not a per-peering switch that affects everything. And “you don’t need to change individual peering resources”: during preview it is managed through the route table rather than through Virtual Network Manager routing rule collections. A routing change that does not require touching the peering objects is a routing change you can roll back.
The one warning in that section deserves repeating because it is the obvious way to break a production network at 2am:
“Disabling peering route propagation doesn’t create replacement routes or an inspection path. Before you enable it, configure the required UDRs and ensure that the specified next hop can forward traffic to the destination.”
Set All without the UDR already in place and correct, and you have removed the only routes the subnet had to its peers. The feature's whole purpose is to let your route win; if you have not written the route, nothing wins.
The preview boundary cuts across the scenario the same page recommends
This is the part to read carefully before planning around the preview, because two passages on the same page pull in different directions.
The recommendation: “Use disable peering route propagation in large hub-and-spoke networks when you need to keep a centralized inspection path manageable as the network grows.” The accompanying diagram puts the gateway and the firewall in the hub virtual network and the workloads in spokes — which is what hub-and-spoke means.
The limitation: “During public preview, the Azure Firewall or NVA next hop must be in the same virtual network as the source workload’s network interface. A next hop in a peered virtual network isn’t supported.”
A spoke workload sending traffic to a firewall in the hub is, by definition, a next hop in a peered virtual network. So the centralised-inspection topology the feature is recommended for is the topology the preview says it does not yet support. I am reading two paragraphs rather than testing a deployment, and the reconciliation may be narrower than it looks — the suppression is applied per subnet, so there are arrangements where the appliance and the workload share a virtual network. But if you are evaluating this for the classic shape, firewall in the hub and workloads in spokes, that is the combination the preview restriction names, and it is worth confirming before it goes in a design document.
Two narrower constraints alongside it. Azure BareMetal Infrastructure is carved out: “Peering route suppression doesn’t apply to Azure BareMetal Infrastructure workloads… Other supported workloads in the same subnet use the summarized routes normally.” That is a mixed-routing subnet — two workload types on one subnet following different route tables — and it is the sort of thing that makes a packet capture confusing much later.
And an infrastructure-as-code gap: “For Terraform, use the AzAPI provider. The AzureRM provider doesn’t currently support this setting.” Worth knowing before you plan the rollout, since it means this one property cannot sit in the same resource block as the rest of your route table. The AzureRM provider shipped v5.11.0 on 23 October, which is in the inventory below; I have not checked its changelog against this gap, so treat the documentation's statement as current.
The companion property, and two route limits worth not confusing
The peering page points at a second capability and says to use them together: “you can combine this capability with advertised gateway prefixes and use a summarized UDR instead of maintaining a separate override for each spoke.”
The two are symmetrical. disablePeeringRoute controls what a spoke subnet sees inside Azure. summarizedGatewayPrefixes controls what Azure tells on-premises. Both exist because the default behaviour scales linearly with the number of spokes, and the default on the outbound side is generous: “By default, Azure VPN Gateway and ExpressRoute Gateway advertise all address spaces of the hub virtual network and all address spaces of peered virtual networks to on-premises.”
Every spoke you peer therefore adds its prefixes to what your on-premises routers learn. Setting the property replaces that with a list you choose — “advertise a summarized CIDR (for example, a /16) instead of many smaller CIDRs (for example, multiple /24s)” — and the suppression is conditional rather than blunt: the gateways “check the hub address space and don’t publish any addresses that are covered by the summarized space. If the address space isn’t covered, it’s still advertised.”
Now the figure, and the care it needs. The page's stated trigger for using this is: “You’re approaching ExpressRoute advertised-prefix limits (for example, 1,000 IPv4 prefixes and 100 IPv6 prefixes).”
Yesterday's post on joining networks cited a different ExpressRoute figure from the ExpressRoute overview — Premium raising private-peering routes from 4,000 to 10,000. Those are not the same limit and should not be averaged into a single number in your head. One concerns prefixes advertised from Azure outward; the other concerns routes on the private peering. If you are planning an address scheme against a route ceiling, read the limit that matches your direction rather than the larger of the two.
Three operational details that will each cost somebody an afternoon:
- It is read in exactly one place. “The hub virtual network that contains the gateway subnet is the only virtual network that reads the
summarizedGatewayPrefixesproperty. If you set this property on spoke (peered) virtual networks, it’s ignored.” Set on the wrong network it fails silently and successfully — the API accepts it and nothing happens. - It can be set before it can work. “You can set the
summarizedGatewayPrefixesproperty even if the virtual network doesn’t have a gateway subnet or gateway. However, this property doesn’t take effect until the virtual network has a gateway subnet and gateway.” Convenient for templating, and another way to have it configured and inert. - Include the hub. “Ensure that the summarized prefix includes the gateway virtual network address space.” Summarise only the spokes and you have stopped advertising the hub.
One pleasant surprise: “Summarization doesn’t require Azure Route Server.” Route summarisation is the kind of thing that usually arrives attached to another billable resource, and this does not.
The overlap rules are worth getting right in one reading, because they are not the same rule twice: “Don’t use overlapping prefixes within the list. Overlap with peered virtual networks is allowed and expected in hub-and-spoke designs.” Internal overlap bad, overlap with the spokes it is summarising is the entire point. And the list itself is unconstrained by the network it sits on: “an independent value. It can be outside the virtual network’s specified address space.”
Service tags reached the Front Door WAF rule engine
Announced as generally available for Front Door Premium WAF, and the custom-rules documentation now lists it among the match variables: “A match condition might be based on geo-location, client IP addresses (CIDR), size, AS Number, Client Fingerprint, Service Tag, or string match.”
The work this removes is real. Writing a WAF rule that treats Azure-originated traffic differently previously meant maintaining a CIDR list by hand against a service tag that changes on Microsoft's schedule rather than yours. A match condition that names the tag instead of its current contents is the difference between a rule that stays correct and a rule that was correct when you wrote it.
Note that the documentation page carries “Applies to: Front Door Standard, Front Door Premium” for custom rules generally, while the announcement scopes the service tag condition to Premium. If the tier matters to your design, check the tier before building on it — the page's applies-to banner covers the feature family, not necessarily each match condition in it.
Two rule-engine behaviours worth re-reading while you are in there, since custom rule ordering is a recurring source of surprise. Evaluation is by priority and it short-circuits: “Rules with lower-priority values are evaluated before rules with higher values. The rule evaluation stops on any rule action except for Log.” So Log is the only non-terminal action of the four — Allow, Block, Log and Redirect — and it “continues to evaluate the next rule in the priority order”. That makes Log the way to stage a new rule against live traffic, and it pairs with the ability to “disable a custom rule to prevent it from being evaluated but still keep the configuration”.
Sovereignty was the loudest theme and the thinnest product surface
By volume this was the week's biggest story: seven items across the Microsoft corporate blog, the Azure blog, the Azure Infrastructure Tech Community blog and the Azure Arc blog, all between 19 and 22 October. Sovereign Public Cloud, Sovereign Private Cloud, sovereign AI from edge to cloud, sovereign AI at NVIDIA GTC Berlin, Foundry Local on Azure Local, plus a data-residency explainer for Entra ID.
A coordinated campaign of that size usually precedes or accompanies product change, and some of it clearly does — Azure Local picked up scheduled backups with disconnected operations, an Azure Copilot, and GitHub Enterprise Local in the same window, which is a coherent set of moves for customers who need a control plane that keeps working when disconnected.
But I am not going to analyse the announcements in depth here, for a reason worth stating: none of them resolve to documentation that states a configurable behaviour, a limit or a price. They are positioning pieces published on blog hosts, and this series' standard is that a claim cites Microsoft's own documentation. Seven blog posts about sovereignty is an accurate description of what was published and a poor basis for telling anyone what to do differently on Monday. They are in the inventory below with their links; when the capabilities land on learn.microsoft.com with properties and limits attached, they will be worth a section.
Two supply-chain compromises, two web CVEs and four Azure CVEs
Microsoft's security researchers published two supply-chain analyses in three days: one on the LiteLLM 1.107.0 compromise, describing credential theft through Python startup hooks, and one on an AI-driven nation-state campaign using a toolkit called ARTEX to achieve supply-chain compromise via ConnectWise. A third piece argued that AI agents should be treated as insiders for security purposes. All three are on Microsoft's security blog host rather than the documentation host, so they carry no claims here — but a Python startup-hook credential theft is worth reading in full if you run Python workloads that install from a package index at build time, which is most of them.
The Azure Network Security blog shipped WAF mitigation guidance for two fresh web vulnerabilities in two days — PHP2Shell (CVE-2026-109618 and CVE-2026-109619), with both upgrade guidance and a separate custom-rules article, and a Brotli vulnerability (CVE-2026-111497). That is a faster turnaround than this blog usually manages, and the pattern is the useful part: WAF rules are the stopgap while you upgrade, not the fix.
Four Azure CVEs went into the MSRC Update Guide, all dated 22 October, and the shape is more interesting than the count:
| CVE | Component | Class |
|---|---|---|
| CVE-2026-105014 | Azure Pipelines | Remote code execution |
| CVE-2026-108456 | Azure AI Foundry | Elevation of privilege |
| CVE-2026-83938 | Azure Kubernetes Configuration Service | Elevation of privilege |
| CVE-2026-110063 | VM Inspector for Azure Virtual Machines | Elevation of privilege |
One RCE and three elevations of privilege, and the RCE is in the build system. A remote code execution in Azure Pipelines is a CI/CD compromise, which in practice means every credential your pipelines hold — the same blast radius the two supply-chain articles published the same week are about. The co-occurrence is coincidence; the lesson the three of them point at together is not.
The rest, briefly
Networking and delivery. Azure DNS reached GA for DNS-based load balancing through Traffic Manager linked records. Application Gateway got keyless TLS backed by Key Vault Managed HSM, which matters if your private keys are not allowed to exist outside an HSM boundary. Data Collection Endpoint private connectivity gained IP Endpoint Compression in preview — the same scale pressure as the routing work above, applied to private endpoints. The Azure Infrastructure blog published a piece on routable and non-advertised Azure networks that covers the same ground as the address-exhaustion techniques in #63.
Monitoring. Advanced platform metrics and metrics usage insights for Azure Monitor workspace both went GA, each announced twice — once on Azure Updates and once on the Observability blog.
Data. Cosmos DB Safe Key Rotation reached GA. Azure SQL had a busy week: a modern query editor GA, Database Hub alerts in preview via Fabric Activator, Managed Instance link with failover groups in limited preview, and MI link support for multiple databases in an availability group. On PostgreSQL, a piece on replication slots silently filling Flexible Server storage is the one to read — that failure is quiet until the server stops.
Compute and containers. Live migration for Confidential Computing was announced, which closes a real gap: confidential VMs that cannot migrate are confidential VMs that take maintenance as downtime. Azure Backup added item-level recovery for VMs on Premium SSD v2 and Ultra Disks. Container Registry got data transfer and transactions metrics at GA, with a companion piece on the platform behind them.
Cost and lifecycle. Defender for Cloud introduced the Defender Workload Unit as a billing simplification — any change to how a security product is metered deserves a look at your own numbers rather than a reading of the announcement. Logic Apps Automation published pricing and a free grant. And a deadline worth diarising: the Apps on Azure blog asked readers to plan Java upgrades ahead of Microsoft's 2027 support milestones.
AI. Nine Foundry items, the densest single source of the week. Decisions API at GA, new models including Nemotron 3.5 Super VL and Cohere Rerank V5, fine-tuning expansion with shared multi-LoRA deployments. Volume, not architecture.
What I would act on
| Do this | Why now |
|---|---|
Check whether your hub firewall is actually in the path. Read effective routes on a spoke NIC and look for next hop type Virtual network peering where you expected your UDR. |
This is the bypass the new preview exists to fix, and it is silent. You do not need the preview to run the check, and the answer tells you whether you have been inspecting traffic you thought you were. |
| Count the prefixes your gateway advertises on-premises. Default behaviour advertises the hub plus every peered spoke. | summarizedGatewayPrefixes needs no preview and no Route Server. If your spoke count is growing, this is the cheap fix before you meet a route limit. |
| Replace hand-maintained Azure CIDR lists in Front Door WAF rules with the service tag match condition. | A hand-maintained list of Microsoft's address space is wrong on a schedule you do not control. |
| Treat the Azure Pipelines RCE as a credential-exposure event, not a patch item. | CVE-2026-105014 is remote code execution in the system that holds your deployment credentials. |
| Re-run your Defender for Cloud cost estimate under workload units. | Billing-model changes are described as simplifications and are rarely cost-neutral in both directions. |
| Put Microsoft's 2027 Java support milestones in a calendar now. | Runtime upgrade deadlines are cheap to plan a year out and expensive to discover. |
If you plan to pilot disablePeeringRoute, write and verify the UDR first. |
It suppresses routes without creating replacements. The order of operations is the whole risk. |
Complete inventory — all 78
Every item the feed audit returned for 19–23 October 2026, from 47 probed sources with none broken or empty. The forty-plus sources reporting zero items for the window are not listed.
The arithmetic. The sources reported 88 items in range. Ten of those are double-counted: the Azure Updates announcements arrive through both the release-communications archive and the RSS feed, and the same ten appear in each. That leaves 78 distinct items, which is the number of rows below. No item was dropped for being minor.
Official Azure references
Fetched and used — the pages this post's claims were verified against:
- Azure Virtual Network peering — 18 claims: the disable peering route propagation preview, the longest-prefix-match bypass, the
disablePeeringRoutevalues, the preview limitations, subnet peering and peering pricing - Advertised gateway prefixes in Azure virtual networks — 11 claims: default advertisement behaviour, the 1,000 IPv4 and 100 IPv6 advertised-prefix figures, where the property is read, and the overlap rules
- WAF custom rules for Azure Front Door — 5 claims: the match-condition list including Service Tag, the tier applicability, rule types, priority evaluation and the four actions
Listed but not fetched — these carry no claims in this post:
- Every link in the inventory table above. Announcement pages on
azure.microsoft.com/updatesare rendered client-side and cannot be read as a source; Tech Community, MSRC and the Microsoft security and corporate blogs are not documentation hosts. They are inventory, which is what the table is for. - Configure disable peering route propagation — the how-to the overview points at, for when you pilot it
Comments