Your VPN app shows connected. The tunnel is genuinely up. And a web page just read your real IP address anyway.
That is a WebRTC leak, and the reason it surprises people is that nothing is broken.
Why the feature exists
WebRTC is what makes voice and video calls work in a browser without installing anything. To connect two people as directly as possible, it has to find out which addresses your machine can be reached on: the address on your local network, and usually the public one too.
That discovery happens below the browser's ordinary request handling, and the results are available to JavaScript on the page. A page can therefore ask, and get an answer, without your knowing.

The handle is closed and it is still dripping. That is the whole shape of the problem: the thing you turned off is off, and the water is arriving by a path that does not go through it.
Why the VPN cannot see it
The VPN operates at the network layer. The leak happens above it, inside the browser.
Your tunnel is faithfully carrying everything handed to it. WebRTC simply learned an address by another route and handed it to the page directly. The VPN was never asked and has nothing to report.
This is why the green icon is telling the truth and is still not an answer. It describes the tunnel. It cannot describe what the browser volunteered.
How to test it properly
Open a WebRTC test page with the VPN connected, and compare what it reports against the address your VPN app claims to give you. If your real one appears, you have a leak.
Three conditions that most instructions leave out:
- Test in every browser you use. The behaviour differs between them, and between versions of the same one.
- Test again after browser updates. This has regressed and been re-fixed repeatedly over the years, in both directions.
- Use two different test pages. A single site's implementation can be incomplete, and one result is not a measurement.
The fix, and its cost
Disabling WebRTC entirely works and breaks things. Video conferencing, browser voice chat and some screen sharing all depend on it. If you never use those, this is a clean answer. If you do, you will turn it back on and forget.
The better options, in order:
- A VPN client that handles this at the system level, so the addresses WebRTC can discover are the tunnel's ones. This is a genuine differentiator between providers and worth checking before subscribing rather than after.
- A browser setting that restricts which addresses WebRTC may expose, rather than switching the feature off. Available in most browsers, sometimes only behind a configuration page.
- An extension, last, because it operates inside the browser and adds to your fingerprint.
What this does not fix
A WebRTC leak is one specific hole. Closing it does not make you anonymous. Your login still identifies you, your cookies still identify you, and your browser fingerprint still identifies you whether or not this particular address escaped.
And the honest inverse, which matters if you are worrying about the wrong thing: if you are not logged in anywhere and your threat model is the cafe wifi, a WebRTC leak may cost you nothing at all. The address it reveals is the one your cafe already knows.
Test it, close it if it is open, and then go back to the two things that actually decide the outcome: what you are signed into, and which browser profile you did it from.
Frequently asked questions
- What is a WebRTC leak?
- WebRTC is the browser feature that makes video and voice calls work without a plugin. To connect two people directly, it has to discover the addresses your machine can be reached on, including the local network address and often the public one, and it does this at a layer below the browser's normal request handling. A page can ask for those candidate addresses in JavaScript. When one of them is your real IP rather than the VPN's, that is the leak.
- Does a WebRTC leak mean my VPN is broken?
- No, and this is what confuses people. The VPN can be routing your traffic perfectly while WebRTC still reports an address it discovered by other means. The tunnel is doing its job at the network layer; the leak happens inside the browser, above it. A green icon in the VPN app is telling you the truth about the tunnel and nothing at all about this.
- How do I test for a WebRTC leak?
- Open a WebRTC test page with your VPN connected and compare the addresses it reports against the IP the VPN says you have. If your real address appears, you have a leak. Test in every browser you use, because the behaviour differs between them and between versions, and test again after any browser update. A single test in one browser proves very little.
- Should I disable WebRTC entirely?
- Only if you never make browser-based calls. Disabling it breaks video conferencing, browser voice chat, and some screen sharing, all of which rely on it. If you do need those, the better answer is a VPN client that handles the leak at the system level, or a browser setting that restricts which addresses WebRTC may reveal rather than switching the feature off.
- Does incognito mode stop a WebRTC leak?
- No. Private browsing changes what the browser writes to your disk, not what a page may ask the network stack. The leak works exactly the same in a private window. This is one of several places where two privacy features get assumed to overlap and do not.
Store your files privately → pCloud
Swiss privacy · 10 GB free · optional zero-knowledge Crypto



