Hub/Blog/Browser Fingerprinting & Leaks
Browser Fingerprinting & LeaksRutvij Khatri•9 min read•Published 2026-10-27

WebRTC IP Leaks Explained: Why Your Real IP Address Bypasses Your VPN

Learn how WebRTC ICE candidates leak your local LAN and public ISP IP addresses even when connected to a commercial VPN, and how to test for leaks.

The Conflict Between Real-Time Audio/Video and Anonymity

WebRTC (Web Real-Time Communication) is an open web standard that enables browsers to establish direct peer-to-peer audio, video, and data channels without requiring browser plugins. It powers Google Meet, Discord, Zoom Web, and countless video conferencing platforms.

To establish a direct peer-to-peer connection through network firewalls and NAT (Network Address Translation) routers, WebRTC uses the ICE (Interactive Connectivity Establishment) protocol, communicating with STUN (Session Traversal Utilities for NAT) servers.

During this negotiation, the browser asks a STUN server: "What is my public IP address?" The STUN server reflects back the user’s true public ISP IP address. Because this request operates over UDP outside standard HTTP proxy settings, it frequently bypasses desktop VPN tunnels and browser proxy extensions.

Key Investigative Takeaway

WebRTC queries external STUN servers via UDP, which can bypass HTTP proxies and misconfigured VPNs to expose your true ISP IP address.

How Websites Exploit RTCPeerConnection to De-Anonymize Users

A website does not need your permission (such as camera or microphone prompts) to initiate an `RTCPeerConnection`. A silent JavaScript snippet can create an ICE candidate listener:

As the ICE candidates arrive, the script extracts candidates matching `typ srflx` (server reflexive candidates, which contain your public IP) and `typ host` (local network IP addresses like `192.168.1.45`).

Advertising networks, fraud detection firms, and law enforcement agencies use these candidates to identify the true geographical origin of a user who is otherwise masking behind a VPN or Tor relay.

Testing and Remediating WebRTC Leaks

OverlayCheck’s Browser Fingerprint tool initiates an in-memory STUN probe against Google’s public STUN server (`stun:stun.l.google.com:19302`) and displays your active local and public candidates.

To remediate WebRTC leaks:

1. Enable full-tunnel VPN routing with native kill-switches and IPv6 leak protection.

2. In Firefox, navigate to `about:config` and set `media.peerconnection.enabled` to `false`.

3. In Chrome/Brave, use privacy settings to set WebRTC policy to "Disable non-proxied UDP."

WebRTC Leak Protection: Standard Browsers vs. Hardened Browsers

Assessing default WebRTC handling and IP exposure risks across browser configurations.

Feature / DimensionOverlayCheck (Client-Side)Standard Google ChromeHardened Firefox / Brave
Default STUN IP Disclosure
Instant Leak Diagnostic Alert
Exposes true public IP via STUN by defaultRestricts non-proxied UDP / Masks IPs
Local LAN IP Disclosure
Displays detected mDNS / 192.168.x.x
Masked behind mDNS UUIDCompletely blocked

Command-Line Automation & CLI Workflows

For security engineers and forensic examiners automating pipelines or conducting terminal audits, the equivalent low-level commands can be executed natively:

Audit WebRTC ICE Candidates via JavaScript
javascript
const pc = new RTCPeerConnection({ iceServers: [{ urls: "stun:stun.l.google.com:19302" }] });
pc.createDataChannel("");
pc.createOffer().then(o => pc.setLocalDescription(o));
pc.onicecandidate = (e) => { if (e.candidate) console.log("Candidate:", e.candidate.candidate); };
Technical Breakdown: Initializes a minimal WebRTC peer connection and logs all generated ICE candidates, revealing any exposed public or private IP addresses.

Frequently Asked Technical Questions

Q1:Does disabling WebRTC break video calls on Google Meet or Discord?

Yes. Disabling WebRTC entirely prevents browser-based peer-to-peer calling. If you rely on browser video conferencing, use a VPN that enforces UDP traffic routing rather than disabling WebRTC entirely.

Q2:What is the difference between local IP and public IP in WebRTC?

Local IPs (like 192.168.1.15) represent your device on your home Wi-Fi network. Public IPs represent your connection to the broader internet. A leak of your public IP exposes your real physical location and ISP.

#webrtc ip leak test#vpn leak detection#stun ice candidate leak#disable webrtc chrome#real ip address exposed
RK
Rutvij KhatriSecurity Analyst & Aspiring Security Engineer

Security Analyst and Aspiring Security Engineer passionate about client-side media verification, binary parsing, web application security auditing, CTF steganography challenges, and zero-knowledge privacy architecture.

Related Guides in Browser Fingerprinting & Leaks