Package: gnome-gv
Version: 1:2.8.2-3
Severity: critical
Justification: root security hole

{{ note that the Severity: _may_ be overstated, I simply don't know; but
if gnome-gv can be made to open outbound FTP connections by the contents
of a postscript file, then this is potentially a very serious hole, on a
par with local root exploits }}

When viewing a local copy of
http://www.scs.cs.nyu.edu/~dm/papers/mazieres:sundr-podc.ps.gz (Firefox
had downloaded it to /tmp/mazieres:sundr-podc.ps.gz and invoked gnome-gv
as "/usr/bin/gnome-gv /tmp/mazieres:sundr-podc.ps.gz") two odd things
happened:

- gnome-gv never appeared. (I assumed that I had choked in the .gz, so I
uncompressed the file, converted to PDF for good measure and opened and
viewed it with xpdf.)

- An hour later I noticed unexpected network traffic. Upon digging a little
deeper I noticed continual failed anonymous FTP login attempts to
208.113.133.22.


Strace showed:

Process 32332 attached - interrupt to quit
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "220 ProFTPD 1.3.0rc2 Server (Dre"..., 4096) = 62
write(50, "USER anonymous\r\n", 16)     = 16
read(50, 0x81a229c, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "331 Password required for anonym"..., 4096) = 38
write(50, "PASS [EMAIL PROTECTED]", 23) = 23
read(50, 0x81a229c, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "530 Login incorrect.\r\n", 4096) = 22
close(50)                               = 0
socket(PF_NETLINK, SOCK_RAW, 0)         = 50
bind(50, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(50, {sa_family=AF_NETLINK, pid=32332, groups=00000000}, [12]) = 0
time(NULL)                              = 1155039459
sendto(50, "\24\0\0\0\26\0\1\3\343\200\330D\0\0\0\0\0\352\241@", 20, 0, 
{sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(50, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{"<\0\0\0\24\0\2\0\343\200\330DL~\0\0\2\10\200\376\1\0\0"..., 
4096}], msg_controllen=0, msg_flags=0}, 0) = 248
recvmsg(50, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{"\24\0\0\0\3\0\2\0\343\200\330DL~\0\0\0\0\0\0\1\0\0\0\10"..., 
4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(50)                               = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 50
connect(50, {sa_family=AF_INET, sin_port=htons(21), 
sin_addr=inet_addr("208.113.133.22")}, 16) = 0
fcntl64(50, F_GETFL)                    = 0x2 (flags O_RDWR)
fcntl64(50, F_SETFL, O_RDWR|O_NONBLOCK) = 0
read(50, 0x81a22a4, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "220 ProFTPD 1.3.0rc2 Server (Dre"..., 4096) = 62
write(50, "USER anonymous\r\n", 16)     = 16
read(50, 0x81a22a4, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "331 Password required for anonym"..., 4096) = 38
write(50, "PASS [EMAIL PROTECTED]", 23) = 23
read(50, 0x81a22a4, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "530 Login incorrect.\r\n", 4096) = 22
close(50)                               = 0
socket(PF_NETLINK, SOCK_RAW, 0)         = 50
bind(50, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(50, {sa_family=AF_NETLINK, pid=32332, groups=00000000}, [12]) = 0
time(NULL)                              = 1155039460
sendto(50, "\24\0\0\0\26\0\1\3\344\200\330D\0\0\0\0\0\352\241@", 20, 0, 
{sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(50, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{"<\0\0\0\24\0\2\0\344\200\330DL~\0\0\2\10\200\376\1\0\0"..., 
4096}], msg_controllen=0, msg_flags=0}, 0) = 248
recvmsg(50, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{"\24\0\0\0\3\0\2\0\344\200\330DL~\0\0\0\0\0\0\1\0\0\0\10"..., 
4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(50)                               = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 50
connect(50, {sa_family=AF_INET, sin_port=htons(21), 
sin_addr=inet_addr("208.113.133.22")}, 16) = 0
fcntl64(50, F_GETFL)                    = 0x2 (flags O_RDWR)
fcntl64(50, F_SETFL, O_RDWR|O_NONBLOCK) = 0
read(50, 0x81a22ec, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "220 ProFTPD 1.3.0rc2 Server (Dre"..., 4096) = 62
write(50, "USER anonymous\r\n", 16)     = 16
read(50, 0x81a22ec, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "331 Password required for anonym"..., 4096) = 38
write(50, "PASS [EMAIL PROTECTED]", 23) = 23
read(50, 0x81a22ec, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "530 Login incorrect.\r\n", 4096) = 22
close(50)                               = 0
socket(PF_NETLINK, SOCK_RAW, 0)         = 50
bind(50, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(50, {sa_family=AF_NETLINK, pid=32332, groups=00000000}, [12]) = 0
time(NULL)                              = 1155039461
sendto(50, "\24\0\0\0\26\0\1\3\345\200\330D\0\0\0\0\0\352\241@", 20, 0, 
{sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(50, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{"<\0\0\0\24\0\2\0\345\200\330DL~\0\0\2\10\200\376\1\0\0"..., 
4096}], msg_controllen=0, msg_flags=0}, 0) = 248
recvmsg(50, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{"\24\0\0\0\3\0\2\0\345\200\330DL~\0\0\0\0\0\0\1\0\0\0\10"..., 
4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(50)                               = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 50
connect(50, {sa_family=AF_INET, sin_port=htons(21), 
sin_addr=inet_addr("208.113.133.22")}, 16) = 0
fcntl64(50, F_GETFL)                    = 0x2 (flags O_RDWR)
fcntl64(50, F_SETFL, O_RDWR|O_NONBLOCK) = 0
read(50, 0x81a22f4, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "220 ProFTPD 1.3.0rc2 Server (Dre"..., 4096) = 62
write(50, "USER anonymous\r\n", 16)     = 16
read(50, 0x81a22f4, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "331 Password required for anonym"..., 4096) = 38
write(50, "PASS [EMAIL PROTECTED]", 23) = 23
read(50, 0x81a22f4, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "530 Login incorrect.\r\n", 4096) = 22
close(50)                               = 0
socket(PF_NETLINK, SOCK_RAW, 0)         = 50
bind(50, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(50, {sa_family=AF_NETLINK, pid=32332, groups=00000000}, [12]) = 0
time(NULL)                              = 1155039461
sendto(50, "\24\0\0\0\26\0\1\3\345\200\330D\0\0\0\0\0\352\241@", 20, 0, 
{sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(50, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{"<\0\0\0\24\0\2\0\345\200\330DL~\0\0\2\10\200\376\1\0\0"..., 
4096}], msg_controllen=0, msg_flags=0}, 0) = 248
recvmsg(50, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{"\24\0\0\0\3\0\2\0\345\200\330DL~\0\0\0\0\0\0\1\0\0\0\10"..., 
4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(50)                               = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 50
connect(50, {sa_family=AF_INET, sin_port=htons(21), 
sin_addr=inet_addr("208.113.133.22")}, 16) = 0
fcntl64(50, F_GETFL)                    = 0x2 (flags O_RDWR)
fcntl64(50, F_SETFL, O_RDWR|O_NONBLOCK) = 0
read(50, 0x81a233c, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "220 ProFTPD 1.3.0rc2 Server (Dre"..., 4096) = 62
write(50, "USER anonymous\r\n", 16)     = 16
read(50, 0x81a233c, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "331 Password required for anonym"..., 4096) = 38
write(50, "PASS [EMAIL PROTECTED]", 23) = 23
read(50, 0x81a233c, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "530 Login incorrect.\r\n", 4096) = 22
close(50)                               = 0
socket(PF_NETLINK, SOCK_RAW, 0)         = 50
bind(50, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(50, {sa_family=AF_NETLINK, pid=32332, groups=00000000}, [12]) = 0
time(NULL)                              = 1155039462
sendto(50, "\24\0\0\0\26\0\1\3\346\200\330D\0\0\0\0\0\352\241@", 20, 0, 
{sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(50, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{"<\0\0\0\24\0\2\0\346\200\330DL~\0\0\2\10\200\376\1\0\0"..., 
4096}], msg_controllen=0, msg_flags=0}, 0) = 248
recvmsg(50, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{"\24\0\0\0\3\0\2\0\346\200\330DL~\0\0\0\0\0\0\1\0\0\0\10"..., 
4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(50)                               = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 50
connect(50, {sa_family=AF_INET, sin_port=htons(21), 
sin_addr=inet_addr("208.113.133.22")}, 16) = 0
fcntl64(50, F_GETFL)                    = 0x2 (flags O_RDWR)
fcntl64(50, F_SETFL, O_RDWR|O_NONBLOCK) = 0
read(50, 0x81a2344, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "220 ProFTPD 1.3.0rc2 Server (Dre"..., 4096) = 62
write(50, "USER anonymous\r\n", 16)     = 16
read(50, 0x81a2344, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "331 Password required for anonym"..., 4096) = 38
write(50, "PASS [EMAIL PROTECTED]", 23) = 23
read(50, 0x81a2344, 4096)               = -1 EAGAIN (Resource temporarily 
unavailable)
select(51, [50], NULL, NULL, NULL)      = 1 (in [50])
read(50, "530 Login incorrect.\r\n", 4096) = 22
close(50)                               = 0
socket(PF_NETLINK, SOCK_RAW, 0)         = 50
bind(50, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(50, {sa_family=AF_NETLINK, pid=32332, groups=00000000}, [12]) = 0
time(NULL)                              = 1155039463
sendto(50, "\24\0\0\0\26\0\1\3\347\200\330D\0\0\0\0\0\352\241@", 20, 0, 
{sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(50, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{"<\0\0\0\24\0\2\0\347\200\330DL~\0\0\2\10\200\376\1\0\0"..., 
4096}], msg_controllen=0, msg_flags=0}, 0) = 248
recvmsg(50, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{"\24\0\0\0\3\0\2\0\347\200\330DL~\0\0\0\0\0\0\1\0\0\0\10"..., 
4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(50)                               = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 50
connect(50, {sa_family=AF_INET, sin_port=htons(21), 
sin_addr=inet_addr("208.113.133.22")}, 16) = 0
fcntl64(50, F_GETFL)                    = 0x2 (flags O_RDWR)
...

ltrace showed:

g_str_hash(0x40edfe7d, 0x40aa18e0, 0xbf80b358, 0x408f9924, 0x40aa18e0)       = 
0xdefc1d76
g_str_hash(0x40edfe7d, 0, 0xbf80b358, 0x408f9924, 0x40aa18e0)                = 
0xdefc1d76
g_str_hash(0x40edfe7d, 0x40aa18e0, 0xbf80b358, 0x408f9924, 0x40aa18e0)       = 
0xdefc1d76
g_str_hash(0x40edfe7d, 0, 0xbf80b358, 0x408f9924, 0x40aa18e0)                = 
0xdefc1d76
g_str_hash(0x40edfe7d, 0x40aa18e0, 0xbf80b358, 0x408f9924, 0x40aa18e0)       = 
0xdefc1d76
g_str_hash(0x40edfe7d, 0, 0xbf80b358, 0x408f9924, 0x40aa18e0)                = 
0xdefc1d76
g_str_hash(0x40edfe7d, 0x40aa18e0, 0xbf80b358, 0x408f9924, 0x40aa18e0)       = 
0xdefc1d76
g_str_hash(0x40edfe7d, 0, 0xbf80b358, 0x408f9924, 0x40aa18e0)                = 
0xdefc1d76
g_str_hash(0x40edfe7d, 0x40aa18e0, 0xbf80b358, 0x408f9924, 0x40aa18e0)       = 
0xdefc1d76
g_str_hash(0x40edfe7d, 0, 0xbf80b358, 0x408f9924, 0x40aa18e0)                = 
0xdefc1d76
...


I'm not sure what else to tell you. Presumably there is no legitimate reason for
gnome-gv to be making gratuitous outbound FTP connections?

- Raz


-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.6.15-1-686
Locale: LANG=en_AU, LC_CTYPE=en_AU (charmap=ISO-8859-1)

Versions of packages gnome-gv depends on:
ii  desktop-file-utils 0.10-1                Utilities for .desktop files
ii  gconf2             2.8.1-6               GNOME configuration database syste
ii  gs                 8.01-5                Transitional package
ii  gs-esp [gs]        7.07.1-9              The Ghostscript PostScript interpr
ii  gs-gpl [gs]        8.01-5                The GPL Ghostscript PostScript int
ii  libart-2.0-2       2.3.17-1              Library of functions for 2D graphi
ii  libatk1.0-0        1.8.0-4               The ATK accessibility toolkit
ii  libaudiofile0      0.2.6-6               Open-source version of SGI's audio
ii  libbonobo2-0       2.8.1-2               Bonobo CORBA interfaces library
ii  libbonoboui2-0     2.8.1-2               The Bonobo UI library
ii  libc6              2.3.2.ds1-22sarge3    GNU C Library: Shared libraries an
ii  libesd0            0.2.35-2              Enlightened Sound Daemon - Shared 
ii  libgconf2-4        2.8.1-6               GNOME configuration database syste
ii  libgcrypt11        1.2.0-11.1            LGPL Crypto library - runtime libr
ii  libglib2.0-0       2.6.4-1               The GLib library of C routines
ii  libgnome-keyring0  0.4.2-1               GNOME keyring services library
ii  libgnome2-0        2.8.1-2               The GNOME 2 library - runtime file
ii  libgnomecanvas2-0  2.8.0-1               A powerful object-oriented display
ii  libgnomeui-0       2.8.1-3               The GNOME 2 libraries (User Interf
ii  libgnomevfs2-0     2.8.4-4               The GNOME virtual file-system libr
ii  libgnutls11        1.0.16-13.2           GNU TLS library - runtime library
ii  libgpg-error0      1.0-1                 library for common error values an
ii  libgtk2.0-0        2.6.4-3.1             The GTK+ graphical user interface 
ii  libice6            4.3.0.dfsg.1-14sarge1 Inter-Client Exchange library
ii  libjpeg62          6b-10                 The Independent JPEG Group's JPEG 
ii  liborbit2          1:2.12.2-1            libraries for ORBit2 - a CORBA ORB
ii  libpango1.0-0      1.8.1-1               Layout and rendering of internatio
ii  libpopt0           1.7-5                 lib for parsing cmdline parameters
ii  libsm6             4.3.0.dfsg.1-14sarge1 X Window System Session Management
ii  libtasn1-2         0.2.10-3sarge1        Manage ASN.1 structures (runtime)
ii  libx11-6           4.3.0.dfsg.1-14sarge1 X Window System protocol client li
ii  libxml2            2.6.16-7              GNOME XML library
ii  scrollkeeper       0.3.14-10             A free electronic cataloging syste
ii  xlibs              6.9.0.dfsg.1-5bpo2    X Window System client libraries m
ii  zlib1g             1:1.2.2-4.sarge.2     compression library - runtime

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to