On a Tuesday night during Microsoft’s latest mega-patch cycle, a regional bank finished closing NetScaler and Windows flaws across two data centers. The change ticket also flipped IPv6 on for three user VLANs that had been dual-stack ready for months. By morning, helpdesk tickets reported intermittent SaaS logins and “wrong gateway” errors on wired desktops. Packet captures showed clients accepting DHCPv6 Advertise messages from a compromised printer VLAN host. That host handed out a /64 and a default route pointing at an attacker-controlled relay. IPv4 still looked clean. The edge deny lists still matched last week’s Recorded Future IoCs. The diversion lived entirely in IPv6 address assignment.
That pattern tracks with how modern abuse campaigns move. Threat intelligence digests in late September and early October keep highlighting dual-stack infrastructure, resold camera access, and malware callback diversity. Operators who already buy footholds on exposed cameras or jump hosts treat unguarded DHCPv6 the same way they treat open Winbox: a quiet way to own the next hop without triggering the IPv4-centric playbooks most SOCs still run first.
Where address assignment becomes the incident
Most IPv6 hardening checklists stop at RA Guard, basic ACL parity, and “block Teredo at the edge.” Those controls matter. They leave a gap when hosts obtain addresses and routes from DHCPv6, especially with Prefix Delegation (PD) on campus or branch routers. An attacker who can send DHCPv6 Advertise or Reply on a segment can:
- Publish a preferred default route that outranks the legitimate router for clients that trust DHCPv6 for routing information
- Delegate a prefix to a rogue CPE or virtual router so outbound sessions source from addresses your egress filters never expected
- Force clients onto temporary addresses inside an attacker-influenced prefix, which breaks simple IP-to-user joins in the SIEM for the duration of the lease
In the bank case, the rogue server leased addresses for two hours at a time. Identity logs showed successful MFA to the same SaaS tenant from two GUA ranges in one shift. Analysts initially filed it as residential proxy geo drift. The root cause was local: a single host answering DHCPv6 Solicits on VLAN 40.
Why patch weeks make this worse
When vendors ship huge remediation batches, such as Microsoft’s recent wave of more than 1,400 fixed flaws, network teams compress dual-stack enablement into the same windows as appliance upgrades. IPv6 gets turned on to close “IPv4-only isolation” findings from tabletop reviews, while DHCPv6 Guard, DHCP snooping equivalents, and PD ACLs stay on the backlog. Attackers who already scan for edge RCE and camera management planes notice new AAAA records and start probing on-link services that suddenly speak IPv6.
Consumer-fraud encyclopedias and sector monthly reports rarely name DHCPv6. The operational lesson still applies: abuse follows the control that was enabled last and monitored least. If your IPv4 DHCP snooping has been mature for a decade and your IPv6 side only has RA Guard, the assignment plane is the soft target.
Failure signatures worth hunting now
Build a short hunt around lease and neighbor telemetry before you rewrite the entire IPv6 policy set.
- Multiple DHCPv6 servers per VLAN. Switch or firewall logs should show one legitimate server or relay. A second DUID appearing after a patch window is a high-priority ticket.
- Default route sources that are not your core routers. Compare ICMPv6 Router Advertisement sources with DHCPv6-provided routers. Divergence means clients may prefer the wrong next hop depending on OS policy.
- Sudden PD consumers. Branch firewalls that start requesting delegated prefixes outside the change calendar often indicate misconfig or compromise of the WAN edge.
- Egress from prefixes you never allocated. NetFlow or firewall session logs sourced from GUAs inside your announced space, yet outside your IPAM ranges, point to rogue delegation or mis-advertised pools.
- Auth success from rotating IPv6 addresses with stable device IDs. Join MDM or 802.1X identity to full 128-bit addresses. Privacy extensions are normal; prefix changes mid-day on a wired corporate VLAN are not.
Remediation that survives contact with production
1. Treat DHCPv6 Guard as a peer of RA Guard
On access switches that already enforce RA Guard, enable DHCPv6 Guard (or vendor-equivalent DHCP snooping for IPv6) in the same change. Mark trusted ports toward relays and servers only. Untrusted access ports should drop Advertise and Reply from clients. Validate with a lab host running a rogue DHCPv6 before you declare the VLAN dual-stack ready.
Tradeoff: Strict Guard profiles break legitimate relay daisy-chains and some printer or IoT controllers that embed miniature DHCPv6 services. Inventory those devices first, put them on isolated ports with explicit trust, and document why. Blanket trust on “voice/IoT” VLANs recreates the printer-VLAN failure above.
2. Pin Prefix Delegation to known clients and lengths
If you use PD for branches, allow only expected DUIDs or circuit IDs to receive prefixes, and only at the lengths your IPAM issues (commonly /56 or /60). Log every PD grant to the same SIEM index you use for IPv4 DHCP. Alert on grants outside change tickets.
Caveat: Some CPE devices rotate DUIDs after factory reset. Pair PD auth with circuit-id or interface binding so a reset becomes a controlled re-onboarding event rather than a silent new consumer of corporate space.
3. Force dual-stack clients through one egress policy object
Map each user VLAN’s IPv6 GUAs into the same firewall object group and identity rule path you already use for IPv4. When a rogue prefix appears, sessions either hit deny or at least generate the same application-layer telemetry as IPv4. This is especially useful when hunting malware IoCs that publish both families of addresses in the same campaign package.
Tradeoff: Over-broad object groups that include unused /48 space hide rogue leases inside “allowed corporate IPv6.” Prefer IPAM-synchronized groups updated by automation after each pool change, with a maximum lag you are willing to defend in an incident review (for example, 15 minutes).
4. Store and match full IPv6 addresses in IR tooling
Truncated 64-bit network fields destroy investigations when privacy addresses rotate. Ensure proxy, VPN, identity, and EDR pipelines keep all 128 bits and can join on /64 and /128. When external IoC feeds list IPv6 literals next to camera-botnet or loader infrastructure, your correlation jobs need the same width as the feed.
5. Add assignment-plane checks to patch-window exit criteria
Do not close a dual-stack or appliance-patch change until you have: (a) a packet capture or switch counter proof that untrusted ports drop rogue DHCPv6, (b) a flow query showing no sources outside IPAM, and (c) a sample client route table with the expected default router only. Make those three artifacts attachment-required on the ticket.
A practical 48-hour hardening sequence
If you suspect exposure today, use a sequence that limits blast radius without freezing partner traffic.
- Hours 0–4: Dump DHCPv6 server bindings and RA sources per access VLAN. Quarantine any host originating Advertise/Reply on an access port. Preserve TCMs and switch logs before port shut.
- Hours 4–12: Enable DHCPv6 Guard on the VLANs that carry interactive users and jump hosts first. Leave lab and voice segments for the next window if they have known embedded servers.
- Hours 12–24: Reconcile firewall IPv6 object groups to IPAM. Drop or challenge egress from unknown prefixes. Replay recent malware and camera-access IoCs against both address families in proxy and DNS logs.
- Hours 24–48: Add SIEM detections for dual DUIDs per VLAN and for PD grants outside change control. Schedule the same Guard controls on remaining IoT VLANs with device owners in the room.
Caveats administrators learn the hard way
RA Guard alone leaves DHCPv6 unprotected on many switch software trains. Confirm the feature matrix for your exact code version; some platforms implement Guard for RA but only partial filtering for DHCPv6. Host firewalls that “allow IPv6 DHCP” broadly will still accept rogue leases if the wire delivers them, so on-host policy complements, rather than replaces, access-layer Guard.
Also respect Path MTU needs when you tighten ICMPv6. Assignment-plane hardening and ICMPv6 type filtering are separate controls. If you collapse them into one emergency ACL, you can break legitimate PMTU while still missing the rogue server.
Takeaways for the next change window
IPv6 security for working enterprises is less about exotic extension-header puzzles and more about who is allowed to hand out addresses and routes on each VLAN. Tie DHCPv6 Guard and PD authorization to the same dual-stack enablement tickets that follow large patch releases. Hunt for second servers, unexpected prefixes, and default-route disagreement before you trust IPv4 blocklists to describe the incident. When threat feeds publish fresh IoCs after camera-access marketplaces or loader campaigns surge, join them to full-length IPv6 telemetry that includes how the host got its address, not only where the packet left your AS.
If your dual-stack exit criteria still read “AAAA resolves and users can browse,” add one more line: “untrusted ports cannot become DHCPv6 servers, and every leased prefix exists in IPAM.” That single requirement would have turned the bank’s overnight outage into a blocked Advertise on VLAN 40.