1
0
Fork 0
mirror of git://slackware.nl/current.git synced 2025-01-15 15:41:54 +01:00
slackware-current/source/n/epic5/epic5.SlackBuild
Patrick J Volkerding 0807d59d4d Fri Oct 8 03:23:28 UTC 2021
n/httpd-2.4.51-x86_64-1.txz:  Upgraded.
  SECURITY: CVE-2021-42013: Path Traversal and Remote Code
  Execution in Apache HTTP Server 2.4.49 and 2.4.50 (incomplete
  fix of CVE-2021-41773) (cve.mitre.org)
  It was found that the fix for CVE-2021-41773 in Apache HTTP
  Server 2.4.50 was insufficient.  An attacker could use a path
  traversal attack to map URLs to files outside the directories
  configured by Alias-like directives.
  If files outside of these directories are not protected by the
  usual default configuration "require all denied", these requests
  can succeed. If CGI scripts are also enabled for these aliased
  pathes, this could allow for remote code execution.
  This issue only affects Apache 2.4.49 and Apache 2.4.50 and not
  earlier versions.
  Credits: Reported by Juan Escobar from Dreamlab Technologies,
  Fernando MuA+-oz from NULL Life CTF Team, and Shungo Kumasaka
  For more information, see:
    https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-42013
  (* Security fix *)
2021-10-08 08:59:45 +02:00

129 lines
4.1 KiB
Bash
Executable file

#!/bin/bash
# Copyright 2008, 2009, 2010, 2013, 2018, 2019, 2020 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=epic5
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
EPICVER=5
HELPFILE=current
BUILD=${BUILD:-1}
## Default to no Ruby support, since it seems that ruby-2.7.0 is not compatible.
## Patches to fix this are welcome, otherwise we'll keep an eye on upstream.
## NOTE: Commenting this out since ruby-2.7.1 is working.
#RUBY_OPTION=${RUBY_OPTION:---without-ruby}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "epic${EPICVER}-$VERSION-$ARCH-$BUILD.txz"
exit 0
fi
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
TMP=${TMP:-/tmp}
PKG=$TMP/package-epic${EPICVER}
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf epic${EPICVER}-$VERSION
tar xvf $CWD/epic${EPICVER}-$VERSION.tar.xz || exit 1
cd epic${EPICVER}-$VERSION || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \+ -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--with-tcl=/usr/lib${LIBDIRSUFFIX}/tclConfig.sh \
--mandir=/usr/man \
$RUBY_OPTION \
--build=$ARCH-slackware-linux || exit 1
make $NUMJOBS || make || exit 1
make install IP=$PKG || exit 1
( cd $PKG/usr/share/epic${EPICVER}
tar xvf $CWD/epic-help-${HELPFILE}.tar.?z* || exit 1
chown -R root:root .
) || exit 1
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
mkdir -p $PKG/usr/doc/epic${EPICVER}-$VERSION
cp -a \
BUG_FORM COPYRIGHT INSTALL KNOWNBUGS README* UPDATES VOTES doc \
$PKG/usr/doc/epic${EPICVER}-$VERSION
rm -f $PKG/usr/doc/epic${EPICVER}-$VERSION/doc/*.1
# This is way too much. See the source if you care.
if [ -r UPDATES ]; then
DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
cat UPDATES | head -n 1000 > $DOCSDIR/UPDATES
touch -r UPDATES $DOCSDIR/UPDATES
fi
gzip -9 $PKG/usr/man/man?/*.?
# These extra directories are fixed in this release, but it
# doesn't hurt to leave this code just in case...
( cd $PKG && find . -name CVS -type d -exec rm -rf {} \+ )
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $TMP/epic${EPICVER}-$VERSION-$ARCH-$BUILD.txz