TunnelVision er en angrebsmetode, der giver mulighed for at omdirigere offerets trafik til sin egen vært, hvis der er adgang til et lokalt netværk eller kontrol over et trådløst netværk, uden at bruge VPN. I stedet for at sende gennem VPN'en vil trafikken blive sendt åbent uden tunneling til angriberens system. Problemet påvirker alle VPN-klienter, der ikke bruger isolerede netværksnavneområder (network namespaces) ved rute omdirigering gennem tunnelen eller ikke opsætter packet filtering regler, der forbyder routing af VPN-trafik gennem eksisterende fysiske netværksinterfaces.
Angrebets kerne er, at angriberen kan starte sin egen DHCP-server og bruge den til at overføre information til klienten for at ændre routing. Specifikt kan angriberen udnytte den DHCP-option 121 (RFC-3442, vedtaget i 2002), der er beregnet til at videregive oplysninger om statiske ruter, til at ændre routing-tabellen på offerets maskine og dirigere trafikken udenom. VPN. Omdirigeringen sker ved at indstille en række ruter for undernet med præfikset /1, som har en højere prioritet end den standardrute med præfikset /0 (0.0.0.0/0), hvilket betyder, at trafikken i stedet for at gå gennem den tildelte VPN virtuelle netværksinterface vil blive sendt gennem det fysiske netværksinterface til angriberens vært i det lokale netværk.
Angrebet kan udføres på alle operativsystemer, der understøtter DHCP-option 121, herunder Linux, Windows, iOS og macOS, uafhængigt af den anvendte VPN-protokol (Wireguard, OpenVPN, IPsec) og combos af kryptering. Android-platformen er ikke sårbar, da den ikke behandler option 121 i DHCP. Angrebet giver dog adgang til trafikken, men muliggør ikke indtrængen i forbindelserne eller bestemmelse af indholdet, der sendes ved hjælp af sikre applikationsprotokoller som TLS og SSH. For eksempel kan angriberen ikke fastslå indholdet af HTTPS-anmodninger, men kan forstå, hvilke servere de sendes til.
For protection against attacks, it is possible to prohibit the sending of packets addressed to the VPN interface through other network interfaces at the packet filter level; block DHCP packets with option 121; use the VPN within a separate virtual machine (or container) isolated from the external network, or apply special tunnel configuration modes using namespaces in Linux (network namespace). A set of scripts has been published for experiments with conducting the attack.

It should be noted that the idea of local routing changes is not new and has previously been used in attacks aimed at DNS server substitution. In a similar attack, TunnelCrack, where traffic redirection was achieved by replacing the default gateway, the problem affected all tested VPN clients for iOS, 87.5% of VPN clients for macOS, 66.7% for Windows, 35.7% for Linux, and 21.4% for Android. In the context of VPN and DHCP, this method was also mentioned earlier, for example, one of the reports at last year's USENIX 2023 conference discussed it (the study showed that 64.6% of the 195 tested VPN clients were vulnerable to the attack).
For routing substitutions, it was also suggested to use a specially designed USB flash drive that simulates the operation of a network adapter, which declares itself as a gateway when connected to a computer via DHCP. Additionally, when the gateway is controlled (for example, when the victim connects to a wireless network controlled by the attacker), a technique for injecting packets into the tunnel, perceived in the context of the VPN network interface, was developed.
Data flows while using VPN:

Data flows after the attack has been executed:

Kilde: opennet.ru
