[Pkg-acpi-devel] Bug#763134: acpi-support-base: /usr/share/acpi-support/power-funcs broken from line 24 if consolekit installed and no dbus running
Michael Meskes
meskes at debian.org
Mon Sep 29 11:33:57 UTC 2014
@security: Is this enough of a security problem to warrant a stable upload?
The fix seems easy enough, just run pinky if $user is still empty.
Michael
On Sun, Sep 28, 2014 at 05:12:45AM +0200, waijb wrote:
> getXuser() is broken:
>
> block starting at line 24 in /usr/share/acpi-support/power-funcs:
> ----
> 24 if [ -x /usr/bin/ck-list-sessions ]; then
> 25 uid=$(ck-list-sessions | awk 'BEGIN { unix_user = ""; }
> /^Session/ { unix_user = ""; } /unix-user =/ { gsub(/'\''/,"",$3);
> unix_user = $3; } /x11-display = '\'$display\''/ { print unix_user; exit
> (0); }')
> 26
> 27 if [ "$uid" ]; then
> 28 IFS=:
> 29 set -- $(getent passwd $uid)
> 30 user=$1
> 31 unset IFS
> 32 fi
> 33 else
> ----
>
> just testing if /usr/bin/ck-list-sessions is executable doesn't do the
> trick.
> until just now i had consolekit installed (some dependency somewhere), but
> dbus was (and still is and will be) not running. this leads to an error in
> line 25, ultimately no $user is set. the pinky check is not executed (but
> would work just fine).
> finally XAUTHORITY and XUSER are exported as blanks.
>
> this breaks at least /usr/share/acpi-support/screenblank
> debug output:
> ----
> [04:00:22] root at schleppi ~ # /bin/sh -x /usr/share/acpi-support/screenblank
> -- source added by me for testing
> + . /usr/share/acpi-support/power-funcs
> --
> + umask 022
> +
> PATH=/sbin:/usr/sbin:/usr/local/sbin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
> + POWERSTATE=/var/lib/acpi-support/powerstate
> + HDPARM=/sbin/hdparm -q
> + LIDSTATE=/var/lib/acpi-support/lidstate
> + d=/tmp/.X11-unix
> + displaynum=0
> + getXuser
> + local plist display uid user startx pid userhome IFS
> + [ 0 ]
> + display=:0
> + user=
> + [ -x /usr/bin/ck-list-sessions ]
> + ck-list-sessions
> + awk BEGIN { unix_user = ""; } /^Session/ { unix_user = ""; } /unix-user =/ { gsub(/'/,"",$3); unix_user = $3; } /x11-display =
> ':0'/ { print unix_user; exit (0); }
> ** Message: Failed to connect to the D-Bus daemon: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or
> directory
> + uid=
> + [ ]
> + [ -z ]
> + pgrep -n startx
> + :
> + startx=
> + [ -z ]
> + [ x != x ]
> + export XAUTHORITY=
> + XUSER=
> + export XUSER
> + [ x != x ]
> + [ -x = xtrue ]
> ----
>
> result: X not locked as expected after sleep/hibernate. free local and
> possible remote (root)shells etc...
>
>
> regards
> waijb
--
Michael Meskes
Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql) dot Org
Jabber: michael.meskes at gmail dot com
VfL Borussia! Força Barça! Go SF 49ers! Use Debian GNU/Linux, PostgreSQL
More information about the Pkg-acpi-devel
mailing list