           SPELL=libsafe
         VERSION=2.0-16
          SOURCE=$SPELL-$VERSION.tgz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
   SOURCE_URL[0]=http://www.research.avayalabs.com/project/libsafe/src/$SOURCE
     SOURCE_HASH=sha512:1741f6dcdc0d6b3fd9388cced97acce5dadb5ea81ec02b3c57059e7d42e8a0bde5326051f1e725bbccaa1f158cfb052776c2f11630cc8ce72db433fb734d769e
      LICENSE[0]=LGPL
        WEB_SITE=http://www.research.avayalabs.com/project/libsafe/
         ENTERED=20020328
        KEYWORDS="libs"
           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

