6a7decee50
fail2ban is a daemon to ban hosts that cause multiple authentication errors. In versions 0.9.7 and prior, 0.10.0 through 0.10.6, and 0.11.0 through 0.11.2, there is a vulnerability that leads to possible remote code execution in the mailing action mail-whois. Command `mail` from mailutils package used in mail actions like `mail-whois` can execute command if unescaped sequences (`\n~`) are available in "foreign" input (for instance in whois output). To exploit the vulnerability, an attacker would need to insert malicious characters into the response sent by the whois server, either via a MITM attack or by taking over a whois server. The issue is patched in versions 0.10.7 and 0.11.3. As a workaround, one may avoid the usage of action `mail-whois` or patch the vulnerability manually. Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
55 lines
2.0 KiB
Makefile
55 lines
2.0 KiB
Makefile
################################################################################
|
|
#
|
|
# fail2ban
|
|
#
|
|
################################################################################
|
|
|
|
FAIL2BAN_VERSION = 0.11.2
|
|
FAIL2BAN_SITE = $(call github,fail2ban,fail2ban,$(FAIL2BAN_VERSION))
|
|
FAIL2BAN_LICENSE = GPL-2.0+
|
|
FAIL2BAN_LICENSE_FILES = COPYING
|
|
FAIL2BAN_CPE_ID_VENDOR = fail2ban
|
|
FAIL2BAN_SELINUX_MODULES = fail2ban
|
|
FAIL2BAN_SETUP_TYPE = distutils
|
|
|
|
# 0001-fixed-possible-RCE-vulnerability-unset-escape-variable.patch
|
|
FAIL2BAN_IGNORE_CVES += CVE-2021-32749
|
|
|
|
ifeq ($(BR2_PACKAGE_PYTHON3),y)
|
|
define FAIL2BAN_PYTHON_2TO3
|
|
$(HOST_DIR)/bin/2to3 --write --nobackups --no-diffs $(@D)/bin/* $(@D)/fail2ban
|
|
endef
|
|
FAIL2BAN_DEPENDENCIES += host-python3
|
|
# We can't use _POST_PATCH_HOOKS because dependencies are not guaranteed
|
|
# to build and install before _POST_PATCH_HOOKS run.
|
|
FAIL2BAN_PRE_CONFIGURE_HOOKS += FAIL2BAN_PYTHON_2TO3
|
|
endif
|
|
|
|
define FAIL2BAN_FIX_DEFAULT_CONFIG
|
|
$(SED) '/^socket/c\socket = /run/fail2ban.sock' $(TARGET_DIR)/etc/fail2ban/fail2ban.conf
|
|
$(SED) '/^pidfile/c\pidfile = /run/fail2ban.pid' $(TARGET_DIR)/etc/fail2ban/fail2ban.conf
|
|
$(SED) '/^dbfile/c\dbfile = None' $(TARGET_DIR)/etc/fail2ban/fail2ban.conf
|
|
endef
|
|
FAIL2BAN_POST_INSTALL_TARGET_HOOKS += FAIL2BAN_FIX_DEFAULT_CONFIG
|
|
|
|
# fail2ban-python points to host python
|
|
define FAIL2BAN_FIX_FAIL2BAN_PYTHON_SYMLINK
|
|
ln -snf $(if $(BR2_PACKAGE_PYTHON),python,python3) \
|
|
$(TARGET_DIR)/usr/bin/fail2ban-python
|
|
endef
|
|
FAIL2BAN_POST_INSTALL_TARGET_HOOKS += FAIL2BAN_FIX_FAIL2BAN_PYTHON_SYMLINK
|
|
|
|
define FAIL2BAN_INSTALL_INIT_SYSV
|
|
$(INSTALL) -D -m 755 package/fail2ban/S60fail2ban \
|
|
$(TARGET_DIR)/etc/init.d/S60fail2ban
|
|
endef
|
|
|
|
define FAIL2BAN_INSTALL_INIT_SYSTEMD
|
|
$(INSTALL) -D -m 0644 $(@D)/files/fail2ban.service.in \
|
|
$(TARGET_DIR)/usr/lib/systemd/system/fail2ban.service
|
|
$(SED) 's,@BINDIR@,/usr/bin,g' $(TARGET_DIR)/usr/lib/systemd/system/fail2ban.service
|
|
$(SED) '/^PIDFile/c\PIDFile=/run/fail2ban.pid' $(TARGET_DIR)/usr/lib/systemd/system/fail2ban.service
|
|
endef
|
|
|
|
$(eval $(python-package))
|