LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 03-07-2013, 11:38 AM   #1
philanc
Member
 
Registered: Jan 2011
Posts: 308

Rep: Reputation: 273Reputation: 273Reputation: 273
VT (Virtual Terminal) security


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)

TIA

Phil
 
Old 03-07-2013, 01:02 PM   #2
unSpawn
Moderator
 
Registered: May 2001
Posts: 29,415
Blog Entries: 55

Rep: Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600
Root is all-powerful, is your answer.
 
Old 03-07-2013, 01:24 PM   #3
eSelix
Senior Member
 
Registered: Oct 2009
Location: Wroclaw, Poland
Distribution: Arch, Kubuntu
Posts: 1,281

Rep: Reputation: 320Reputation: 320Reputation: 320Reputation: 320
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.

Last edited by eSelix; 03-07-2013 at 01:28 PM.
 
Old 03-07-2013, 01:27 PM   #4
philanc
Member
 
Registered: Jan 2011
Posts: 308

Original Poster
Rep: Reputation: 273Reputation: 273Reputation: 273
Quote:
Originally Posted by unSpawn View Post
Root is all-powerful, is your answer.
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)
 
Old 03-07-2013, 02:47 PM   #5
unSpawn
Moderator
 
Registered: May 2001
Posts: 29,415
Blog Entries: 55

Rep: Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600
Quote:
Originally Posted by philanc View Post
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.
 
Old 03-07-2013, 08:03 PM   #6
philanc
Member
 
Registered: Jan 2011
Posts: 308

Original Poster
Rep: Reputation: 273Reputation: 273Reputation: 273
Quote:
Originally Posted by unSpawn View Post
That said X11 server is way ancient and abuses system resources like ioctls in mysterious ways.
Precisely. As the X server runs as root (SUID 0), in theory, it could access any VT.

So, is there any known way for a malicious (unpriviledged) program to abuse X APIs, and get access to another VT content or input stream?

I tried to google about this but to no avail. Does an X expert here know better?

Thanks for your help

Phil
 
Old 03-08-2013, 02:47 PM   #7
guanx
Senior Member
 
Registered: Dec 2008
Posts: 1,176

Rep: Reputation: 233Reputation: 233Reputation: 233
Quote:
Originally Posted by philanc View Post
Precisely. As the X server runs as root (SUID 0), in theory, it could access any VT.

So, is there any known way for a malicious (unpriviledged) program to abuse X APIs, and get access to another VT content or input stream?

I tried to google about this but to no avail. Does an X expert here know better?

Thanks for your help

Phil
I bet there is no standard-conforming way to do this.
 
Old 03-09-2013, 03:30 PM   #8
wildwizard
Member
 
Registered: Apr 2009
Location: Oz
Distribution: slackware64-14.0
Posts: 875

Rep: Reputation: 282Reputation: 282Reputation: 282
Attempting to access another processes address space even when the users are the same will not work for a start.

Can X see input devices while it is not the controlling terminal? I couldn't say.
 
Old 03-09-2013, 03:53 PM   #9
unSpawn
Moderator
 
Registered: May 2001
Posts: 29,415
Blog Entries: 55

Rep: Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600
Quote:
Originally Posted by philanc View Post
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
 
Old 03-09-2013, 06:14 PM   #10
philanc
Member
 
Registered: Jan 2011
Posts: 308

Original Poster
Rep: Reputation: 273Reputation: 273Reputation: 273
Quote:
Originally Posted by unSpawn View Post
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?

What do you think?

Phil
 
Old 03-09-2013, 07:39 PM   #11
unSpawn
Moderator
 
Registered: May 2001
Posts: 29,415
Blog Entries: 55

Rep: Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600Reputation: 3600
Quote:
Originally Posted by philanc View Post
What do you think?
I think I don't understand the X protocol nor X Server implementations like X.Org's X11 or Wayland well enough :-]
 
Old 03-10-2013, 01:08 PM   #12
philanc
Member
 
Registered: Jan 2011
Posts: 308

Original Poster
Rep: Reputation: 273Reputation: 273Reputation: 273
Quote:
Originally Posted by unSpawn View Post
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.

Phil
 
  


Reply

Tags
security



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Have to log out of a virtual terminal twice in order to exit virtual terminals narnie Linux - Newbie 5 02-24-2010 12:49 AM
Killing the process on a virtual terminal from another virtual terminal. Azazwa Linux - Newbie 8 05-05-2009 12:33 PM
Virtual terminal Nawas111 Linux - Hardware 4 11-27-2004 05:02 PM
Virtual terminal blackzone Linux - General 4 07-22-2004 06:13 AM
Only one virtual terminal? kule Slackware 7 07-14-2004 05:06 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 04:11 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration