Package: pppconfig Version: 2.3.23 Severity: important Dear Maintainer,
The script /etc/ppp/ip-up.d/0dns-up fails to assign the static DNS config for the specific peer (as per the manual, the static file to temporary replace /etc/resolv.conf is stored in /etc/ppp/resolv/ directory, and named after the IPPARAM for the specific peer). The issue may lead to unexpected DNS leak (when establishing pptp VPN connection, instead of statically explocitly configured nameservers, the defaul ones are still used) The issue is in line 63: ... [ -L "$RESOLVCONF" ] || grep " / " /proc/mounts | grep -q " rw " || exit 0 ... where the grep fails to acknowledge that the root directory is mounted rw (due to requiring rw substring to be surrounded by spaces from both sides). An easy fix, changing the above for example to [ -L "$RESOLVCONF" ] || grep " / " /proc/mounts | grep -q " rw" || exit 0 will allow the script to operate properly, as per the corresponding ppconfig manual. Yours, manul -- System Information: Debian Release: bullseye/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 5.4.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE= (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages pppconfig depends on: ii init-system-helpers 1.57 ii ppp 2.4.7-2+4.1+b1 ii whiptail 0.52.21-4 pppconfig recommends no packages. Versions of packages pppconfig suggests: pn resolvconf <none> -- Configuration Files: /etc/ppp/ip-up.d/0dns-up changed: PATH=/sbin:/bin:/usr/sbin:/usr/bin test -f /usr/sbin/pppconfig || exit 0 test -z "$PPP_IPPARAM" && exit 0 PROVIDER=`echo "$PPP_IPPARAM" | cut -d' ' -f1` ETC="/etc" RUNDIR="/var/run/pppconfig" RESOLVCONF="$ETC/resolv.conf" PPPRESOLV="$ETC/ppp/resolv" TEMPLATE="$RUNDIR/0dns.tempXXXXXXXX" RESOLVBAK="$RUNDIR/resolv.conf.bak.$PROVIDER" test -f "$PPPRESOLV/$PROVIDER" || exit 0 if [ -x /sbin/resolvconf ]; then test -n "$PPP_IFACE" || exit 1 /sbin/resolvconf -a "${PPP_IFACE}.pppconfig" < "$PPPRESOLV/$PROVIDER" exit fi umask 022 cd "$RUNDIR" || exit 1 [ -e /proc/mounts ] || { echo "$0: Error: Could not read /proc/mounts" ; exit 1 ; } [ -L "$RESOLVCONF" ] || grep " / " /proc/mounts | grep -q " rw" || exit 0 TEMPRESOLV=`mktemp $TEMPLATE` || exit 1 mv "$TEMPRESOLV" "$RUNDIR/0dns.$PROVIDER" || exit 1 TEMPRESOLV="$RUNDIR/0dns.$PROVIDER" cat "$PPPRESOLV/$PROVIDER" > "$TEMPRESOLV" if [ "$DNS1" ] ; then echo '' >> "$TEMPRESOLV" echo "nameserver $DNS1" >> "$TEMPRESOLV" if [ "$DNS2" ] ; then echo '' >> "$TEMPRESOLV" echo "nameserver $DNS2" >> "$TEMPRESOLV" fi elif [ "$MS_DNS1" ] ; then echo '' >> "$TEMPRESOLV" echo "nameserver $MS_DNS1" >> "$TEMPRESOLV" if [ "$MS_DNS2" ] ; then echo '' >> "$TEMPRESOLV" echo "nameserver $MS_DNS2" >> "$TEMPRESOLV" fi fi if [ ! -s "$TEMPRESOLV" ] then rm -f "$TEMPRESOLV" exit 1 fi if ls | grep -q "resolv.conf.bak" then rm -f "$TEMPRESOLV" exit 1 fi /bin/cp -Lp "$RESOLVCONF" "$RESOLVBAK" || exit 1 /bin/cp -Lp "$TEMPRESOLV" "$RESOLVCONF" || exit 1 chmod 644 "$RESOLVCONF" || exit 1 [ -x /etc/init.d/nscd ] && { invoke-rc.d nscd restart || true ; } -- no debconf information