diff --git a/openvpn-2.4.10.tar.xz b/openvpn-2.4.10.tar.xz deleted file mode 100644 index d4f2a07..0000000 --- a/openvpn-2.4.10.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cf285395a679f0b68c0acde2cb2480e8ead6ca07ff14c1bc52ae65a1243aa377 -size 968852 diff --git a/openvpn-2.4.10.tar.xz.asc b/openvpn-2.4.10.tar.xz.asc deleted file mode 100644 index 7a8fea9..0000000 --- a/openvpn-2.4.10.tar.xz.asc +++ /dev/null @@ -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----- diff --git a/openvpn-2.4.11.tar.xz b/openvpn-2.4.11.tar.xz new file mode 100644 index 0000000..23ca1ce --- /dev/null +++ b/openvpn-2.4.11.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e579eff218ab1d765965e64a917927504d8324717afdfcd56850f6b83ba8441b +size 970872 diff --git a/openvpn-2.4.11.tar.xz.asc b/openvpn-2.4.11.tar.xz.asc new file mode 100644 index 0000000..42a19c9 --- /dev/null +++ b/openvpn-2.4.11.tar.xz.asc @@ -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----- diff --git a/openvpn.changes b/openvpn.changes index a60d353..6f765ef 100644 --- a/openvpn.changes +++ b/openvpn.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Mon May 31 15:29:08 UTC 2021 - Dirk Müller + +- 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 diff --git a/openvpn.init b/openvpn.init deleted file mode 100644 index 29e8a55..0000000 --- a/openvpn.init +++ /dev/null @@ -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 -# Marius Tomaschewski -# -# inspired by the init script contributed to the OpenVPN project by -# Douglas Keller -# -# /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 set local and overall rc status to -# 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 diff --git a/openvpn.keyring b/openvpn.keyring index 46aa052..7bff5fa 100644 --- a/openvpn.keyring +++ b/openvpn.keyring @@ -12,280 +12,344 @@ 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 -PPD9yqBR8Ls7c8cf/fe1xhFPL3FEEpkpnq7/pg== -=PV0e +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 +V1yQZQ== +=/Pj9 -----END PGP PUBLIC KEY BLOCK----- diff --git a/openvpn.spec b/openvpn.spec index cdaefbd..bc5e342 100644 --- a/openvpn.spec +++ b/openvpn.spec @@ -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@.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 diff --git a/openvpn.sysconfig b/openvpn.sysconfig deleted file mode 100644 index e29391d..0000000 --- a/openvpn.sysconfig +++ /dev/null @@ -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="" -