Discussion:
A short warning on the X11 Editres protocol
(too old to reply)
Florian Weimer
2005-05-31 21:37:37 UTC
Permalink
The xterm manual page contains a strongly worded warning about the
allowSendEvents configuration option:

| allowSendEvents (class AllowSendEvents)
| Specifies whether or not synthetic key and button events
| (generated using the X protocol SendEvent request) should be
| interpreted or discarded. The default is ‘‘false’’ meaning they
| are discarded. Note that allowing such events creates a very
| large security hole. The default is ‘‘false.’’

However, xterm is an Xt application and therefore speaks a
long-forgotten protocol called Editres. As a result, any Editres
client (such as "editres") can instruct an xterm window to change its
allowSendEvents setting. After that, it's possible to send
synthesized events to the xterm window and hijack the terminal.

Other Xt applications may have similar issues. If an application is
SUID or SGID and does not drop privileges early in the startup
process, a privilege escalation vulnerability might exist (but it's
probably easier to exploit it by providing carefully constructed
resource settings from the beginning).

I'm not sure that the author of the paragraph was right to label this
as a security hole; certainly it's just a minor one. However, the
xterm documentation should be updated. (A previous attempt to resolve
this issue quietly had failed.)
_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/
Frank v Waveren
2005-06-02 10:08:03 UTC
Permalink
Post by Florian Weimer
However, xterm is an Xt application and therefore speaks a
long-forgotten protocol called Editres. As a result, any Editres
client (such as "editres") can instruct an xterm window to change its
allowSendEvents setting. After that, it's possible to send
synthesized events to the xterm window and hijack the terminal.
And even if it weren't toggleable with editres, there's still the
XTEST extension which seems to be pretty omnipresent these days.
Basically, you shouldn't be mixing privileges in one X session (even
using the security extension it's generally something you want to
avoid, design-wise).
--
Frank v Waveren Fingerprint: BDD7 D61E
fvw@[var.cx|stack.nl] ICQ#10074100 5D39 CF05 4BFC F57A
Public key: hkp://wwwkeys.pgp.net/468D62C8 FA00 7D51 468D 62C8
Loading...