The researchers believe it affects all VPN applications when they’re connected to a hostile network and that there are no ways to prevent such attacks except when the user's VPN runs on Linux or Android.
Partially. The summary isn’t quite in line with the detail:
Android is the only operating system that fully immunizes VPN apps from the attack because it doesn't implement option 121. For all other OSes, there are no complete fixes. When apps run on Linux there’s a setting that minimizes the effects, but even then TunnelVision can be used to exploit a side channel that can be used to de-anonymize destination traffic and perform targeted denial-of-service attacks.
Network firewalls can also be configured to deny inbound and outbound traffic to and from the physical interface. This remedy is problematic for two reasons: (1) a VPN user connecting to an untrusted network has no ability to control the firewall and (2) it opens the same side channel present with the Linux mitigation.
Sure, they can't control the network firewall, but why would you do that when you can change your local firewall? Set an iptables rule to drop all traffic going out the physical interface that isn't destined for the VPN server. I'm 70% sure some vpn clients do this automatically.
ProtonVPN client on Linux has killswitch. I had to reinstall Ubuntu due to that, since it stopped network connectivity outside of VPN even when I wanted to.