           SPELL=libsafe
         VERSION=2.0-16
          SOURCE=$SPELL-$VERSION.tgz
   SOURCE_MD5SUM=b25f1fb0a76fd9dcae05b75becc4e148
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
   SOURCE_URL[0]=http://www.research.avayalabs.com/project/libsafe/src/$SOURCE
          MD5[0]=0b232885c505ecddbf7c887fa79917af
      LICENSE[0]=LGPL
        WEB_SITE=http://www.research.avayalabs.com/project/libsafe/
       BUILD_API=2
         ENTERED=20020328
         UPDATED=20020328
           SHORT="Libsafe: Protecting Critical Elements of Stacks"
cat << EOF
The exploitation of buffer overflow and format string vulnerabilities
in process stacks constitutes a significant portion of security
attacks in recent years. We present a new method to detect and handle
such attacks. In contrast to previous work, our method does not
require any modification to the operating system and works with
existing binary programs. Our method does not require access to the
source code of defective programs, nor does it require recompilation
or off-line processing of binaries. Furthermore, it can be implemented
on a system-wide basis transparently. Our solution is based on a
middleware software layer that intercepts all function calls made to
library functions that are known to be vulnerable. A substitute
version of the corresponding function implements the original
functionality, but in a manner that ensures that any buffer overflows
are contained within the current stack frame, thus, preventing
attackers from 'smashing' (overwriting) the return address and
hijacking the control flow of a running program. We have implemented
our solution on Linux as a dynamically loadable library called
libsafe. Libsafe has demonstrated its ability to detect and prevent
several known attacks, but its real benefit, we believe, is its
ability to prevent yet unknown attacks. Experiments indicate that the
performance overhead of libsafe is negligible.
EOF

