SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Assuming user Joe logged in in VT1, then started a X session (startx) which runs in VT7. Now the physical user switches to VT2 (Ctrl-Alt-F2) and logs in as root.
Can a malicious program running in X / VT7 with uid=Joe access anything in VT2?
More precisely, can the malicious program spy or spoof keystrokes? can it grab some VT2 content (e.g. get a screenshot)?
(I am running Slackware 14 with the regular kernel, if this makes any difference)
He asked if Joe from VT1 can spy a root on VT2. I think that if everything is properly configured (for example CTRL+ALT+F* in X server are not disabled by administrator) then not. But I am not a hacker.
For example to access other X session (screen, keys activity) you need to know Magic Cookie stored on user who started session home directory. Which is protected.
Of course, I understand that. My question is: can a program running as a _regular, non-root_ user can access another VT?
(assuming that this program cannot su or sudo to become root)
Ah, OK. Simple answer: no due to separation of privileges (UID) and X11 authorization protocol (see xauth). That said X11 server is way ancient and abuses system resources like ioctls in mysterious ways.
is there any known way for a malicious (unpriviledged) program to abuse X APIs, and get access to another VT content or input stream?
X.Org's X Server not only contains device drivers, fonts other modules and rendering code but also network code, etc, etc and http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=X11 should give you an idea of the different vectors.
Last edited by unSpawn; 03-09-2013 at 04:18 PM.
Reason: //Clarify
X.Org's X Server not only contains device drivers, fonts other modules and rendering code but also network code, etc, etc and http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=X11 should give you an idea of the different vectors.
Thanks for the link. Yes the X Server is a big and very complex engine that runs as root (SUID) which is not good.
I have read (https://wiki.ubuntu.com/X/Rootless) that X can be run as a non-root user (=> not more need to suid X) which would be good... but the recipe includes giving rw access to /dev/input/* to at least the user, which seems to introduce a bigger risk (maybe a user program could then spy on _any_ input?!?).
Has anyone run X as a non-root user?
I wonder if it is not more systematically setup that way because (a) it doesn't work with non-KMS drivers, (b) it is more complex to setup for a small perceived benefit, or (c) because it is simply less secure than running X as suid root?
I think I don't understand the X protocol nor X Server implementations like X.Org's X11 or Wayland well enough :-]
Same here! Anyway, thanks for your help. I'll leave the thread "non-solved" for a while, just in case somebody has run X rootless and wants to comment.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.