Security & Privacy Issues
macOS: Potential Leaks After Boot
Issue: Traffic may leak for a short period after macOS boots, even with auto-connect enabled. Cause: macOSlaunchd provides no way to specify service dependencies. The mullvad-daemon may start after other network services.
Affected Versions: All Mullvad app versions on all macOS versions
User Mitigations:
- Disable network before shutdown so the system boots without network access
- Wait to verify Mullvad is connected before launching sensitive applications
- Don’t start programs generating sensitive traffic until tunnel is verified
- September 2022: Discovered during internal testing
- October 2022: Disclosed in Atredis security audit
iOS: Vulnerable to TunnelVision/TunnelCrack LocalNet
Issue: iOS app is vulnerable to TunnelVision (CVE-2024-3661) and TunnelCrack LocalNet (CVE-2023-36672, CVE-2023-35838) attacks. Cause: iOSincludeAllNetworks flag is required to block these attacks but is incompatible with current app implementation.
Affected Versions: All iOS app versions on all iOS versions
Status: Work in progress to enable includeAllNetworks flag
Timeline:
- August 9, 2023: TunnelCrack blog post
- May 7, 2024: TunnelVision blog post
Android: Temporary Leaks During Reconnection
Issue: Android may leak traffic for short periods while reconfiguring the VPN tunnel (reconnecting, switching servers, etc.). Leaked Traffic Types:- VPN app’s own traffic (API requests)
- DNS lookups using
getaddrinfo() - Private DNS (DNS-over-TLS)
- OS connectivity checks
- Leaks can occur even with “Block connections without VPN” enabled
- Multiple upstream bug reports exist, but issues persist
- No known mitigation available
- Packets leak at VPN reconnection
- No seamless routing transition
- Private DNS breaks VPN
- Seamless handover leaks
- DNS traffic leaks
- April 22, 2024: Mullvad discovered DNS leaks with
getaddrinfo() - April 30, 2024: Reported to Google
- May 3, 2024: Blog post about findings
- March 12, 2025: Realized leaks extend beyond DNS
Android: Broadcast Traffic Bypasses VPN
Issue: Broadcast and multicast traffic to the local network bypasses the VPN tunnel. Cause: Long-standing Android limitation with no known fix. Affected Versions: All Android versions Timeline:- December 18, 2019: Reported to Google
macOS: Possible Leaks After System Updates
Issue: Traffic may leak on first boot after macOS system updates due to firewall not functioning correctly. Affected Traffic:- Most traffic still goes through VPN due to routing table
- Apps that bypass routing table (Apple apps, apps binding directly to physical interface) may leak
- September 30, 2024: Observed internally
- October 16, 2024: Reported to Apple (no public tracker)
- October 16, 2024: Blog post
Windows: Hyper-V Virtual Networking Leaks
Issue: Hyper-V virtual networking bypasses normal Windows firewall, allowing leaks from VMs and containers. Affected Software:- WSL2 (Windows Subsystem for Linux)
- Hyper-V VMs
- Windows Sandbox
- Microsoft Edge with Application Guard
- Windows 11 22H2 and above
- With Hyper-V firewall profile enabled
- Mitigation not available on Windows 10 or older Windows 11
- Windows Sandbox traffic not blocked by Hyper-V firewall
- Edge Application Guard ignores routing table, always leaking
- LAN traffic never blocked while connected
- Higher DNS leak risk
- Traffic tunneled when connected (respects routing table)
- WSL firewall setting must not be disabled
- August 12, 2020: User reported WSL2 leak
- September 30, 2020: Blog post about WSL2 leaking
- May 15, 2024: User reported Edge Application Guard leak
Android: ARP Exposes Tunnel IP
Issue ID: MLLVD-CR-24-03 Issue: Network-adjacent attackers can discover the device’s in-tunnel IP via ARP requests. Cause: Android’sarp_ignore kernel parameter defaults to 0, making devices respond to ARP requests for any interface’s IP.
Risk:
- Adversary can guess if device uses Mullvad VPN
- Possible device tracking (tunnel IP changes monthly)
- Apps cannot change kernel parameters like
arp_ignore - Reported to Google, no fix available
- Not considered critical (tunnel IP reveals little about user)
- November 6, 2024: Reported by X41 D-Sec in 2024 audit
- November 14, 2024: Reported to Google
Development Issues
Split Tunneling: DNS Limitations
Issue: DNS requests from excluded apps may go through the tunnel on some platforms. Cause: Platform limitations and IPC constraints. Reference: See split tunneling documentation for details.Split Tunneling: Excluded App Traffic May Enter Tunnel
Issue: Traffic from excluded applications sometimes incorrectly enters the VPN tunnel. Cause: Implementation limitations on certain operating systems. Affected Platforms: Linux, Windows, macOS (varies by situation) Details: See split tunneling documentationPlatform-Specific Quirks
macOS: Offline Detection Issues
Issue: macOS offline detection can be unreliable, especially:- After system sleep/wake
- When switching networks
- On first boot after updates
- App stuck in “offline” state
- Unable to connect despite network being available
- Slow to detect network changes
Windows: Driver Compatibility Issues
Issue: Various Windows configurations may experience driver issues:- VMware conflicts
- Hyper-V conflicts
- Antivirus interference
- BSOD on boot (rare)
- WireGuard NT driver
- Split tunnel driver
- Wintun adapter
- Update to latest Mullvad version
- Use
wireguard-gouserspace implementation:
Linux: Early Boot Blocking
Issue: Network may leak during early boot before daemon starts. Mitigation: Mullvad providesmullvad-early-boot-blocking.service systemd unit.
Requirements:
- systemd-based distribution
- Properly installed Mullvad package
/opt may not be mounted during early boot. The daemon binary is now in /usr/bin/ to help with this.
Linux: AppArmor Profile Required (Ubuntu 24.04+)
Issue: GUI won’t start without AppArmor profile. Cause: Ubuntu 24.04+ enforces AppArmor profiles for Electron apps. Solution: Install from official Mullvad packages (includes profile). Manual Installation: AppArmor profile is included in deb/rpm packages. For custom builds, copy from:Reporting Issues
This document is for known issues that cannot be easily fixed. For new bugs or feature requests:- Check GitHub Issues
- Review Security Policy
- Create new issue with:
- Clear description
- Steps to reproduce
- Expected vs actual behavior
- Platform and version info
- Relevant logs (use
mullvad-problem-report)
Security Disclosure
For security vulnerabilities, see SECURITY.md. Do NOT open public issues for security vulnerabilities.Document Purpose
This document provides:- Transparency to users about app limitations
- Resource for developers understanding known issues
- Reference for security auditors to avoid duplicate work
- Historical record of discovered issues and their status
This document is dynamic and updated as issues are discovered, fixed, or change status. Check the main repository for the latest version.
Next Steps
Security Documentation
Learn about Mullvad’s security model
Troubleshooting
Fix common development issues
Build Instructions
Set up development environment
Contributing
How to contribute to the project