When activating OpenVPN without DHCP6, random traffic will be routed without VPN

Bug #1476769 reported by jt on 2015-07-21
260
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Fedora
Confirmed
High
network-manager (Ubuntu)
High
Unassigned
openvpn (Ubuntu)
High
Unassigned

Bug Description

When activating an OpenVPN without DHCP6 through NetworkManager, random traffic will be routed without VPN if the basic physical network device has IPv6 connectivity but the VPN hasn't. This is a security issue, since a user activating the VPN would expect all go through it.

network-manager package version: 0.9.10.0-4ubuntu15.1

Steps to reproduce:
1. Find some VPN without IPv6 routing or DHCP6. Get the according openvpn configuration file and import into NetworkManager
2. Make sure your physical networking device has native IPv6 access
3. Activate the VPN in the network settings

Expected result:

 * IPv4 default route through VPN
 * IPv6 default route absent (as VPN doesn't provide any)

Actual result (as I understand the bug report):

 * IPv4 default route through VPN (good)
 * IPv6 default route via local gateway (bad)

ProblemType: Bug
DistroRelease: Ubuntu 15.04
Package: openvpn 2.3.2-9ubuntu4
ProcVersionSignature: Ubuntu 3.19.0-21.21-generic 3.19.8
Uname: Linux 3.19.0-21-generic x86_64
ApportVersion: 2.17.2-0ubuntu1.1
Architecture: amd64
CurrentDesktop: GNOME
Date: Tue Jul 21 19:21:50 2015
ProcEnviron:
 TERM=xterm
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: openvpn
UpgradeStatus: No upgrade log present (probably fresh install)

Description of problem:
When activating OpenVPN without DHCP6, random traffic will be routed without VPN if the basic physical network device has IPv6 connectivity. This is a security issue, since a user activating the VPN would expect all go through it. When I activate a VPN that doesn't support V6, obviously V6 routes need to be removed entirely to ensure everything goes through the VPN as the user would expect.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1.
2.
3.

Actual results:

Expected results:

Additional info:

Thanks to #1228427 it appears I can't easily use OpenVPN through the networkmanager gui in this wifi network *at all*. That sucks, it would be really awesome if you could do something to fix that..

This is indeed an interesting problem also described in bug #1091356 that is not specific to NetworkManager. A machine with IPv4 and IPv6 connectivity and IPv4 VPN connectivity with IPv4 and IPv6 DNS information from the VPN will always attempt to reach hosts via IPv6.

> This is a security issue, since a user activating the VPN would expect all go through it.

There are two issues, actually:

1) Serving IPv6 DNS records and providing VPN access without IPv6 at the same time is a security problem in the first place. Clients that only use VPN for resources on the network are thus not informed about the IPv6 subnets that constitute resources on the network.

Solutions (on the network operator side):

a) Avoid IPv4-only VPNs and only provide IPv4+IPv6 VPNs.

b) Don't provide IPv6 DNS records on IPv4-only VPNs (and vice versa).

2) When VPN is to be used for all (except local) resources and only IPv4 connectivity is available on the VPN, there should IMO be no IPv6 default route through the local router just as there is no IPv4 default route through the local router.

From the network configuration point of view the second issue is as follows...

Expected result:

 * IPv4 default route through VPN
 * IPv6 default route absent (as VPN doesn't provide any)

Actual result (as I understand the bug report):

 * IPv4 default route through VPN (good)
 * IPv6 default route via local gateway (bad)

jt (jt1234567) wrote :
affects: network-manager → network-manager (Ubuntu)
Tyler Hicks (tyhicks) wrote :

Making this public since the Fedora bug is already public. It'll help to get more developers access to the report.

information type: Private Security → Public Security

This package has changed ownership in the Fedora Package Database. Reassigning to the new owner of this component.

Changed in network-manager (Ubuntu):
status: New → Confirmed
Changed in openvpn (Ubuntu):
status: New → Confirmed
Changed in network-manager (Ubuntu):
importance: Undecided → High
Changed in openvpn (Ubuntu):
importance: Undecided → High

This message is a reminder that Fedora 21 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 21. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora 'version'
of '21'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 21 is end of life. If you would still like
to see this bug fixed and are able to reproduce it against a later version
of Fedora, you are encouraged change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

Still present in Fedora 22

Fedora 22 changed to end-of-life (EOL) status on 2016-07-19. Fedora 22 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.

This bug appears to have been reported against 'rawhide' during the Fedora 25 development cycle.
Changing version to '25'.

Changed in fedora:
importance: Unknown → High
status: Unknown → Confirmed

This message is a reminder that Fedora 25 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 25. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora 'version'
of '25'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 25 is end of life. If you would still like
to see this bug fixed and are able to reproduce it against a later version
of Fedora, you are encouraged change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

Was this ever fixed? I currently don't have a VPN configured, but this is quite a dangerous issue (for people who rely on VPN privacy with their life which isn't unheard of) so it shouldn't just get lost.

Still present in Fedora 27

If VPN server does not provide IPv6 support, IPv6 traffic is not blocked but routed outside of the VPN.

This is definitely a VPN leak.

This bug has been reported against a Fedora version which is already unsuported.
In compliance with FESCo decision how to handle EOL of Security issues [1],
I am changing the version to '27', the latest supported release.

Please check whether this bug is still an issue on the '27' release.
If you find this bug not being applicable on this release, please close it.

[1] https://pagure.io/fesco/issue/1736

To post a comment you must log in.
This report contains Public Security information  Edit
Everyone can see this security related information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.