Zero-click Windows TCP/IP RCE impacts all systems with IPv6 enabled, patch now
bleepingcomputer.com
bleepingcomputer.com
> Found by Kunlun Lab's XiaoWei and tracked as CVE-2024-38063, this security bug is caused by an Integer Underflow weakness, which attackers could exploit to trigger buffer overflows that can be used to execute arbitrary code on vulnerable Windows 10, Windows 11, and Windows Server systems.
> "Considering its harm, I will not disclose more details in the short term," the security researcher tweeted, adding that blocking IPv6 on the local Windows firewall won't block exploits because the vulnerability is triggered prior to it being processed by the firewall.
> As Microsoft explained in its Tuesday advisory, unauthenticated attackers can exploit the flaw remotely in low-complexity attacks by repeatedly sending IPv6 packets that include specially crafted packets.
This is pretty nasty.I'm IPv6-only on my personal infra, and it's pretty nice. End to end reachability between machines and containers, and reduced need for middle boxes like reverse proxies.
> As a mitigation measure for those who can't immediately install this week's Windows security updates, Microsoft recommends disabling IPv6 to remove the attack surface.
and
> "That means it's wormable. You can disable IPv6 to prevent this exploit, but IPv6 is enabled by default on just about everything."
I'll try the guess the answer:
It would make it harder to develop, would prevent most errors like this from ever reaching production, but also would lower the performance baseline because Rust wouldn't allow to write code with some clever tricks like self modifying code.
The only real defence is that ipv6 addresses are harder to guess.
All somebody has to do is grep "::" some logs somewhere for millions of hosts then | uniq to remove dupliaces > to some file and then there's their master host list.
for all we know, bad actors could be positioning themselves right now. But for hosts that need ipv6 and have no ipv4 uplinks it's not like they can just disable their internet. They can, but they won't.
Cisco just laid off a major amount of their workforce too so, so should be interesting to watch.
Disable IPv6 on All Network Adapters
Open PowerShell as Administrator:
Right-click on the Start menu or press Windows Key + X.
Select Windows PowerShell (Admin) or Windows Terminal (Admin) if using a newer version of Windows.
Disable IPv6 on All Network Adapters:Execute the following command in PowerShell:
Get-NetAdapter | ForEach-Object { Disable-NetAdapterBinding -Name $_.Name -ComponentID ms_tcpip6 -PassThru } Explanation:
Get-NetAdapter: Retrieves all network adapters.
ForEach-Object { ... }: Iterates through each network adapter.
Disable-NetAdapterBinding: Disables the IPv6 binding for the specified network adapter.
-ComponentID ms_tcpip6: Specifies the IPv6 protocol to disable.
Disable IPv6 GloballyIf you want to disable IPv6 globally (not just on network adapters), you can use the Windows Registry to achieve this. Here’s how:
Open PowerShell as Administrator:
Same steps as above.
Disable IPv6 Globally:Execute the following commands to modify the Windows Registry:
# Disable IPv6 on all network interfaces Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters' -Name 'DisabledComponents' -Value 0xFF# Apply the changes by restarting the network interface or rebooting the system Restart-NetAdapter -Name (Get-NetAdapter | Select-Object -First 1).Name
Explanation:
Set-ItemProperty: Modifies a registry key value. In this case, it sets the DisabledComponents value to 0xFF, which disables all IPv6 components.
Restart-NetAdapter: Restarts the network adapter to apply changes. If this doesn’t work, a system reboot may be required.
Verify IPv6 StatusTo check if IPv6 has been disabled, you can run:
Get-NetAdapterBinding -ComponentID ms_tcpip6
This command will list network adapters and show whether the IPv6 binding is enabled or disabled. Re-enable IPv6
If you want to re-enable IPv6, you can run:
Get-NetAdapter | ForEach-Object { Enable-NetAdapterBinding -Name $_.Name -ComponentID ms_tcpip6 -PassThru }
Important Notes
Administrative Privileges: Disabling network features typically requires administrative rights.
Network Impact: Disabling IPv6 might affect certain network functionalities or applications that rely on it, so be sure that it’s necessary for your use case.
Reboot: Some changes might require a reboot to take full effect.
By following these steps, you can disable IPv6 on your Windows system using PowerShell.You'd be much more likely to find a vulnerable computer that you can actually talk to by looking at AAAA records for websites. Or if you were a malicious website, wait for people to talk to you, and then send evil responses.
ipv6 and global addressability allows p2p services to work, which is necessary to get away from centralized service providers like google/facebook/etc.
Problem: in most consumer firewalls, and even in OpenWrt, there are simply no words to express this. I don't know what my IPv6 prefix would be next time my modem reconnects, therefore, I don't know which IPv6 address my computer would then get. However, firewall configuration tools are built under the assumption that static IPs are the only existing ones. I just cannot write "the delegated prefix from the WAN plus :d63d:7eff:fed9:0a39".
Have been using this for years
I'd assume it's probably blocked by the vast majority if it's a TCP vuln (cause stateful firewalls).