Vulnerability “Port Fail” reveals real IP address
We have discovered a vulnerability in a number of providers that allows an attacker to expose the real IP address of a victim. “Port Fail” affects VPN providers that offer port forwarding and have no protection against this specific attack. Perfect Privacy users are protected from this attack.
This IP leak affects all users: The victim does not need to use port forwarding, only the attacker has to set it up.
We have tested this with nine prominent VPN providers that offer port forwarding. Five of those were vulnerable to the attack and have been notified in advance so they could fix this issue before publication. However, other VPN providers may be vulnerable to this attack as we could not possibly test all existing VPN providers.
Details about the leak
The attacker needs to meet the following requirements:
- Has an active account at the same VPN provider as the victim
- Knows victim’s VPN exit IP address (can be obtained by various means, e.g. IRC or torrent client or by making the victim visit a website under the attackers control)
- The attacker sets up port forwarding. It makes no difference whether the victim has port forwarding activated or not.
The IP leak can then be triggered as follows:
- Victim is connected to VPN server 18.104.22.168
- Victim’s routing table will look something like this:
0.0.0.0/0 -> 10.0.0.1 (internal vpn gateway ip)
22.214.171.124/32 -> 192.168.0.1 (old default gateway)
- Attacker connects to same server 126.96.36.199 (knows victim’s exit through IRC or other means)
- Attacker activates Port Forwarding on server 188.8.131.52, example port 12345
- Attacker gets the victim to visit 184.108.40.206:12345 (for example via embedding <img src=”http://220.127.116.11:12345/x.jpg”> on a website)
- This connection will reveal the victim’s real IP to the attacker because of the “18.104.22.168/32 -> 192.168.0.1” vpn route.
The crucial issue here is that a VPN user connecting to his own VPN server will use his default route with his real IP address, as this is required for the VPN connection to work. If another user (the attacker) has port forwarding activated for his account on the same server, he can find out the real IP addresses of any user on the same VPN server by tricking him into visiting a link that redirects the traffic to a port under his control.
Also note that due to the nature of this attack all VPN protocols (IPSec, OpenVPN, PPTP, etc.) and all operating systems are affected.
Affected VPN providers should implement one of the following:
- Have multiple IP addresses, allow incoming connections to ip1, exit connections through ip2-ipx, have portforwardings on ip2-ipx
- On Client connect set server side firewall rule to block access from Client real ip to portforwardings that are not his own.