mtr/SECURITY

75 lines
2.7 KiB
Plaintext
Raw Normal View History

mtr v0.21 v0.21 - mtr now drops root permissions after it acquires the raw sockets it needs. - mtr should be a bit happier about building under SCO and Solaris. - Fixed the problem with packets arriving after a reset. v0.20 - The build process for mtr now uses automake. - Fixed a build problem for Irix. - Now uses non-blocking DNS code, so mtr can attempt to do reverse lookup on multiple hosts at once. - Fewer packets are sent out each cycle, so mtr doesn't hog quite so much bandwidth. v0.19 - Fixed a type-o in curses.c v0.18 - Fixed the network code to work properly under FreeBSD. - Hopefully this will fix some other operating systems too. - Also, fixed a build problem and the DNS hanging bug. v0.17 - Fixed the configure script to always like with the math library. Added an icon. v0.16 - Added one #include to select.c. Some people were unable to build mtr without this line. v0.15 - Both the build process and the networking code have been cleaned up and reorganized. mtr now builds cleanly with GTK+ 0.99.8. 2002-03-06 Cougar <cougar@random.ee> - If hop doesn't respond, draw its name in red (GTK) or bold (curses) 2002-02-09 Bohdan Vlasyuk <bohdan@vstu.edu.ua> - Added --address option to bind to given IP addess 2001-04-15 Alan Eldridge <alane@geeksrus.net> - Added this file so that automake won't complain. Commented out the test for res_init in configure.in; it does not work for GLIBC2 systems (e.g., RedHat 7+). - Fixed the subordinate CHECK_LIBS on the test for res_mkquery, so that they test for res_mkquery, not res_init. source: ftp://ftp.bitwizard.nl/mtr/mtr-0.21.tar.gz
1998-10-17 00:00:00 +00:00
SECURITY ISSUES RELATED TO MTR
mtr requires extra privileges to send custom packets, and there are
security implications from granting this.
There are several different ways to provide the privileges:
1. Add limited privileges on systems that support this. (Preferred.)
2. Run mtr as the root user.
3. Make mtr a setuid-root binary.
Details:
1. Add limited privileges on systems that support this.
Some operating systems allow binaries to be run with only the subset
of security privileges that are actually needed.
Linux:
On Linux, privileges are known as capabilities. The only additional
capability that mtr needs is cap_net_raw. To give this capability
to the mtr binary, run the following command as root:
# setcap cap_net_raw+ep mtr
2. Run mtr as the root user.
You can limit mtr usage to the root user by not putting a setuid bit
on the mtr binary. In that case, the security implications are
minimal.
3. Make mtr a setuid-root binary.
The mtr binary can be made setuid-root, which is what "make install"
does by default.
When mtr is installed as suid-root, some concern over security is
justified. Since version 0.21, mtr does the following two things
mtr v0.21 v0.21 - mtr now drops root permissions after it acquires the raw sockets it needs. - mtr should be a bit happier about building under SCO and Solaris. - Fixed the problem with packets arriving after a reset. v0.20 - The build process for mtr now uses automake. - Fixed a build problem for Irix. - Now uses non-blocking DNS code, so mtr can attempt to do reverse lookup on multiple hosts at once. - Fewer packets are sent out each cycle, so mtr doesn't hog quite so much bandwidth. v0.19 - Fixed a type-o in curses.c v0.18 - Fixed the network code to work properly under FreeBSD. - Hopefully this will fix some other operating systems too. - Also, fixed a build problem and the DNS hanging bug. v0.17 - Fixed the configure script to always like with the math library. Added an icon. v0.16 - Added one #include to select.c. Some people were unable to build mtr without this line. v0.15 - Both the build process and the networking code have been cleaned up and reorganized. mtr now builds cleanly with GTK+ 0.99.8. 2002-03-06 Cougar <cougar@random.ee> - If hop doesn't respond, draw its name in red (GTK) or bold (curses) 2002-02-09 Bohdan Vlasyuk <bohdan@vstu.edu.ua> - Added --address option to bind to given IP addess 2001-04-15 Alan Eldridge <alane@geeksrus.net> - Added this file so that automake won't complain. Commented out the test for res_init in configure.in; it does not work for GLIBC2 systems (e.g., RedHat 7+). - Fixed the subordinate CHECK_LIBS on the test for res_mkquery, so that they test for res_mkquery, not res_init. source: ftp://ftp.bitwizard.nl/mtr/mtr-0.21.tar.gz
1998-10-17 00:00:00 +00:00
after it is launched:
* mtr requests a pair of raw sockets from the kernel.
* mtr drops root privileges by setting the effective uid to match
uid or the user calling mtr.
mtr v0.21 v0.21 - mtr now drops root permissions after it acquires the raw sockets it needs. - mtr should be a bit happier about building under SCO and Solaris. - Fixed the problem with packets arriving after a reset. v0.20 - The build process for mtr now uses automake. - Fixed a build problem for Irix. - Now uses non-blocking DNS code, so mtr can attempt to do reverse lookup on multiple hosts at once. - Fewer packets are sent out each cycle, so mtr doesn't hog quite so much bandwidth. v0.19 - Fixed a type-o in curses.c v0.18 - Fixed the network code to work properly under FreeBSD. - Hopefully this will fix some other operating systems too. - Also, fixed a build problem and the DNS hanging bug. v0.17 - Fixed the configure script to always like with the math library. Added an icon. v0.16 - Added one #include to select.c. Some people were unable to build mtr without this line. v0.15 - Both the build process and the networking code have been cleaned up and reorganized. mtr now builds cleanly with GTK+ 0.99.8. 2002-03-06 Cougar <cougar@random.ee> - If hop doesn't respond, draw its name in red (GTK) or bold (curses) 2002-02-09 Bohdan Vlasyuk <bohdan@vstu.edu.ua> - Added --address option to bind to given IP addess 2001-04-15 Alan Eldridge <alane@geeksrus.net> - Added this file so that automake won't complain. Commented out the test for res_init in configure.in; it does not work for GLIBC2 systems (e.g., RedHat 7+). - Fixed the subordinate CHECK_LIBS on the test for res_mkquery, so that they test for res_mkquery, not res_init. source: ftp://ftp.bitwizard.nl/mtr/mtr-0.21.tar.gz
1998-10-17 00:00:00 +00:00
See main() in mtr.c and net_preopen() in net.c for the details of this
process. Note that no code from GTK+ or curses is executed before
dropping root privileges.
mtr v0.21 v0.21 - mtr now drops root permissions after it acquires the raw sockets it needs. - mtr should be a bit happier about building under SCO and Solaris. - Fixed the problem with packets arriving after a reset. v0.20 - The build process for mtr now uses automake. - Fixed a build problem for Irix. - Now uses non-blocking DNS code, so mtr can attempt to do reverse lookup on multiple hosts at once. - Fewer packets are sent out each cycle, so mtr doesn't hog quite so much bandwidth. v0.19 - Fixed a type-o in curses.c v0.18 - Fixed the network code to work properly under FreeBSD. - Hopefully this will fix some other operating systems too. - Also, fixed a build problem and the DNS hanging bug. v0.17 - Fixed the configure script to always like with the math library. Added an icon. v0.16 - Added one #include to select.c. Some people were unable to build mtr without this line. v0.15 - Both the build process and the networking code have been cleaned up and reorganized. mtr now builds cleanly with GTK+ 0.99.8. 2002-03-06 Cougar <cougar@random.ee> - If hop doesn't respond, draw its name in red (GTK) or bold (curses) 2002-02-09 Bohdan Vlasyuk <bohdan@vstu.edu.ua> - Added --address option to bind to given IP addess 2001-04-15 Alan Eldridge <alane@geeksrus.net> - Added this file so that automake won't complain. Commented out the test for res_init in configure.in; it does not work for GLIBC2 systems (e.g., RedHat 7+). - Fixed the subordinate CHECK_LIBS on the test for res_mkquery, so that they test for res_mkquery, not res_init. source: ftp://ftp.bitwizard.nl/mtr/mtr-0.21.tar.gz
1998-10-17 00:00:00 +00:00
This should severely limit the possibilities of using mtr to breach
2016-01-04 11:42:23 +00:00
system security. This means the worst case scenario is as follows:
mtr v0.21 v0.21 - mtr now drops root permissions after it acquires the raw sockets it needs. - mtr should be a bit happier about building under SCO and Solaris. - Fixed the problem with packets arriving after a reset. v0.20 - The build process for mtr now uses automake. - Fixed a build problem for Irix. - Now uses non-blocking DNS code, so mtr can attempt to do reverse lookup on multiple hosts at once. - Fewer packets are sent out each cycle, so mtr doesn't hog quite so much bandwidth. v0.19 - Fixed a type-o in curses.c v0.18 - Fixed the network code to work properly under FreeBSD. - Hopefully this will fix some other operating systems too. - Also, fixed a build problem and the DNS hanging bug. v0.17 - Fixed the configure script to always like with the math library. Added an icon. v0.16 - Added one #include to select.c. Some people were unable to build mtr without this line. v0.15 - Both the build process and the networking code have been cleaned up and reorganized. mtr now builds cleanly with GTK+ 0.99.8. 2002-03-06 Cougar <cougar@random.ee> - If hop doesn't respond, draw its name in red (GTK) or bold (curses) 2002-02-09 Bohdan Vlasyuk <bohdan@vstu.edu.ua> - Added --address option to bind to given IP addess 2001-04-15 Alan Eldridge <alane@geeksrus.net> - Added this file so that automake won't complain. Commented out the test for res_init in configure.in; it does not work for GLIBC2 systems (e.g., RedHat 7+). - Fixed the subordinate CHECK_LIBS on the test for res_mkquery, so that they test for res_mkquery, not res_init. source: ftp://ftp.bitwizard.nl/mtr/mtr-0.21.tar.gz
1998-10-17 00:00:00 +00:00
Due to some oversight in the mtr code, a malicious user is able to
overrun one of mtr's internal buffers with binary code that is
eventually executed. The malicious user is still not able to read
from or write to any system files which they wouldn't normally have
2016-01-04 11:42:23 +00:00
permission to read or write to, respectively. The only privilege
gained is access to the raw socket descriptors, which would allow
the malicious user to listen to all ICMP packets arriving at the
system, and to send forged packets with arbitrary contents.
mtr v0.21 v0.21 - mtr now drops root permissions after it acquires the raw sockets it needs. - mtr should be a bit happier about building under SCO and Solaris. - Fixed the problem with packets arriving after a reset. v0.20 - The build process for mtr now uses automake. - Fixed a build problem for Irix. - Now uses non-blocking DNS code, so mtr can attempt to do reverse lookup on multiple hosts at once. - Fewer packets are sent out each cycle, so mtr doesn't hog quite so much bandwidth. v0.19 - Fixed a type-o in curses.c v0.18 - Fixed the network code to work properly under FreeBSD. - Hopefully this will fix some other operating systems too. - Also, fixed a build problem and the DNS hanging bug. v0.17 - Fixed the configure script to always like with the math library. Added an icon. v0.16 - Added one #include to select.c. Some people were unable to build mtr without this line. v0.15 - Both the build process and the networking code have been cleaned up and reorganized. mtr now builds cleanly with GTK+ 0.99.8. 2002-03-06 Cougar <cougar@random.ee> - If hop doesn't respond, draw its name in red (GTK) or bold (curses) 2002-02-09 Bohdan Vlasyuk <bohdan@vstu.edu.ua> - Added --address option to bind to given IP addess 2001-04-15 Alan Eldridge <alane@geeksrus.net> - Added this file so that automake won't complain. Commented out the test for res_init in configure.in; it does not work for GLIBC2 systems (e.g., RedHat 7+). - Fixed the subordinate CHECK_LIBS on the test for res_mkquery, so that they test for res_mkquery, not res_init. source: ftp://ftp.bitwizard.nl/mtr/mtr-0.21.tar.gz
1998-10-17 00:00:00 +00:00
The mtr-code does its best to prevent calling of external library
code before dropping privileges. It seems that C++ library code has
the ability to issue a "please execute me before calling main" to the
loader/linker. That would mean that we're still vulnerable to
errors in that code. This is why I would prefer to drop the backends,
have mtr-core always run in "raw" mode, and have the backends interpret
the output from the mtr-core. Maybe a nice project for a college-level
student.
mtr v0.21 v0.21 - mtr now drops root permissions after it acquires the raw sockets it needs. - mtr should be a bit happier about building under SCO and Solaris. - Fixed the problem with packets arriving after a reset. v0.20 - The build process for mtr now uses automake. - Fixed a build problem for Irix. - Now uses non-blocking DNS code, so mtr can attempt to do reverse lookup on multiple hosts at once. - Fewer packets are sent out each cycle, so mtr doesn't hog quite so much bandwidth. v0.19 - Fixed a type-o in curses.c v0.18 - Fixed the network code to work properly under FreeBSD. - Hopefully this will fix some other operating systems too. - Also, fixed a build problem and the DNS hanging bug. v0.17 - Fixed the configure script to always like with the math library. Added an icon. v0.16 - Added one #include to select.c. Some people were unable to build mtr without this line. v0.15 - Both the build process and the networking code have been cleaned up and reorganized. mtr now builds cleanly with GTK+ 0.99.8. 2002-03-06 Cougar <cougar@random.ee> - If hop doesn't respond, draw its name in red (GTK) or bold (curses) 2002-02-09 Bohdan Vlasyuk <bohdan@vstu.edu.ua> - Added --address option to bind to given IP addess 2001-04-15 Alan Eldridge <alane@geeksrus.net> - Added this file so that automake won't complain. Commented out the test for res_init in configure.in; it does not work for GLIBC2 systems (e.g., RedHat 7+). - Fixed the subordinate CHECK_LIBS on the test for res_mkquery, so that they test for res_mkquery, not res_init. source: ftp://ftp.bitwizard.nl/mtr/mtr-0.21.tar.gz
1998-10-17 00:00:00 +00:00
If you have further questions or comments about security issues,
please see the README file for details on how to submit them.