Vulnerabilities > CVE-2017-6384 - Missing Release of Resource after Effective Lifetime vulnerability in Atheme 7.2.7

047910
CVSS 7.8 - HIGH
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
NONE
Integrity impact
NONE
Availability impact
COMPLETE
network
low complexity
atheme
CWE-772
nessus

Summary

Memory leak in the login_user function in saslserv/main.c in saslserv/main.so in Atheme 7.2.7 allows a remote unauthenticated attacker to consume memory and cause a denial of service. This is fixed in 7.2.8.

Vulnerable Configurations

Part Description Count
Application
Atheme
1

Common Attack Pattern Enumeration and Classification (CAPEC)

  • HTTP DoS
    An attacker performs flooding at the HTTP level to bring down only a particular web application rather than anything listening on a TCP/IP connection. This denial of service attack requires substantially fewer packets to be sent which makes DoS harder to detect. This is an equivalent of SYN flood in HTTP. The idea is to keep the HTTP session alive indefinitely and then repeat that hundreds of times. This attack targets resource depletion weaknesses in web server software. The web server will wait to attacker's responses on the initiated HTTP sessions while the connection threads are being exhausted.

Nessus

NASL familySuSE Local Security Checks
NASL idOPENSUSE-2017-456.NASL
descriptionThis update for atheme fixes the following issues : - CVE-2017-6384: Memory leak in the login_user function allowing for DoS (boo#1027614) - Use after free that could potentially be used by an attacker already having the privilege to use SASL impersonation to cause a denial of service. This update also contains a number of upstream bug fixes.
last seen2020-06-05
modified2017-04-12
plugin id99294
published2017-04-12
reporterThis script is Copyright (C) 2017-2020 Tenable Network Security, Inc.
sourcehttps://www.tenable.com/plugins/nessus/99294
titleopenSUSE Security Update : atheme (openSUSE-2017-456)
code
#%NASL_MIN_LEVEL 80502
#
# (C) Tenable Network Security, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from openSUSE Security Update openSUSE-2017-456.
#
# The text description of this plugin is (C) SUSE LLC.
#

include("compat.inc");

if (description)
{
  script_id(99294);
  script_version("3.3");
  script_set_attribute(attribute:"plugin_modification_date", value:"2020/06/04");

  script_cve_id("CVE-2017-6384");

  script_name(english:"openSUSE Security Update : atheme (openSUSE-2017-456)");
  script_summary(english:"Check for the openSUSE-2017-456 patch");

  script_set_attribute(
    attribute:"synopsis", 
    value:"The remote openSUSE host is missing a security update."
  );
  script_set_attribute(
    attribute:"description", 
    value:
"This update for atheme fixes the following issues :

  - CVE-2017-6384: Memory leak in the login_user function
    allowing for DoS (boo#1027614)

  - Use after free that could potentially be used by an
    attacker already having the privilege to use SASL
    impersonation to cause a denial of service.

This update also contains a number of upstream bug fixes."
  );
  script_set_attribute(
    attribute:"see_also",
    value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1027614"
  );
  script_set_attribute(
    attribute:"solution", 
    value:"Update the affected atheme packages."
  );
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:atheme");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:atheme-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:atheme-debugsource");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:atheme-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libathemecore1");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libathemecore1-debuginfo");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:opensuse:42.1");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:opensuse:42.2");

  script_set_attribute(attribute:"patch_publication_date", value:"2017/04/11");
  script_set_attribute(attribute:"plugin_publication_date", value:"2017/04/12");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_copyright(english:"This script is Copyright (C) 2017-2020 Tenable Network Security, Inc.");
  script_family(english:"SuSE Local Security Checks");

  script_dependencies("ssh_get_info.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/SuSE/release", "Host/SuSE/rpm-list", "Host/cpu");

  exit(0);
}


include("audit.inc");
include("global_settings.inc");
include("rpm.inc");

if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
release = get_kb_item("Host/SuSE/release");
if (isnull(release) || release =~ "^(SLED|SLES)") audit(AUDIT_OS_NOT, "openSUSE");
if (release !~ "^(SUSE42\.1|SUSE42\.2)$") audit(AUDIT_OS_RELEASE_NOT, "openSUSE", "42.1 / 42.2", release);
if (!get_kb_item("Host/SuSE/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);

ourarch = get_kb_item("Host/cpu");
if (!ourarch) audit(AUDIT_UNKNOWN_ARCH);
if (ourarch !~ "^(i586|i686|x86_64)$") audit(AUDIT_ARCH_NOT, "i586 / i686 / x86_64", ourarch);

flag = 0;

if ( rpm_check(release:"SUSE42.1", reference:"atheme-7.2.9-8.1") ) flag++;
if ( rpm_check(release:"SUSE42.1", reference:"atheme-debuginfo-7.2.9-8.1") ) flag++;
if ( rpm_check(release:"SUSE42.1", reference:"atheme-debugsource-7.2.9-8.1") ) flag++;
if ( rpm_check(release:"SUSE42.1", reference:"atheme-devel-7.2.9-8.1") ) flag++;
if ( rpm_check(release:"SUSE42.1", reference:"libathemecore1-7.2.9-8.1") ) flag++;
if ( rpm_check(release:"SUSE42.1", reference:"libathemecore1-debuginfo-7.2.9-8.1") ) flag++;
if ( rpm_check(release:"SUSE42.2", reference:"atheme-7.2.9-7.3.1") ) flag++;
if ( rpm_check(release:"SUSE42.2", reference:"atheme-debuginfo-7.2.9-7.3.1") ) flag++;
if ( rpm_check(release:"SUSE42.2", reference:"atheme-debugsource-7.2.9-7.3.1") ) flag++;
if ( rpm_check(release:"SUSE42.2", reference:"atheme-devel-7.2.9-7.3.1") ) flag++;
if ( rpm_check(release:"SUSE42.2", reference:"libathemecore1-7.2.9-7.3.1") ) flag++;
if ( rpm_check(release:"SUSE42.2", reference:"libathemecore1-debuginfo-7.2.9-7.3.1") ) flag++;

if (flag)
{
  if (report_verbosity > 0) security_hole(port:0, extra:rpm_report_get());
  else security_hole(0);
  exit(0);
}
else
{
  tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, "atheme / atheme-debuginfo / atheme-debugsource / atheme-devel / etc");
}