OSK consideration for life cycle changes in unity8 windowed mode
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
qtmir (Ubuntu) |
In Progress
|
Undecided
|
Daniel d'Andrada | ||
ubuntu-keyboard (Ubuntu) |
In Progress
|
Undecided
|
Michael Sheldon |
Bug Description
Access to the On-Screen-Keyboard, as provided by Maliit, is predicated on the application being “active”. Unity8’s life cycle management, in small screen devices had always stopped (via SIGSTOP) any application which was not the top most application. From a security perspective this provided protection from a nefarious app from taking over, while in the background, to the input stream of the user’s interaction with the top-most active application. With the advent of convergence, unity8’s life cycle management has grown to accommodate both small screen and large screen device configurations. For large screens, “windowed mode” is a mode that can be auto & user activated based on screen size and presence of keyboard/mouse. During “windowed mode” the life cycle permits applications to remain “active” if they are visible but not the top-most or “focused” application (the user experience example is working on a document in the top-most window while watching video in an active but unfocused window). Remaining active, while not in the user’s “focus” creates a risk in that an application could connect to Maliit and take over the user’s input intended for the focused application. So while this is bad, the top-most application will not reflect the input, as it would be consumed by the nefarious app. It’s worth noting this risk does not exist with hardware keyboard input, which is the largest majority of expected use case. Security team would classify the severity as “medium” but we need to treat with priority and sensitivity due to the marketing investment we have made in touting the security of Unity8/Mir.
our plan of attack is covered in this document
https:/
Related branches
- Nick Dedekind (community): Approve
- Unity8 CI Bot (community): Approve (continuous-integration)
- Michael Sheldon (community): Needs Fixing
-
Diff: 580 lines (+357/-2)20 files modifiedCMakeLists.txt (+1/-2)
debian/control (+1/-0)
src/modules/Unity/Application/CMakeLists.txt (+3/-0)
src/modules/Unity/Application/application.cpp (+1/-0)
src/modules/Unity/Application/application_manager.cpp (+3/-0)
src/modules/Unity/Application/application_manager.h (+2/-0)
src/modules/Unity/Application/cgmanager.cpp (+117/-0)
src/modules/Unity/Application/cgmanager.h (+42/-0)
src/modules/Unity/Application/dbusfocusinfo.cpp (+89/-0)
src/modules/Unity/Application/dbusfocusinfo.h (+54/-0)
src/modules/Unity/Application/mirsurface.cpp (+5/-0)
src/modules/Unity/Application/mirsurface.h (+1/-0)
src/modules/Unity/Application/mirsurfaceinterface.h (+4/-0)
src/modules/Unity/Application/session.cpp (+17/-0)
src/modules/Unity/Application/session.h (+4/-0)
src/modules/Unity/Application/session_interface.h (+6/-0)
src/platforms/mirserver/logging.cpp (+1/-0)
src/platforms/mirserver/logging.h (+1/-0)
tests/framework/fake_mirsurface.h (+1/-0)
tests/framework/fake_session.h (+4/-0)
CVE References
Changed in ubuntu-keyboard (Ubuntu): | |
status: | New → In Progress |
Changed in qtmir (Ubuntu): | |
status: | New → Incomplete |
information type: | Private Security → Public Security |
This is CVE-2016-1584