mirror of
git://slackware.nl/current.git
synced 2025-01-15 15:41:54 +01:00
0807d59d4d
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 *)
129 lines
4.1 KiB
Bash
Executable file
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
|
|
|