4 ms·
Windows privilege escalation bugs are so unbelievably common. We just fixed one in our MSI installer, and when I went to search for the CVE there were like 10 r
by api 5y ago
Windows privilege escalation bugs are so unbelievably common. We just fixed one in our MSI installer, and when I went to search for the CVE there were like 10 recent ones from different things including various VPN clients and shell extension apps.
The culprit is usually the insane Windows ACL permission system. Unix permissions look like "rwxr-xr-x" while a very simple example of a Windows permission is:
D:(A;OICI;FA;;;SY)(A;OICI;FA;;;WD)
Windows is a single user OS. If you are depending on its local user permission access control to be anything more than advisory you are going to have a bad time.
- pjmlp 5y agoLets not pretend UNIX doesn't have enough of their own, specially with setuid exploits.
- api 5y agoWindows beats Unix variants by at least 10:1 on local privilege escalation bugs.
- staticassertion 5y agoNot sure about that, but... 1. If we're talking about desktops systems, privesc is trivial in either OS. In Linux you can do a million things to privesc, such as snooping passwords via X11, modifying the various user files like ~/.bashrc with aliases, etc. On Windows UAC isn't even intended to be a barrier. 2. If we're talking about servers, I'm not sure that Windows is 10:1 worse on privescs.
- zaarn 5y agoI'd say the main intention of UAC is to make sudo but without obvious vulnerabilities. The UAC dialog is wired deep into the system and you can't fake it. It takes priority over any UI stuff and won't accept input from a program you didn't specifically authorize (which requires accepting a UAC prompt). On the flipside, all it takes to manipulate sudo on Unix systems is to write a TTY emulator that just middlewares between the user and sudo. Then just alias via bashrc or any number of other places that can prompt for a user password. There is not protection sudo can deploy against that. Polkit helps a bit but X11 isn't great at helping there either since other programs can just send keystrokes.
- staticassertion 5y agoI'm just saying that Microsoft has stated that UAC is not intended to be a privilege boundary.
- zaarn 5y agoIt is a clear privilege boundary, just not a barrier. Beyond UAC is Admin, before UAC is non-Admin. Crossing that divide requires a user interaction. UAC can be a barrier if it would display more about the programs intention. Similar sudo could be improved the same way.
- staticassertion 5y agoNo, that's not correct. The reason it's not a barrier and not a boundary is because there are universal bypasses.
- aaaaaaaaata 5y agoHurdle? I feel like we're getting off topic =]
- pjmlp 5y agoWhere is the statistic proving that? CVE database is pretty much alike.
- GordonS 5y agoThe string-based representation of Windows ACLs is more complex than Linux ACLs - because it's a more complex and powerful system. While your last paragraph is technically true, ACLs can also be applied on files from network shares. And of course (just as on Linux), even on single, non-networked machines, only very technical users will realistically be able to access files they are not authorised for.
- api 5y agoIt may be more capable but that comes at a high cost in terms of usability, bugs, and vulnerabilities. Complexity is generally bad for security especially when the system doesn't seem well designed to manage it.
- octagons 5y agoYou're absolutely correct about the Windows ACL system. The discretionary access control system in Windows can easily be subverted by a poorly configured dynamic access control policy. Windows is not a single-user OS. Even a standard "desktop" installation can support multiple sessions through terminal services, but usually it is not configured to allow multiple concurrent interactive sessions.