LinuxQuestions.org
Help answer threads with 0 replies.
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, 12:38 PM   #1
philanc
Member
 
Registered: Jan 2011
Posts: 67

Rep: Reputation: 32
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, 02:02 PM   #2
unSpawn
Moderator
 
Registered: May 2001
Posts: 27,543
Blog Entries: 54

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

Rep: Reputation: 307Reputation: 307Reputation: 307Reputation: 307
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 02:28 PM.
 
Old 03-07-2013, 02:27 PM   #4
philanc
Member
 
Registered: Jan 2011
Posts: 67

Original Poster
Rep: Reputation: 32
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, 03:47 PM   #5
unSpawn
Moderator
 
Registered: May 2001
Posts: 27,543
Blog Entries: 54

Rep: Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924
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, 09:03 PM   #6
philanc
Member
 
Registered: Jan 2011
Posts: 67

Original Poster
Rep: Reputation: 32
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, 03:47 PM   #7
guanx
Senior Member
 
Registered: Dec 2008
Posts: 1,014

Rep: Reputation: 146Reputation: 146
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, 04:30 PM   #8
wildwizard
Member
 
Registered: Apr 2009
Location: Oz
Distribution: slackware64-14.0
Posts: 755

Rep: Reputation: 227Reputation: 227Reputation: 227
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, 04:53 PM   #9
unSpawn
Moderator
 
Registered: May 2001
Posts: 27,543
Blog Entries: 54

Rep: Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924
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 05:18 PM. Reason: //Clarify
 
Old 03-09-2013, 07:14 PM   #10
philanc
Member
 
Registered: Jan 2011
Posts: 67

Original Poster
Rep: Reputation: 32
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, 08:39 PM   #11
unSpawn
Moderator
 
Registered: May 2001
Posts: 27,543
Blog Entries: 54

Rep: Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924Reputation: 2924
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, 02:08 PM   #12
philanc
Member
 
Registered: Jan 2011
Posts: 67

Original Poster
Rep: Reputation: 32
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


Thread Tools Search this Thread
Search this Thread:

Advanced Search

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 01:49 AM
Killing the process on a virtual terminal from another virtual terminal. Azazwa Linux - Newbie 8 05-05-2009 01:33 PM
Virtual terminal Nawas111 Linux - Hardware 4 11-27-2004 06:02 PM
Virtual terminal blackzone Linux - General 4 07-22-2004 07:13 AM
Only one virtual terminal? kule Slackware 7 07-14-2004 06:06 PM


All times are GMT -5. The time now is 12:27 AM.

Main Menu
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
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration