Locked gnome session unlocks without password authentication

Bug #1064584 reported by Dan Hallgren
284
This bug affects 3 people
Affects Status Importance Assigned to Milestone
GNOME Shell
Fix Released
Medium
gnome-shell (Ubuntu)
Fix Released
Medium
Unassigned
Raring
Won't Fix
Medium
Unassigned

Bug Description

[Impact]
When switching between users in ubuntu 12.10 using gdm a rather unpleasant behaviour can occur when a locked session unlocks without password authentication.

[Test Case]
Steps to reproduce:
1. Login as user1 (password required)
2. Lock screen
3. Select login as other user
4. Login in user2 which does not require any password, e.g. guest
5. Logout user2
6. Screen returns to unlocked session for user1

It doesn't happen every time but rather frequently so I suspect some sort of race involved.

ProblemType: BugDistroRelease: Ubuntu 12.10
Package: gdm 3.6.0-0ubuntu4
ProcVersionSignature: Ubuntu 3.5.0-17.27-generic 3.5.5
Uname: Linux 3.5.0-17-generic x86_64
ApportVersion: 2.6.1-0ubuntu1
Architecture: amd64
Date: Tue Oct 9 20:08:07 2012
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)SourcePackage: gdm
UpgradeStatus: Upgraded to quantal on 2012-09-07 (32 days ago)

Related branches

Revision history for this message
Dan Hallgren (danha891) wrote :
Revision history for this message
Dan Hallgren (danha891) wrote :

user1 is running a gnome-shell session

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gdm (Ubuntu):
status: New → Confirmed
Revision history for this message
Isaac Potoczny-Jones (isaac-jones) wrote :

Same results for me. This is a security issue since it allows an unauthorized user with physical access to log into a sensitive account without a password.

In my case, the 2nd user is not guest, but another user with a password. I'm using gdm and gnome-shell session.

Ubuntu 3.5.0-21.32-generic 3.5.7.1
gnome-screensaver 3.6.0-0ubuntu2
upgraded to quantal on 2013-01-10 (7 days ago)

= from dmsg: =

[177116.024201] gnome-shell[31699]: segfault at 18 ip 00007f63b1b32589 sp 00007fff9c944778 error 4 in libgio-2.0.so.0.3400.1[\
7f63b1afd000+14e000]
[180247.845478] gdm-session-wor[29009]: segfault at c4 ip 00007fa5c640a440 sp 00007fff47482e28 error 4 in libaccountsservice.\
so.0.0.0[7fa5c63f5000+3d000]
[180277.554761] gnome-shell[27368]: segfault at 0 ip 00007fc894473589 sp 00007fffe496b318 error 4 in libgio-2.0.so.0.3400.1[7\
fc89443e000+14e000]

= from syslog: =

Jan 17 07:54:32 workstation gnome-session[29039]: CRITICAL: gsm_manager_set_phase: assertion `GSM_IS_MANAGER (manager)' faile\
d
Jan 17 07:54:32 workstation gnome-session[29039]: Gtk-CRITICAL: gtk_main_quit: assertion `main_loops != NULL' failed
Jan 17 07:54:32 workstation goa[29335]: goa-daemon version 3.6.0 exiting [main.c:154, main()]
Jan 17 07:54:33 workstation acpid: client 1736[0:0] has disconnected
Jan 17 07:54:33 workstation acpid: client 28910[0:0] has disconnected
Jan 17 07:54:33 workstation acpid: client connected from 1736[0:0]
Jan 17 07:54:33 workstation acpid: 1 client rule loaded
Jan 17 07:54:33 workstation gdm-simple-slave[28907]: GLib-GIO-CRITICAL: g_dbus_connection_unregister_object: assertion `G_IS_\
DBUS_CONNECTION (connection)' failed
Jan 17 07:54:33 workstation gdm-simple-slave[28907]: GLib-GIO-WARNING: (/build/buildd/glib2.0-2.34.1/./gio/gdbusinterfaceskel\
eton.c:739):remove_connection_locked: runtime check failed: (g_dbus_connection_unregister_object (data->connection, data->reg\
istration_id))
Jan 17 07:54:33 workstation gdm-simple-slave[28907]: GLib-GObject-CRITICAL: g_object_unref: assertion `G_IS_OBJECT (object)' \
failed
Jan 17 07:54:33 workstation gdm-simple-slave[28907]: GLib-GObject-CRITICAL: g_object_ref: assertion `object->ref_count > 0' f\
ailed
Jan 17 07:54:33 workstation gdm-simple-slave[28907]: GLib-GObject-CRITICAL: g_object_unref: assertion `object->ref_count > 0'\
 failed
Jan 17 07:54:33 workstation kernel: [180277.554761] gnome-shell[27368]: segfault at 0 ip 00007fc894473589 sp 00007fffe496b318\
 error 4 in libgio-2.0.so.0.3400.1[7fc89443e000+14e000]
Jan 17 07:54:33 workstation gnome-session[2959]: WARNING: Detected that screensaver has left the bus
Jan 17 07:54:33 workstation gdm-password][2920]: GLib-GObject-CRITICAL: g_object_unref: assertion `G_IS_OBJECT (object)' fail\
ed
Jan 17 07:54:33 workstation gnome-session[2959]: WARNING: Application 'gnome-shell.desktop' killed by signal 11

Revision history for this message
Colin Walters (walters) wrote :

This is a key bit:

Jan 17 07:54:33 workstation gnome-session[2959]: WARNING: Application 'gnome-shell.desktop' killed by signal 11

The lock screen is integrated into the compositor (gnome-shell) in 3.6. An unfortunate side effect of this is that if the compositor crashes, it will get auto-restarted, and we "fail open". In prior versions of GNOME, "gnome-screensaver" was an indepenent process.

Clearly it would make sense to attempt to preserve the "screen is locked" state, but that'd still allow a window in which the session was accessible. The real fix here is to figure out why gnome-shell is crashing and ensure it doesn't.

Revision history for this message
Colin Walters (walters) wrote :
Changed in gdm:
importance: Unknown → Medium
status: Unknown → New
Tyler Hicks (tyhicks)
information type: Public → Public Security
Tyler Hicks (tyhicks)
Changed in gnome-shell (Ubuntu):
status: New → Confirmed
importance: Undecided → Medium
no longer affects: gdm (Ubuntu)
affects: gdm → gnome-shell
Changed in gnome-shell:
status: New → Fix Released
Revision history for this message
Tim Lunn (darkxst) wrote :
Revision history for this message
Martin Pitt (pitti) wrote :

Thanks! Sponsored.

Revision history for this message
Martin Pitt (pitti) wrote :

Sorry, I saw too late that the bug number in the changelog is wrong. This is fixed in

 gnome-shell (3.6.3.1-0ubuntu9) saucy; urgency=low
 .
   * debian/patches/git_relock_screen_after_crash.patch:
     - backport upstream patch to relock session after crash (LP: #1064582)

Changed in gnome-shell (Ubuntu):
status: Confirmed → Fix Released
Changed in gnome-shell (Ubuntu Raring):
status: New → Triaged
importance: Undecided → Medium
description: updated
Revision history for this message
Scott Kitterman (kitterman) wrote : Please test proposed package

Hello Dan, or anyone else affected,

Accepted into raring-proposed. The package will build now and be available in a few hours in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in gnome-shell (Ubuntu Raring):
status: Triaged → Fix Committed
tags: added: verification-needed
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote : [gnome-shell/raring] verification still needed

The fix for this bug has been awaiting testing feedback in the -proposed repository for raring for more than 90 days. Please test this fix and update the bug appropriately with the results. In the event that the fix for this bug is still not verified 15 days from now, the package will be removed from the -proposed repository.

tags: added: removal-candidate
Changed in gnome-shell (Ubuntu Raring):
status: Fix Committed → Won't Fix
To post a comment you must log in.
This report contains Public Security information  
Everyone can see this security related information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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