Multiple Vendor "dump" Buffer Overflow Vulnerability
BID:1020
Info
Multiple Vendor "dump" Buffer Overflow Vulnerability
| Bugtraq ID: | 1020 |
| Class: | Boundary Condition Error |
| CVE: | |
| Remote: | No |
| Local: | Yes |
| Published: | Feb 28 2000 12:00AM |
| Updated: | Feb 28 2000 12:00AM |
| Credit: | First posted to BugTraq by KimYongJun <[email protected]> on February 28, 2000. |
| Vulnerable: |
Turbolinux Turbolinux 6.0.2 Turbolinux Turbolinux 4.4 Turbolinux Turbolinux 4.2 Redhat Linux 6.2 i386 Redhat Linux 6.1 i386 Redhat Linux 6.0 Redhat Linux 5.2 i386 Redhat Linux 5.1 Mandriva Linux Mandrake 7.0 Mandriva Linux Mandrake 6.1 FreeBSD FreeBSD 3.4 |
| Not Vulnerable: | |
Discussion
Multiple Vendor "dump" Buffer Overflow Vulnerability
RedHat Linux (possibly other linux distributions as well) and FreeBSD ship with a file backup utility called 'dump'. Dump is installed in /sbin and is setuid and setgid root on RedHat (and derivative) linux machines and setgid tty on FreeBSD installs. When passed an oversized argument to the "-f a" parameters, dump will crash due to the stack being overrun by the excessive data. If this argument is crafted properly, it may be possible to replace the EIP (instruction pointer or return address) on the stack and execute arbitrary code with the permissions of the process (gid of root). Dump drops setuid priviliges (in Linux, at least), but does not drop effective gid. As a result, this vulnerability could be exploited to gain the effective gid priviliges, which can lead to further system compromise.
Under linux, it is thought that this is not exploitable. Under FreeBSD it may be exploitable and result in an attacker gaining egid tty priviliges.
RedHat Linux (possibly other linux distributions as well) and FreeBSD ship with a file backup utility called 'dump'. Dump is installed in /sbin and is setuid and setgid root on RedHat (and derivative) linux machines and setgid tty on FreeBSD installs. When passed an oversized argument to the "-f a" parameters, dump will crash due to the stack being overrun by the excessive data. If this argument is crafted properly, it may be possible to replace the EIP (instruction pointer or return address) on the stack and execute arbitrary code with the permissions of the process (gid of root). Dump drops setuid priviliges (in Linux, at least), but does not drop effective gid. As a result, this vulnerability could be exploited to gain the effective gid priviliges, which can lead to further system compromise.
Under linux, it is thought that this is not exploitable. Under FreeBSD it may be exploitable and result in an attacker gaining egid tty priviliges.
Exploit / POC
Multiple Vendor "dump" Buffer Overflow Vulnerability
Currently the SecurityFocus staff are not aware of any exploits for this issue. If you feel we are in error or are aware of more recent information, please mail us at: [email protected].
Currently the SecurityFocus staff are not aware of any exploits for this issue. If you feel we are in error or are aware of more recent information, please mail us at: [email protected].
Solution / Fix
Multiple Vendor "dump" Buffer Overflow Vulnerability
Solution:
A work-around is to remove the setuid and setgid permissions from the file.
KimYongJun <[email protected]> included the following patch in his post to BugTraq on February 28, 2000:
[root@loveyou SOURCES]# diff -ru dump-0.4b13/dump/main_orig.c dump-0.4b13/dump/main.c
--- dump-0.4b13/dump/main_orig.c Mon Feb 28 14:40:01 2000
+++ dump-0.4b13/dump/main.c Mon Feb 28 14:40:57 2000
@@ -273,6 +273,9 @@
exit(X_STARTUP);
}
disk = *argv++;
+ if ( strlen(disk) > 255 )
+ exit(X_STARTUP);
+
argc--;
if (argc >= 1) {
(void)fprintf(stderr, "Unknown arguments to dump:");
Fixes are available for TurboLInux at:
ftp://ftp.turbolinux.com/pub/updates/6.0/security/dump-0.4b16-1.i386.rpm
ftp://ftp.turbolinux.com/pub/updates/6.0/SRPMS/dump-0.4b16-1.src.rpm
Fixes are available for Connectiva Linux at:
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.0/i386/dump-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.0/i386/rmt-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.0es/i386/dump-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.0es/i386/rmt-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.1/i386/dump-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.1/i386/rmt-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.2/i386/dump-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.2/i386/rmt-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/5.0/i386/dump-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/5.0/i386/rmt-0.4b18-1cl.i386.rpm
Solution:
A work-around is to remove the setuid and setgid permissions from the file.
KimYongJun <[email protected]> included the following patch in his post to BugTraq on February 28, 2000:
[root@loveyou SOURCES]# diff -ru dump-0.4b13/dump/main_orig.c dump-0.4b13/dump/main.c
--- dump-0.4b13/dump/main_orig.c Mon Feb 28 14:40:01 2000
+++ dump-0.4b13/dump/main.c Mon Feb 28 14:40:57 2000
@@ -273,6 +273,9 @@
exit(X_STARTUP);
}
disk = *argv++;
+ if ( strlen(disk) > 255 )
+ exit(X_STARTUP);
+
argc--;
if (argc >= 1) {
(void)fprintf(stderr, "Unknown arguments to dump:");
Fixes are available for TurboLInux at:
ftp://ftp.turbolinux.com/pub/updates/6.0/security/dump-0.4b16-1.i386.rpm
ftp://ftp.turbolinux.com/pub/updates/6.0/SRPMS/dump-0.4b16-1.src.rpm
Fixes are available for Connectiva Linux at:
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.0/i386/dump-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.0/i386/rmt-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.0es/i386/dump-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.0es/i386/rmt-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.1/i386/dump-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.1/i386/rmt-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.2/i386/dump-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/4.2/i386/rmt-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/5.0/i386/dump-0.4b18-1cl.i386.rpm
ftp://ftp.conectiva.com.br/pub/conectiva/atualizacoes/5.0/i386/rmt-0.4b18-1cl.i386.rpm
References
Multiple Vendor "dump" Buffer Overflow Vulnerability
References:
References:
- Updates, Fixes, and Errata Page (RedHat)