Package: xterm
Version: 222-1etch2
Severity: grave
Tags: security patch
Justification: user security hole


DECRQSS Device Control Request Status String "DCS $ q" simply echoes
(responds with) invalid commands. For example,
perl -e 'print "\eP\$q\nbad-command\n\e\\"'
would run bad-command.

Exploitability is the same as for the "window title reporting" issue
in DSA-380: include the DCS string in an email message to the victim,
or arrange to have it in syslog to be viewed by root.

The attached patch should fix the problem.

---

The default allowWindowOps is false (as should be), but the man page
says the default is true. The man page should also mention that turning
it on is a security risk, to avoid regression e.g. as per
http://bugs.debian.org/384593
http://www.debian.org/security/2003/dsa-380
and also the much older
http://www.maths.usyd.edu.au/u/psz/securedu.html#xterm
(and private message to xterm maintainers on 9 Mar 2000, seems only
"grep PSz main.c" remains).

---

Ubuntu still allows window title reporting, and is vulnerable to
perl -e 'print "\e\]0;;bad-command;\a\e\[21t"'

---

I wonder whether the following are handled and/or dangerous:
set X property  perl -e 'print "\e\]3;XTerm.vt100.allowWindowOps=1\e\\"'
set, get font   perl -e 'print "\e\]50;bad-command\e\\","\e\]50;?\e\\"'
UDK setting     perl -e 'print "\eP1;1|17/0a6261642d636f6d6d616e640a\e\\"'
  then trick user to press F key, or
                perl -e 'print "\eP+q584b5f434f4c524f53\e\\"'


Paul Szabo   p...@maths.usyd.edu.au   http://www.maths.usyd.edu.au/u/psz/
School of Mathematics and Statistics   University of Sydney    Australia


-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.24-pk03.02-svr
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages xterm depends on:
ii  libc6                  2.3.6.ds1-13etch8 GNU C Library: Shared libraries
ii  libfontconfig1         2.4.2-1.2         generic font configuration library
ii  libice6                1:1.0.1-2         X11 Inter-Client Exchange library
ii  libncurses5            5.5-5             Shared libraries for terminal hand
ii  libsm6                 1:1.0.1-3         X11 Session Management library
ii  libx11-6               2:1.0.3-7         X11 client-side library
ii  libxaw7                1:1.0.2-4         X11 Athena Widget library
ii  libxext6               1:1.0.1-2         X11 miscellaneous extension librar
ii  libxft2                2.1.8.2-8         FreeType-based font drawing librar
ii  libxmu6                1:1.0.2-2         X11 miscellaneous utility library
ii  libxt6                 1:1.0.2-2         X11 toolkit intrinsics library
ii  xbitmaps               1.0.1-2           Base X bitmaps

Versions of packages xterm recommends:
ii  xutils                      1:7.1.ds.3-1 X Window System utility programs

-- no debconf information
--- misc.c.bak  2006-10-18 07:23:20.000000000 +1000
+++ misc.c      2008-12-29 07:06:25.000000000 +1100
@@ -2259,11 +2259,12 @@
            unparseputc1(xw, DCS);
            unparseputc(xw, okay ? '1' : '0');
            unparseputc(xw, '$');
            unparseputc(xw, 'r');
-           if (okay)
+           if (okay) {
                cp = reply;
-           unparseputs(xw, cp);
+               unparseputs(xw, cp);
+           }
            unparseputc1(xw, ST);
        } else {
            unparseputc(xw, CAN);
        }

Reply via email to