https://bugs.kde.org/show_bug.cgi?id=486453

            Bug ID: 486453
           Summary: Admin password dialog seems potentially fundamentally
                    unsafe and like a significant downgrade to e.g.
                    Windows UAC
    Classification: Plasma
           Product: kwin
           Version: 6.0.3
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: kwin-bugs-n...@kde.org
          Reporter: e...@horse64.org
  Target Milestone: ---

Created attachment 169098
  --> https://bugs.kde.org/attachment.cgi?id=169098&action=edit
Admin prompt with details when installing software in KDE discover

SUMMARY

The admin password dialog seems potentially fundamentally unsafe and like a
significant downgrade to e.g. Windows UAC. I might be wrong on this one, but
let me explain what I would expect the admin dialog to do so it's safe, and
maybe that will help you decide whether I'm onto something here or not.

Here is what I would the admin password dialog to provide which it doesn't,
which ultimately seem to make it suspectible to trivial forgery attacks where
just any application can grab the admin password and do whatever it wants, even
with flatpak sandboxing and Wayland:

1. The admin dialog should at least give me the most vague chance to possibly
figure out what process asks for permission because otherwise, any other
process could try to just randomly launch a common admin password dialog and
hope the user assumes it is legitimate without realizing it is from a
completely different requesting process as usual. From all instances I've
found, see attached screenshots, this is never the case. To make this clear on
Linux, I think the following info would be required in the "Details" section:
1. at the very least the requesting process's initial exact launch command with
full arguments, 2. possibly the process PID, 3. possibly the requesting
process's current effective user id and user name. Windows UAC does this by
showing the "Program location" on disk if you click "Show details". The KDE
admin prompt doesn't seem to show any info here. For what it's worth, the "ID"
and "vendor" it shows seem useful but not like it would allow most admins to
figure out what group of processes would actually have the permission to
request via this ID+vendor and whether that may be an impostor app or not.
Therefore, these seem useful as additional indicators but not good enough. My
apologies if that is incorrect.

2. The admin dialog should be visually distinct from whatever a program could
launch as a fake, and/or allow using some keyboard combination to identify it's
the "real" one. This would be possible for example if all the desktop was
overlayed and dimmed including the task bar (which Windows UAC can be
configured to do, and KDE doesn't do) and by optionally offering requiring
something like pressing CTRL+ALT+DEL before confirming UAC which needs to be a
combination that can't be grabbed by any non-admin apps and therefore if it is
pressed and advances the UAC dialog you know it's the real one (which KDE
doesn't seem to offer as an option either but Windows UAC does). This would
also be made even safer by requiring an opt-in prompt for fullscreen from any
flatpak sandboxed application, such that a screenshot of the desktop can't be
taken and then modified on-the-fly to show the dialog with dim in front to fake
it, since it would require a fullscreen prompt that would make you aware
something is being overlayed.

STEPS TO REPRODUCE

1. Look at admin prompts, see attachments which has the example of virt-manager
requiring admin pw, and a "Terminal - Super User Mode" requiring admin pw.

OBSERVED RESULT

It's not possible to rule out a forgery of the dialog (= 100% fake dialog
prompted by other app), and it's not possible to rule out an unexpected app
prompting instead of the expected one (= real dialog but prompted by different
app than usual, unexpectedly elevating the wrong one).

EXPECTED RESULT

Forgery and app mixups are at least on a basic level somewhat ruled out for
attentive users that make use of all the information shown in the dialog.

SOFTWARE/OS VERSIONS

Windows: 
macOS: 
Linux/KDE Plasma: openSUSE Slowroll
(available in About System)
KDE Plasma Version: plasmashell 6.0.3
KDE Frameworks Version:  6.0.0
Qt Version: 6.6.3

ADDITIONAL INFORMATION

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to