Foi proposto ao público o método de ataque TunnelVision, que permite, tendo acesso à rede local ou controle sobre a rede sem fio, redirecionar o tráfego da vítima para seu próprio host, contornando o VPN (em vez de ser enviado através do VPN, o tráfego será enviado em texto claro, sem tunelamento para o sistema do atacante). A vulnerabilidade afeta qualquer cliente VPN que não utiliza espaços de nomes de rede isolados (network namespace) ao direcionar o tráfego para o túnel ou que não aplica regras de filtragem de pacotes durante a configuração do túnel que impeçam a roteação do tráfego VPN através das interfaces de rede físicas existentes.
A essência do ataque reside no fato de que o atacante pode iniciar seu próprio servidor DHCP e usá-lo para fornecer ao cliente informações para alterar a roteação. Em particular, o atacante pode tirar proveito da opção 121 fornecida pelo protocolo DHCP (RFC-3442, adotada em 2002), destinada à transmissão de informações sobre rotas estáticas, para fazer alterações na tabela de roteamento da máquina da vítima e redirecionar o tráfego. VPNO redirecionamento é realizado por meio da configuração de uma série de rotas para sub-redes com prefixo /1, que têm prioridade mais alta do que a rota padrão com prefixo /0 (0.0.0.0/0); portanto, o tráfego, em vez de ser enviado pela interface de rede virtual destinada ao VPN, será redirecionado através da interface de rede física para o host do atacante na rede local.
O ataque pode ser realizado em qualquer sistema operacional que suporte a opção 121 do DHCP, incluindo Linux, Windows, iOS e macOS, independentemente do protocolo VPN utilizado (Wireguard, OpenVPN, IPsec) e do conjunto de cifrados. A plataforma Android não é vulnerável ao ataque, pois não processa a opção 121 no DHCP. No entanto, o ataque permite o acesso ao tráfego, mas não possibilita a intercepção de conexões ou a identificação do conteúdo transmitido usando protocolos seguros de nível de aplicação, como TLS e SSH; por exemplo, o atacante não pode identificar o conteúdo das solicitações HTTPS, mas pode entender a quais servidores elas estão sendo enviadas.
Para se proteger contra ataques, é possível proibir no nível do filtro de pacotes o envio de pacotes destinados à interface VPN através de outras interfaces de rede; bloquear pacotes DHCP com a opção 121; usar VPN dentro de uma máquina virtual separada (ou contêiner) isolada da rede externa, ou aplicar modos especiais de configuração de túneis que utilizam espaços de nomes no Linux (network namespace). Um conjunto de scripts foi publicado para experimentos com a realização de ataques.

Vale ressaltar que a ideia de alteração local da roteação não é nova e foi normalmente utilizada em ataques focados na substituição do servidor DNS. Em um ataque semelhante, o TunnelCrack, onde o redirecionamento do tráfego era feito através da substituição do gateway padrão, o problema afetava todos os clientes VPN testados para iOS, 87,5% dos clientes VPN para macOS, 66,7% para Windows, 35,7% para Linux e 21,4% para Android. No contexto de VPN e DHCP, o método também foi mencionado anteriormente, por exemplo, um dos relatórios na conferência USENIX 2023 focou nisso (a pesquisa mostrou que 64,6% dos 195 clientes VPN testados estavam vulneráveis ao ataque).
Para a inserção de rotas, já foi sugerido o uso de um pen drive USB especialmente formatado, simulando o funcionamento de um adaptador de rede, que ao ser conectado ao computador, através do DHCP, se declara como gateway. Além disso, com controle sobre o gateway (por exemplo, ao conectar a vítima a uma rede sem fio controlada pelo atacante), foi desenvolvida uma técnica de inserção de pacotes no túnel, percebidos no contexto da interface de rede VPN.
Fluxos de dados ao utilizar VPN:

Fluxos de dados após a realização do ataque:

Fonte: opennet.ru
