Accepting request 898085 from network:vpn

- update to 2.4.11 (bsc#1185279):
  * CVE-2020-15078 see https://community.openvpn.net/openvpn/wiki/SecurityAnnouncements
  * This bug allows - under very specific circumstances - to trick a server using
    delayed authentication (plugin or management) into returning a PUSH_REPLY
    before the AUTH_FAILED message, which can possibly be used to gather
    information about a VPN setup.
  * In combination with "--auth-gen-token" or an user-specific token auth
    solution it can be possible to get access to a VPN with an
    otherwise-invalid account.
  * Fix potential NULL ptr crash if compiled with DMALLOC
- drop sysv5 init support, it hasn't build successfully in ages
  and is build-disabled in devel project

OBS-URL: https://build.opensuse.org/request/show/898085
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openvpn?expand=0&rev=92
This commit is contained in:
Dominique Leuenberger 2021-06-11 20:30:28 +00:00 committed by Git OBS Bridge
commit d318daeffa
9 changed files with 393 additions and 669 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cf285395a679f0b68c0acde2cb2480e8ead6ca07ff14c1bc52ae65a1243aa377
size 968852

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEMz1GMGz52fH2MNuNlq7ECABda7QFAl/QtjUACgkQlq7ECABd
a7TxvA//QFhMZIu0BupMkZurkad3N7bRrQmtelA1LGEgTuq6Jfj20bVf7cfZQrLl
rbM6L7s+JGPJlDjL0jzl1Xzphbu3kv2M9KViQ/T8jaNbusnDlggAVA1A0FTD3dKh
TGJtzyugq4X9KpCxWxTmT2yKz5RmDBxwYTS2cYbDB8WVhIUDUJuY1tGoLzV3NgPs
jLtUCUlD5if83CebyP0S1w9NbIUYlCtChjLJeV5RFfUh0ZeyvahDT6nmIempt71O
lWeR+DZt9t0x8MyKYN2r+1N+udRJ4enSeD/2TY5V4aKhITV9lT5fb5em2MUUJ1u3
imAeUfCHRN1iB0IiPYZ9OVOhzxhoGLKGPRVau93R0srl3RZKJoiDsenCGDghgdNq
9awTlgwwrHgtS9NqL4SYU/LqkBB75Z8L8PsQPviY0MU13tM7ezYNveuyLv1D9ArV
+yeBb9Vqs1jPLGjUstskhrgiRMgfIk7EmGxpf/ddxZnlbSW6UFE0xKOJru6LXM9y
ue3S5buqzdAb1AuIJ6a2PKC1Xj+FIGQ4tnuQQUeMzTePzoudn18IPjYl8jWUJjkd
SzjpI77QZAidgxhxHG0iKdbjfrswk2/e1QzoY6EQIcU/e1//5Es4C438IOwrIay1
MqOPskZF1sVU1LkrGxElfDFqRIiyCPxVX9HInQaNOF0VKCi2gD0=
=s0Nr
-----END PGP SIGNATURE-----

3
openvpn-2.4.11.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e579eff218ab1d765965e64a917927504d8324717afdfcd56850f6b83ba8441b
size 970872

16
openvpn-2.4.11.tar.xz.asc Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE/DZ4Imbv9iQMR50nEco5yCwF7okFAmB/tIAACgkQEco5yCwF
7olP2BAA29nE8DfSzet1Lu1u/D5TdtLoMcSclZBnRP3McSzZV+HBECWEmoXCW1I3
ljtJgG1bIKGQUPDUmBzCkTG7SB2rGSp90q96ppybgsKpWV6ZjoKLPVEBcePVYBhS
sbGMBj4YgviyIG0yaemWRx5dz/7SpxqYMc8yQ9u2tI6ydicMepdPXgQIggh5FoRf
j7G8UbZeOGeqrYQyatIbhW3vehw4HrsCTx6YmhomOKHuMppf+JbjlpDmm3BVRjhO
9qRA49n5Cmh68mXJG0SpxW02bHFXgMKi+DyjFlJPdA97IN/exzGuIUoim3Jk58eM
AnhKiC2Ctb7BRc3h4JBtm3guDd1xirV56XOnRmjyoVl+vq4gl8p+XzL8NeKbfqGa
WW59zd/8uF5r7u8smIjOvlUXh8lCwPrKo/IpxXzy54jknhlGfUZdzv4Kb+MVdP1w
VM2MnBZ5ukVLR2e/DnAeHTORQYHauyVj3whpdrQqMccDbqhz2R1YOu+ndTS+XOs+
VnyNbsvBxOekT+ZqFZ70yT2+dFKu5Y9XfyfDnjBdHCd1qnF15Fe95O0SGw16eqfM
lqfz6WPxsxTfr6kOqQCfbKQVrPVu2hQuOROrJrA5Yheeqcnv6QMQm0efYfr/DwkQ
0qLNszu/Sx9ndgxXTeRZpQkfxKsubARPr0KiCo9dRBB8/sf6Iow=
=fE7o
-----END PGP SIGNATURE-----

View File

@ -1,3 +1,20 @@
-------------------------------------------------------------------
Mon May 31 15:29:08 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 2.4.11 (bsc#1185279):
* CVE-2020-15078 see https://community.openvpn.net/openvpn/wiki/SecurityAnnouncements
* This bug allows - under very specific circumstances - to trick a server using
delayed authentication (plugin or management) into returning a PUSH_REPLY
before the AUTH_FAILED message, which can possibly be used to gather
information about a VPN setup.
* In combination with "--auth-gen-token" or an user-specific token auth
solution it can be possible to get access to a VPN with an
otherwise-invalid account.
* Fix potential NULL ptr crash if compiled with DMALLOC
- drop sysv5 init support, it hasn't build successfully in ages
and is build-disabled in devel project
-------------------------------------------------------------------
Sun Apr 25 19:24:56 UTC 2021 - Christian Boltz <suse-beta@cboltz.de>

View File

@ -1,302 +0,0 @@
#! /bin/sh
# Copyright (c) 2003 SuSE Linux AG
# Copyright (c) 2004-2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# Author: Peter Poeml <poeml@suse.de>
# Marius Tomaschewski <mt@suse.de>
#
# inspired by the init script contributed to the OpenVPN project by
# Douglas Keller <doug@voidstar.dyndns.org>
#
# /etc/init.d/openvpn
# and its symbolic link
# /usr/sbin/rcopenvpn
#
### BEGIN INIT INFO
# Provides: openvpn
# Required-Start: $local_fs $remote_fs $network
# Should-Start: $syslog $time $named network-remotefs
# Required-Stop: $local_fs $remote_fs $network
# Should-Stop: $syslog $time $named network-remotefs
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: OpenVPN tunnel
# Description: Start OpenVPN tunnel
### END INIT INFO
test -s /etc/sysconfig/openvpn && \
. /etc/sysconfig/openvpn
DAEMON="OpenVPN"
openvpn=/usr/sbin/openvpn
confdir=/etc/openvpn
piddir=/var/run/openvpn
test -d $piddir || mkdir $piddir
test -x $openvpn || {
echo 1>&2 "$openvpn not installed"
if test "$1" == "stop" ; then exit 0 ; else exit 5 ; fi
}
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v ditto but be verbose in local rc status
# rc_status -v -r ditto and clear the local rc status
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num><num>
# rc_reset clear local rc status (overall remains)
# rc_exit exit appropriate to overall rc status
. /etc/rc.status
# First reset status of this service
rc_reset
# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.
shopt -s nullglob
action="$1" ; shift
config="$1" ; shift
systemd_cgroup_dir="/sys/fs/cgroup/systemd"
openvpn_cgroup_dir="${systemd_cgroup_dir}/system/openvpn.service"
join_openvpn_service_cgroup()
{
local pid dummy
# when the systemd cgroup mountpoint does not exists,
# assume we run unter systemv init -> nothing to do.
/bin/mountpoint -q "${systemd_cgroup_dir}" || return 0
# create the openvpn.service cgroup when needed
if test ! -d "${openvpn_cgroup_dir}" ; then
/bin/mkdir -p "${openvpn_cgroup_dir}" || return 1
fi
# check if the openvpn.service cgroup task list exists
if test -f "${openvpn_cgroup_dir}/tasks" ; then
# when we're already a member, all is done
while read pid dummy ; do
test "$pid" = "$$" && return 0
done < "${openvpn_cgroup_dir}/tasks"
# otherwise join the openvpn.service cgroup
echo "$$" > "${openvpn_cgroup_dir}/tasks" && return 0
fi
return 1
}
autostart_filter()
{
test "x$config" != "x" && return 0
test "x$OPENVPN_AUTOSTART" = "x" && return 0
for n in ${OPENVPN_AUTOSTART} ; do
test "x$n" = "x$1" && return 0
done
return 1
}
case "$action" in
start)
join_openvpn_service_cgroup
/sbin/modprobe tun &>/dev/null
name=""
for conf in $confdir/${config:-*}.conf ; do
test -f "$conf" || continue
name=$(basename "${conf%%.conf}")
autostart_filter "$name" || continue
pidfile="$piddir/${name}.pid"
echo -n "Starting $DAEMON [$name] "
if [ -f "$pidfile" ]; then
killproc -p "$pidfile" -USR2 $openvpn
ret=$?
case $ret in
7) # not running, remove pid and start
echo -n "(removed stale pid file) " ;
rm -f "$pidfile" ;;
0) # running - no an error, skip start
rc_failed 0 ; rc_status -v ; continue ;;
*) # another error, set it and continue
rc_failed 1 ; rc_status -v ; continue ;;
esac
fi
# openvpn may ask for auth ...
echo ""
$openvpn --daemon \
--writepid "$pidfile" \
--config "$conf" \
--cd $confdir || \
{
rc_status -v1
if [ ! -w "$piddir" ]; then
# this is one possible reason, but common to
# all instances and better than nothing ...
echo " Can not write $pidfile"
rc_exit
fi
echo " See /var/log/messages for the failure reason"
rc_failed 1
continue
}
# write the status one line up
rc_status -v1
done
test -n "$name" || {
echo -n "Starting $DAEMON${config:+ [$config]} -- not configured"
rc_failed 6
rc_status -v
}
;;
stop)
## Stop daemon with killproc(8) and if this fails
## set echo the echo return value.
name=""
for pidfile in $piddir/${config:-*}.pid; do
test -f "$pidfile" || continue
name=$(basename "${pidfile%%.pid}")
echo -n "Shutting down $DAEMON [$name] "
killproc -p "$pidfile" $openvpn
rc_status -v
rm -f "$pidfile"
done
test -n "$name" || {
echo -n "Shutting down $DAEMON${config:+ [$config]} -- not running"
rc_status -v
}
;;
try-restart)
## Do a restart only if the service was active before.
## Note: try-restart is now part of LSB (as of 1.9).
## RH has a similar command named condrestart.
$0 status ${config:+"$config"}
if test $? = 0; then
$0 restart ${config:+"$config"}
else
rc_reset # Not running is not a failure.
fi
# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
# When nothing is running, start specified config or
# the defult (autostart) set. Otherwise we stop the
# specified one or all that are currently running.
# Then start specified one or all that were running
# before and have a config. Makes sense? :-)
name=""
list=($config)
for pidfile in $piddir/${config:-*}.pid; do
test -f "$pidfile" || continue
name=$(basename "${pidfile%%.pid}")
$0 stop "$name"
rc_status
test "x$name" = "x$config" && continue # in list
test -f "$confdir/${name}.conf" && list+=("$name")
done
test "x$name" = x || sleep 3 # for what was this needed?
$0 start "${list[@]}"
# Remember status and be quiet
rc_status
;;
reload|force-reload)
for pidfile in $piddir/${config:-*}.pid; do
test -f "$pidfile" || continue
name=$(basename "${pidfile%%.pid}")
echo -n "Reload service $DAEMON [$name] "
killproc -p "$pidfile" -HUP $openvpn
rc_status -v
done
rc_status
;;
reopen)
for pidfile in $piddir/${config:-*}.pid; do
test -f "$pidfile" || continue
name=$(basename "${pidfile%%.pid}")
echo -n "Reopen service $DAEMON [$name] "
killproc -p "$pidfile" -USR1 $openvpn
rc_status -v
done
rc_status
;;
status)
name=""
for pidfile in $piddir/${config:-*}.pid; do
test -f "$pidfile" || continue
name=$(basename "${pidfile%%.pid}")
echo -n "Checking for $DAEMON [$name] "
killproc -p "$pidfile" -USR2 $openvpn
rc_status -v
done
if test -n "$name" ; then
echo "$DAEMON status written to /var/log/messages"
else
echo -n "Checking for $DAEMON "
rc_failed 3
rc_status -v
fi
;;
probe)
## Optional: Probe for the necessity of a reload, print out the
## argument to this init script which is required for a reload.
## Note: probe is not (yet) part of LSB (as of 1.9)
result=""
for conf in $confdir/${config:-*}.conf ; do
test -f "$conf" || continue
name=$(basename "${conf%%.conf}")
autostart_filter "$name" || continue
pidfile="$piddir/${name}.pid"
if test ! -f "$pidfile" ; then
result="restart"
elif test "$conf" -nt "$pidfile" ; then
test "$result" = "restart" || \
result="reload"
fi
done
for pidfile in $piddir/${config:-*}.pid; do
test -f "$pidfile" || continue
name=$(basename "${pidfile%%.pid}")
conf="$confdir/${name}.conf"
test -f "$conf" && result="restart"
done
test -n "$result" && echo "$result"
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|reload|reopen|probe}"
exit 1
esac
rc_exit

View File

@ -12,280 +12,344 @@ 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
PPD9yqBR8Ls7c8cf/fe1xhFPL3FEEpkpnq7/pg==
=PV0e
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
V1yQZQ==
=/Pj9
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -20,16 +20,11 @@
%if ! %{defined _fillupdir}
%define _fillupdir %{_localstatedir}/adm/fillup-templates
%endif
%if 0%{?suse_version} > 1210
%define with_systemd 1
%else
%define with_systemd 0
%endif
%if ! %{defined _rundir}
%define _rundir %{_localstatedir}/run
%endif
Name: openvpn
Version: 2.4.10
Version: 2.4.11
Release: 0
Summary: Full-featured SSL VPN solution using a TUN/TAP Interface
License: LGPL-2.1-only AND SUSE-GPL-2.0-with-openssl-exception
@ -37,11 +32,9 @@ Group: Productivity/Networking/Security
URL: http://openvpn.net/
Source: https://swupdate.openvpn.org/community/releases/openvpn-%{version}.tar.xz
Source1: https://swupdate.openvpn.org/community/releases/openvpn-%{version}.tar.xz.asc
Source2: %{name}.init
Source3: %{name}.README.SUSE
Source4: client-netconfig.up
Source5: client-netconfig.down
Source6: %{name}.sysconfig
Source7: %{name}.keyring
Source8: %{name}.service
Source9: %{name}.target
@ -59,18 +52,14 @@ BuildRequires: openssl-devel
BuildRequires: p11-kit-devel
BuildRequires: pam-devel
BuildRequires: pkcs11-helper-devel >= 1.11
BuildRequires: pkgconfig
BuildRequires: xz
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(systemd)
Requires: iproute2
Requires: pkcs11-helper >= 1.11
Requires: sysvinit-tools
%if %{with_systemd}
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(systemd)
%systemd_ordering
%else
PreReq: %fillup_prereq
PreReq: %insserv_prereq
%endif
%description
OpenVPN is a full-featured SSL VPN solution which can accommodate a wide
@ -143,13 +132,12 @@ This package provides the header file to build external plugins.
%patch8 -p1
%patch9 -p1
sed -e "s|\" __DATE__|$(date '+%b %e %Y' -r version.m4)\"|g" \
sed -e "s|\" __DATE__|$(date '+%%b %%e %%Y' -r version.m4)\"|g" \
-i src/openvpn/options.c
sed -e "s|@PLUGIN_LIBDIR@|%{_libdir}/openvpn/plugins|g" \
-e "s|@PLUGIN_DOCDIR@|%{_defaultdocdir}/%{name}|g" \
-i doc/openvpn.8
sed -e "s|%{_localstatedir}/run|%{_rundir}|g" < \
$RPM_SOURCE_DIR/%{name}.service > %{name}.service
sed -e "s|%{_localstatedir}/run|%{_rundir}|g" < %{SOURCE8} > %{name}.service
# %%doc items shouldn't be executable.
find contrib sample -type f -exec chmod a-x \{\} \;
@ -157,19 +145,21 @@ find contrib sample -type f -exec chmod a-x \{\} \;
%build
export CFLAGS="%{optflags} $(getconf LFS_CFLAGS) -W -Wall -fno-strict-aliasing"
export LDFLAGS
%if 0%{?suse_version} >= 1550
# usrmerge
export IPROUTE="%{_sbindir}/ip"
%endif
%configure \
--enable-iproute2 \
--enable-x509-alt-username \
--enable-pkcs11 \
%if %{with_systemd}
--enable-systemd \
%endif
--enable-plugins \
--enable-plugin-down-root \
--enable-plugin-auth-pam \
CFLAGS="$CFLAGS $(getconf LFS_CFLAGS) -fPIE $PLUGIN_DEFS" \
LDFLAGS="$LDFLAGS -pie -lpam -rdynamic -Wl,-rpath,%{_libdir}/%{name}/plugins"
make %{?_smp_mflags}
%make_build
%install
%make_install
@ -177,40 +167,28 @@ find %{buildroot} -type f -name "*.la" -delete -print
mkdir -p %{buildroot}/%{_sysconfdir}/openvpn
mkdir -p %{buildroot}/%{_rundir}/openvpn
mkdir -p %{buildroot}/%{_datadir}/openvpn
%if %{with_systemd}
rm %{buildroot}%{_libdir}/systemd/system/openvpn-client@.service
rm %{buildroot}%{_libdir}/systemd/system/openvpn-server@.service
#use one proveded by suse
rm %{buildroot}%{_libdir}/tmpfiles.d/openvpn.conf
install -D -m 644 %{name}.service %{buildroot}/%{_unitdir}/%{name}@.service
install -D -m 644 $RPM_SOURCE_DIR/%{name}.target %{buildroot}/%{_unitdir}/%{name}.target
install -D -m 755 $RPM_SOURCE_DIR/rc%{name} %{buildroot}%{_sbindir}/rc%{name}
install -D -m 644 %{SOURCE9} %{buildroot}/%{_unitdir}/%{name}.target
install -D -m 755 %{SOURCE11} %{buildroot}%{_sbindir}/rc%{name}
# tmpfiles.d
mkdir -p %{buildroot}%{_tmpfilesdir}
install -m 0644 $RPM_SOURCE_DIR/%{name}-tmpfile.conf %{buildroot}%{_tmpfilesdir}/%{name}.conf
%else
install -D -m 755 $RPM_SOURCE_DIR/openvpn.init %{buildroot}/%{_sysconfdir}/init.d/openvpn
ln -sv %{_sysconfdir}/init.d/openvpn %{buildroot}/%{_sbindir}/rcopenvpn
# the /etc/sysconfig/openvpn template only with sysvinit, no needed with systemd
install -d -m0755 %{buildroot}%{_fillupdir}
install -m0600 $RPM_SOURCE_DIR/openvpn.sysconfig \
%{buildroot}%{_fillupdir}/sysconfig.openvpn
%endif
cp -p $RPM_SOURCE_DIR/openvpn.README.SUSE README.SUSE
install -m 755 $RPM_SOURCE_DIR/client-netconfig.up sample/sample-scripts/client-netconfig.up
install -m 755 $RPM_SOURCE_DIR/client-netconfig.down sample/sample-scripts/client-netconfig.down
install -m 0644 %{SOURCE10} %{buildroot}%{_tmpfilesdir}/%{name}.conf
cp -p %{SOURCE3} README.SUSE
install -m 755 %{SOURCE4} sample/sample-scripts/client-netconfig.up
install -m 755 %{SOURCE5} sample/sample-scripts/client-netconfig.down
# we install docs via spec into _defaultdocdir/name/management-notes.txt
rm -rf %{buildroot}%{_datadir}/doc/{OpenVPN,%{name}}
find sample -name .gitignore | xargs rm -f
%pre
%if %{with_systemd}
%service_add_pre %{name}.target
%endif
%post
%if %{with_systemd}
%tmpfiles_create %{_tmpfilesdir}/%{name}.conf
%service_add_post %{name}.target
# try to migrate openvpn.service autostart to openvpn@<CONF>.service
@ -247,23 +225,12 @@ then
fi
fi
rm -f %{_sysconfdir}/sysconfig/openvpn || :
%else
%{?fillup_and_insserv:%fillup_and_insserv}
%endif
%preun
%if %{with_systemd}
%service_del_preun %{name}.target
%else
%{?stop_on_removal:%stop_on_removal openvpn}
%endif
%postun
%if %{with_systemd}
%service_del_postun %{name}.target
%else
%{?insserv_cleanup:%insserv_cleanup}
%endif
%files
%license COPYING
@ -277,17 +244,11 @@ rm -f %{_sysconfdir}/sysconfig/openvpn || :
%doc doc/management-notes.txt
%{_mandir}/man8/openvpn.8%{?ext_man}
%config(noreplace) %{_sysconfdir}/openvpn/
%if %{with_systemd}
%dir %{_tmpfilesdir}
%{_unitdir}/%{name}@.service
%{_unitdir}/%{name}.target
%{_tmpfilesdir}/%{name}.conf
%dir %attr(0750,root,root) %ghost %{_rundir}/openvpn/
%else
%config %{_sysconfdir}/init.d/openvpn
%{_fillupdir}/sysconfig.openvpn
%dir %attr(750,root,root) %{_rundir}/openvpn/
%endif
%{_sbindir}/rcopenvpn
%{_sbindir}/openvpn

View File

@ -1,16 +0,0 @@
## Type: list("",)
## Default: ""
#
# Allows to specify an optional white-list of config names to start
# in /etc/init.d/openvpn.
#
# Unlisted config names can be still started using the explicit name,
# e.g. "/etc/init.d/openvpn start tun0" will start openvpn for the
# "/etc/openvpn/tun0.conf" config file.
#
# Setting the variable to e.g. "foo bar" will cause the start of the
# "/etc/openvpn/foo.conf" and "/etc/openvpn/bar.conf" config files.
# When empty, the init script will start all existing config files.
#
OPENVPN_AUTOSTART=""