Lock screen doesn't cover entire desktop on HiDPI display with draw-user-backgrounds unchecked
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
unity (Ubuntu) |
Fix Released
|
High
|
Marco Trevisan (Treviño) | ||
Xenial |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Ubuntu 16.04.2 LTS using Unity
unity-greeter 16.04.2-0ubuntu1
[Impact]
On a HiDPI monitor on a Dell XPS 13 9343 laptop, if you uncheck com.canonical.
Expected: the purple placeholder wallpaper should cover the entire desktop
Observed: the purple placeholder wallpaper only covers the top-left part of the desktop
I'm attaching an image showing roughly what the desktop looks like when it's locked. The green rectangle is the part covered by the purple wallpaper, the red is stuff that should not be visible when locked, and the yellow is the usual name/password entry box that is partially transparent.
I'm marking this bug as a security vulnerability because it allows someone to see part of a user's desktop even when the desktop is locked.
[Test Case]
1. Make sure to use an HiDPI monitor
2. Open terminal
3. gsettings set com.canonical.
4. Lock the screen
5. Make sure the background is properly drawn.
[Potential Regression]
Make sure lockscreen background is drawn properly on an non-HiDPI monitor too. Also make sure that when using "draw-user-
Related branches
- Andrea Azzarone (community): Approve
-
Diff: 58 lines (+13/-5)2 files modifiedlockscreen/BackgroundSettings.cpp (+12/-5)
lockscreen/LockScreenBaseShield.cpp (+1/-0)
- Andrea Azzarone (community): Approve
-
Diff: 12627 lines (+4713/-1916)190 files modifiedAUTHORS (+2/-0)
CMakeLists.txt (+9/-98)
ChangeLog (+663/-0)
UnityCore/CMakeLists.txt (+2/-1)
UnityCore/DBusIndicators.cpp (+1/-1)
UnityCore/GLibDBusProxy.cpp (+12/-8)
UnityCore/GLibDBusProxy.h (+2/-2)
UnityCore/GLibSignal-inl.h (+10/-2)
UnityCore/GLibSignal.cpp (+75/-29)
UnityCore/GLibSignal.h (+16/-11)
UnityCore/GnomeSessionManager.cpp (+127/-39)
UnityCore/GnomeSessionManager.h (+1/-0)
UnityCore/GnomeSessionManagerImpl.h (+4/-0)
UnityCore/SessionManager.h (+1/-0)
UnityCore/Variant.cpp (+30/-0)
UnityCore/Variant.h (+1/-0)
config.h.cmake (+3/-2)
dash/ResultRendererTile.cpp (+1/-1)
data/CMakeLists.txt (+37/-1)
data/com.canonical.Unity.gschema.xml (+5/-0)
data/unity7.conf.in (+2/-19)
debian/changelog (+78/-0)
debian/control (+2/-1)
debian/rules (+3/-0)
debian/unity.install (+3/-0)
debian/unity.migrations (+1/-0)
decorations/DecoratedWindow.cpp (+2/-9)
decorations/DecorationsForceQuitDialog.cpp (+4/-2)
decorations/DecorationsMenuLayout.cpp (+35/-37)
decorations/DecorationsMenuLayout.h (+3/-2)
decorations/DecorationsPriv.h (+0/-1)
decorations/DecorationsWindowButton.cpp (+2/-1)
launcher/EdgeBarrierController.cpp (+32/-117)
launcher/EdgeBarrierControllerPrivate.h (+1/-6)
launcher/FileManagerLauncherIcon.cpp (+30/-0)
launcher/FileManagerLauncherIcon.h (+8/-0)
launcher/Launcher.cpp (+36/-32)
launcher/Launcher.h (+1/-0)
launcher/LauncherOptions.cpp (+22/-22)
launcher/StorageLauncherIcon.cpp (+7/-12)
launcher/Tooltip.cpp (+6/-6)
launcher/Tooltip.h (+1/-2)
lockscreen/BackgroundSettings.cpp (+18/-13)
lockscreen/KylinLockScreenShield.cpp (+1/-19)
lockscreen/KylinLockScreenShield.h (+0/-3)
lockscreen/KylinUserPromptView.cpp (+15/-15)
lockscreen/KylinUserPromptView.h (+2/-3)
lockscreen/LockScreenAbstractPromptView.h (+5/-3)
lockscreen/LockScreenBaseShield.cpp (+14/-7)
lockscreen/LockScreenBaseShield.h (+4/-6)
lockscreen/LockScreenController.cpp (+91/-38)
lockscreen/LockScreenController.h (+12/-2)
lockscreen/LockScreenPanel.cpp (+26/-57)
lockscreen/LockScreenPanel.h (+5/-9)
lockscreen/LockScreenPromptFactory.cpp (+4/-3)
lockscreen/LockScreenPromptFactory.h (+3/-1)
lockscreen/LockScreenShield.cpp (+8/-17)
lockscreen/LockScreenShield.h (+4/-3)
lockscreen/LockScreenShieldFactory.cpp (+2/-2)
lockscreen/LockScreenShieldFactory.h (+3/-3)
lockscreen/SuspendInhibitorManager.cpp (+2/-0)
lockscreen/SuspendInhibitorManager.h (+1/-0)
lockscreen/UserAuthenticator.h (+2/-0)
lockscreen/UserAuthenticatorPam.cpp (+41/-33)
lockscreen/UserAuthenticatorPam.h (+9/-8)
lockscreen/UserPromptView.cpp (+51/-15)
lockscreen/UserPromptView.h (+7/-4)
panel/PanelController.cpp (+1/-2)
panel/PanelIndicatorEntryView.cpp (+10/-0)
panel/PanelMenuView.cpp (+1/-7)
panel/PanelMenuView.h (+0/-2)
panel/PanelView.cpp (+14/-121)
panel/PanelView.h (+4/-12)
plugins/unityshell/src/unityshell.cpp (+117/-95)
plugins/unityshell/src/unityshell.h (+9/-2)
plugins/unityshell/unityshell.xml.in (+0/-6)
services/CMakeLists.txt (+1/-1)
services/panel-main.c (+36/-0)
services/panel-service.c (+86/-10)
services/panel-service.h (+2/-0)
services/unity-panel-service-lockscreen.conf.in (+3/-1)
services/unity-panel-service-lockscreen.service.in (+7/-0)
services/unity-panel-service.conf.in (+3/-1)
shutdown/StandaloneSession.cpp (+1/-0)
tests/CMakeLists.txt (+473/-292)
tests/MockCategories.h (+24/-14)
tests/MockResults.h (+32/-7)
tests/autopilot/unity/tests/test_dash.py (+4/-4)
tests/data/external.gschema.xml (+7/-1)
tests/test-gestures/CMakeLists.txt (+5/-3)
tests/test-gestures/test_gesture_broker.cpp (+3/-3)
tests/test_action_handle.cpp (+12/-12)
tests/test_animation_utils.cpp (+4/-4)
tests/test_application_launcher_icon.cpp (+4/-4)
tests/test_bamf_application.cpp (+28/-3)
tests/test_categories.cpp (+3/-3)
tests/test_connection_manager.cpp (+10/-10)
tests/test_dashview.cpp (+1/-1)
tests/test_dashview_impl.cpp (+3/-3)
tests/test_dbus_indicators.cpp (+4/-4)
tests/test_decorations_input_mixer.cpp (+7/-7)
tests/test_decorations_widgets.cpp (+5/-5)
tests/test_delta_tracker.cpp (+6/-6)
tests/test_desktop_launcher_icon.cpp (+1/-1)
tests/test_device_launcher_section.cpp (+1/-1)
tests/test_edge_barrier_controller.cpp (+2/-0)
tests/test_favorite_store_gsettings.cpp (+5/-5)
tests/test_favorite_store_private.cpp (+4/-4)
tests/test_file_manager_launcher_icon.cpp (+202/-0)
tests/test_filter_widgets.cpp (+1/-1)
tests/test_glib_dbus_object.cpp (+2/-2)
tests/test_glib_dbus_server.cpp (+17/-17)
tests/test_glib_object.cpp (+10/-10)
tests/test_glib_signals.cpp (+201/-63)
tests/test_glib_source.cpp (+45/-45)
tests/test_glib_variant.cpp (+9/-9)
tests/test_gnome_session_manager.cpp (+10/-3)
tests/test_grabhandle.cpp (+2/-2)
tests/test_gsettings_scopes.cpp (+32/-32)
tests/test_hud_button.cpp (+2/-2)
tests/test_hud_private.cpp (+6/-6)
tests/test_hud_view.cpp (+1/-1)
tests/test_icon_loader.cpp (+32/-32)
tests/test_indicator.cpp (+6/-6)
tests/test_indicator_appmenu.cpp (+3/-3)
tests/test_indicator_entry.cpp (+3/-3)
tests/test_indicators.cpp (+11/-11)
tests/test_introspection_data.cpp (+40/-40)
tests/test_keyboard_util.cpp (+8/-0)
tests/test_launcher_controller.cpp (+14/-11)
tests/test_launcher_model.cpp (+6/-6)
tests/test_layout_system.cpp (+9/-9)
tests/test_lockscreen_controller.cpp (+9/-7)
tests/test_mock_session_manager.h (+1/-0)
tests/test_panel_controller.cpp (+5/-3)
tests/test_panel_indicator_entry_dropdown_view.cpp (+10/-10)
tests/test_panel_view.cpp (+2/-0)
tests/test_pointer_barrier.cpp (+2/-2)
tests/test_previews.cpp (+2/-2)
tests/test_previews_application.cpp (+2/-2)
tests/test_previews_generic.cpp (+1/-1)
tests/test_previews_movie.cpp (+1/-1)
tests/test_previews_music.cpp (+1/-1)
tests/test_previews_music_payment.cpp (+1/-1)
tests/test_previews_payment.cpp (+1/-0)
tests/test_previews_social.cpp (+1/-1)
tests/test_quicklist_view.cpp (+1/-1)
tests/test_results.cpp (+10/-10)
tests/test_scope.cpp (+6/-6)
tests/test_scope_view.cpp (+12/-12)
tests/test_session_view.cpp (+4/-4)
tests/test_shortcut_model.cpp (+4/-4)
tests/test_shortcut_view.cpp (+3/-3)
tests/test_showdesktop_handler.cpp (+13/-5)
tests/test_switcher_controller_slow.cpp (+5/-5)
tests/test_tabiterator.cpp (+0/-6)
tests/test_texture_cache.cpp (+2/-2)
tests/test_thumbnail_generator.cpp (+5/-5)
tests/test_trash_launcher_icon.cpp (+6/-6)
tests/test_ubus.cpp (+6/-6)
tests/test_unity_window_style.cpp (+3/-3)
tests/test_volume_launcher_icon.cpp (+4/-4)
tools/CMakeLists.txt (+13/-3)
tools/compiz-profile-selector.in (+49/-0)
tools/compiz_config_profile_setter.c (+228/-0)
tools/migration-scripts/06_unity_set_lowgfx_mode_settings_v1 (+95/-0)
tools/unity.cmake (+23/-7)
tools/upstart-prestart-check (+17/-0)
unity-shared/BGHash.cpp (+22/-59)
unity-shared/BGHash.h (+3/-4)
unity-shared/BackgroundEffectHelper.cpp (+3/-4)
unity-shared/CMakeLists.txt (+1/-0)
unity-shared/DashStyle.cpp (+2/-2)
unity-shared/GnomeFileManager.cpp (+4/-2)
unity-shared/InputMonitor.cpp (+423/-0)
unity-shared/InputMonitor.h (+67/-0)
unity-shared/MenuManager.cpp (+157/-1)
unity-shared/MenuManager.h (+4/-0)
unity-shared/SigcSlotHash.h (+70/-0)
unity-shared/StandaloneWindowManager.cpp (+3/-0)
unity-shared/StandaloneWindowManager.h (+1/-0)
unity-shared/ThumbnailGenerator.cpp (+1/-1)
unity-shared/UScreen.cpp (+9/-0)
unity-shared/UScreen.h (+2/-0)
unity-shared/UnitySettings.cpp (+147/-14)
unity-shared/UnitySettings.h (+1/-1)
unity-shared/UpstartWrapper.cpp (+11/-6)
unity-shared/WindowManager.h (+1/-0)
unity-shared/XWindowManager.cpp (+6/-0)
unity-shared/XWindowManager.h (+1/-0)
information type: | Public → Private Security |
affects: | unity-greeter (Ubuntu) → unity (Ubuntu) |
information type: | Private Security → Public Security |
Changed in unity (Ubuntu): | |
status: | New → In Progress |
importance: | Undecided → High |
assignee: | nobody → Marco Trevisan (Treviño) (3v1n0) |
description: | updated |
This bug was fixed in the package unity - 7.5.0+17. 04.20170222- 0ubuntu1
--------------- 17.04.20170222- 0ubuntu1) zesty; urgency=medium
unity (7.5.0+
* BackgroundSettings: use gnome-bg to generate textures with proper
scaling (LP: #1666359)
-- Marco Trevisan (Treviño) <mail@3v1n0.net> Wed, 22 Feb 2017 01:52:54 +0000