VPN security —

iOS VPNs have leaked traffic for years, researcher claims [Updated]

VPNs on Apple mobile devices reportedly keep connections open and expose data.

iOS VPNs have leaked traffic for years, researcher claims [Updated]
Getty Images

(Update, Aug. 18, 2:40 p.m.: Proton founder and CEO Andy Yen said in a statement: "The fact that this is still an issue is disappointing to say the least. We first notified Apple privately of this issue two years ago. Apple declined to fix the issue, which is why we disclosed the vulnerability to protect the public. Millions of people’s security is in Apple’s hands, they are the only ones who can fix the issue, but given the lack of action for the past two years, we are not very optimistic Apple will do the right thing.")

Original story: A security researcher says that Apple's iOS devices don't fully route all network traffic through VPNs as a user might expect, a potential security issue the device maker has known about for years.

Michael Horowitz, a longtime computer security blogger and researcher, puts it plainly—if contentiously—in a continually updated blog post. "VPNs on iOS are broken," he says.

Any third-party VPN seems to work at first, giving the device a new IP address, DNS servers, and a tunnel for new traffic, Horowitz writes. But sessions and connections established before a VPN is activated do not terminate and, in Horowitz's findings with advanced router logging, can still send data outside the VPN tunnel while it's active.

In other words, you might expect a VPN client to kill existing connections before establishing a secure connection so they can be re-established inside the tunnel. But iOS VPNs can't seem to do this, Horowitz says, a finding that is backed up by a similar report from May 2020.

"Data leaves the iOS device outside of the VPN tunnel," Horowitz writes. "This is not a classic/legacy DNS leak, it is a data leak. I confirmed this using multiple types of VPN and software from multiple VPN providers. The latest version of iOS that I tested with is 15.6."

Security blogger Michael Horowitz's logs show a VPN-connected iPad reaching out to both his VPN provider (37.19.214.1) and Apple Push (17.57.144.12). The Apple connection is outside the VPN and could potentially expose his IP address if seen by an ISP or other parties.
Security blogger Michael Horowitz's logs show a VPN-connected iPad reaching out to both his VPN provider (37.19.214.1) and Apple Push (17.57.144.12). The Apple connection is outside the VPN and could potentially expose his IP address if seen by an ISP or other parties.

Privacy company Proton previously reported an iOS VPN bypass vulnerability that started at least in iOS 13.3.1. Like Horowitz's post, ProtonVPN's blog noted that a VPN typically closes all existing connections and reopens them inside a VPN tunnel, but that didn't happen on iOS. Most existing connections will eventually end up inside the tunnel, but some, like Apple's push notification service, can last for hours.

The primary issue with non-tunneled connections persisting is that they could be unencrypted and that the IP address of the user and what they're connecting to can be seen by ISPs and other parties. "Those at highest risk because of this security flaw are people in countries where surveillance and civil rights abuses are common," ProtonVPN wrote at the time. That might not be a pressing concern for typical VPN users, but it's notable.

ProtonVPN confirmed that the VPN bypass persisted in three subsequent updates to iOS 13. ProtonVPN indicated in its blog post that Apple would add functionality to block existing connections, but this functionality as added did not appear to make a difference in Horowitz's results.

Horowitz tested ProtonVPN's app in mid-2022 on an iPad iOS 15.4.1 and found that it still allowed persistent, non-tunneled connections to Apple's push service. The Kill Switch function added to ProtonVPN, which describes its function as blocking all network traffic if the VPN tunnel is lost, did not prevent leaks, according to Horowitz.

Horowitz tested again on iOS 15.5 with a different VPN provider and iOS app (OVPN, running the WireGuard protocol). His iPad continued to make requests to both Apple services and to Amazon Web Services.

ProtonVPN had suggested a workaround that was "almost as effective" as manually closing all connections when starting a VPN: Connect to a VPN server, turn on airplane mode, then turn it off. "Your other connections should also reconnect inside the VPN tunnel, though we cannot guarantee this 100%," ProtonVPN wrote. Horowitz suggests that iOS's Airplane Mode functions are so confusing as to make this a non-answer.

We've reached out to both Apple for comment and will update this article with any responses.

Horowitz's post doesn't offer specifics on how iOS might fix the issue. He also doesn't address VPNs that offer "split tunneling," focusing instead on the promise of a VPN capturing all network traffic. For his part, Horowitz recommends a $130 dedicated VPN router as a truly secure VPN solution.

VPNs, especially commercial offerings, continue to be a complicated piece of Internet security and privacy. Picking a "best VPN" has long been a challenge. VPNs can be brought down by vulnerabilities, unencrypted serversgreedy data brokers, or by being owned by Facebook.

(Update 2:58 pm ETUpdated to address notion of split tunneling and VPN expectations.)

(Update 12:53 pm ET, Aug. 25: Corrected a typo in a VPN company's name. Ars regrets the error.)

Channel Ars Technica