Lucene search

K
nessusThis script is Copyright (C) 2013-2021 and is owned by Tenable, Inc. or an Affiliate thereof.SL_20130221_RDMA_ON_SL6_X.NASL
HistoryMar 05, 2013 - 12:00 a.m.

Scientific Linux Security Update : rdma on SL6.x i386/x86_64 (20130221)

2013-03-0500:00:00
This script is Copyright (C) 2013-2021 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
10

CVSS2

5

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

PARTIAL

AV:N/AC:L/Au:N/C:N/I:N/A:P

EPSS

0.038

Percentile

91.9%

A denial of service flaw was found in the way ibacm managed reference counts for multicast connections. An attacker could send specially crafted multicast packets that would cause the ibacm daemon to crash.
(CVE-2012-4517)

It was found that the ibacm daemon created some files with world-writable permissions. A local attacker could use this flaw to overwrite the contents of the ibacm.log or ibacm.port file, allowing them to mask certain actions from the log or cause ibacm to run on a non-default port. (CVE-2012-4518)

The InfiniBand/iWARP/RDMA stack components have been upgraded to more recent upstream versions.

This update also fixes the following bugs :

  • Previously, the ‘ibnodes -h’ command did not show a proper usage message. With this update the problem is fixed and ‘ibnodes -h’ now shows the correct usage message.

  • Previously, the ibv_devinfo utility erroneously showed iWARP cxgb3 hardware’s physical state as invalid even when the device was working. For iWARP hardware, the phys_state field has no meaning. This update patches the utility to not print out anything for this field when the hardware is iWARP hardware.

  • Prior to the release of Scientific Linux 6.3, the kernel created the InfiniBand device files in the wrong place and a udev rules file was used to force the devices to be created in the proper place. With the update to 6.3, the kernel was fixed to create the InfiniBand device files in the proper place, and so the udev rules file was removed as no longer being necessary. However, a bug in the kernel device creation meant that, although the devices were now being created in the right place, they had incorrect permissions. Consequently, when users attempted to run an RDMA application as a non-root user, the application failed to get the necessary permissions to use the RDMA device and the application terminated.
    This update puts a new udev rules file in place. It no longer attempts to create the InfiniBand devices since they already exist, but it does correct the device permissions on the files.

  • Previously, using the ‘perfquery -C’ command with a host name caused the perfquery utility to become unresponsive. The list of controllers to process was never cleared and the process looped infinitely on a single controller. A patch has been applied to make sure that in the case where the user passes in the -C option, the controller list is cleared out once that controller has been processed. As a result, perfquery now works as expected in the scenario described.

  • The OpenSM init script did not handle the case where there were no configuration files under ‘/etc/rdma/opensm.conf.*’. With this update, the script as been patched and the InfiniBand Subnet Manager, OpenSM, now starts as expected in the scenario described.

This update also adds the following enhancement :

  • This update provides an updated mlx4_ib Mellanox driver which includes Single Root I/O Virtualization (SR-IOV) support.
#%NASL_MIN_LEVEL 70300
#
# (C) Tenable Network Security, Inc.
#
# The descriptive text is (C) Scientific Linux.
#

include('deprecated_nasl_level.inc');
include('compat.inc');

if (description)
{
  script_id(65014);
  script_version("1.8");
  script_set_attribute(attribute:"plugin_modification_date", value:"2021/01/14");

  script_cve_id("CVE-2012-4517", "CVE-2012-4518");

  script_name(english:"Scientific Linux Security Update : rdma on SL6.x i386/x86_64 (20130221)");
  script_summary(english:"Checks rpm output for the updated packages");

  script_set_attribute(
    attribute:"synopsis", 
    value:
"The remote Scientific Linux host is missing one or more security
updates."
  );
  script_set_attribute(
    attribute:"description", 
    value:
"A denial of service flaw was found in the way ibacm managed reference
counts for multicast connections. An attacker could send specially
crafted multicast packets that would cause the ibacm daemon to crash.
(CVE-2012-4517)

It was found that the ibacm daemon created some files with
world-writable permissions. A local attacker could use this flaw to
overwrite the contents of the ibacm.log or ibacm.port file, allowing
them to mask certain actions from the log or cause ibacm to run on a
non-default port. (CVE-2012-4518)

The InfiniBand/iWARP/RDMA stack components have been upgraded to more
recent upstream versions.

This update also fixes the following bugs :

  - Previously, the 'ibnodes -h' command did not show a
    proper usage message. With this update the problem is
    fixed and 'ibnodes -h' now shows the correct usage
    message.

  - Previously, the ibv_devinfo utility erroneously showed
    iWARP cxgb3 hardware's physical state as invalid even
    when the device was working. For iWARP hardware, the
    phys_state field has no meaning. This update patches the
    utility to not print out anything for this field when
    the hardware is iWARP hardware.

  - Prior to the release of Scientific Linux 6.3, the kernel
    created the InfiniBand device files in the wrong place
    and a udev rules file was used to force the devices to
    be created in the proper place. With the update to 6.3,
    the kernel was fixed to create the InfiniBand device
    files in the proper place, and so the udev rules file
    was removed as no longer being necessary. However, a bug
    in the kernel device creation meant that, although the
    devices were now being created in the right place, they
    had incorrect permissions. Consequently, when users
    attempted to run an RDMA application as a non-root user,
    the application failed to get the necessary permissions
    to use the RDMA device and the application terminated.
    This update puts a new udev rules file in place. It no
    longer attempts to create the InfiniBand devices since
    they already exist, but it does correct the device
    permissions on the files.

  - Previously, using the 'perfquery -C' command with a host
    name caused the perfquery utility to become
    unresponsive. The list of controllers to process was
    never cleared and the process looped infinitely on a
    single controller. A patch has been applied to make sure
    that in the case where the user passes in the -C option,
    the controller list is cleared out once that controller
    has been processed. As a result, perfquery now works as
    expected in the scenario described.

  - The OpenSM init script did not handle the case where
    there were no configuration files under
    '/etc/rdma/opensm.conf.*'. With this update, the script
    as been patched and the InfiniBand Subnet Manager,
    OpenSM, now starts as expected in the scenario
    described.

This update also adds the following enhancement :

  - This update provides an updated mlx4_ib Mellanox driver
    which includes Single Root I/O Virtualization (SR-IOV)
    support."
  );
  # https://listserv.fnal.gov/scripts/wa.exe?A2=ind1303&L=scientific-linux-errata&T=0&P=1178
  script_set_attribute(
    attribute:"see_also",
    value:"http://www.nessus.org/u?5711aa05"
  );
  script_set_attribute(attribute:"solution", value:"Update the affected packages.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:P");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:ibacm");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:ibacm-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:ibacm-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:ibsim");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:ibsim-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:ibutils");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:ibutils-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:ibutils-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:ibutils-libs");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:infiniband-diags");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:infiniband-diags-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:infiniband-diags-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:infiniband-diags-devel-static");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:infinipath-psm");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:infinipath-psm-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:infinipath-psm-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibmad");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibmad-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibmad-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibmad-static");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibumad");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibumad-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibumad-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibumad-static");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibverbs");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibverbs-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibverbs-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibverbs-devel-static");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libibverbs-utils");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libmlx4");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libmlx4-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:libmlx4-static");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:librdmacm");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:librdmacm-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:librdmacm-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:librdmacm-static");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:librdmacm-utils");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:opensm");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:opensm-debuginfo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:opensm-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:opensm-libs");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:opensm-static");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fermilab:scientific_linux:rdma");
  script_set_attribute(attribute:"cpe", value:"x-cpe:/o:fermilab:scientific_linux");

  script_set_attribute(attribute:"vuln_publication_date", value:"2012/10/22");
  script_set_attribute(attribute:"patch_publication_date", value:"2013/02/21");
  script_set_attribute(attribute:"plugin_publication_date", value:"2013/03/05");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_copyright(english:"This script is Copyright (C) 2013-2021 and is owned by Tenable, Inc. or an Affiliate thereof.");
  script_family(english:"Scientific Linux Local Security Checks");

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

  exit(0);
}


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

if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
release = get_kb_item("Host/RedHat/release");
if (isnull(release) || "Scientific Linux " >!< release) audit(AUDIT_HOST_NOT, "running Scientific Linux");
os_ver = pregmatch(pattern: "Scientific Linux.*release ([0-9]+(\.[0-9]+)?)", string:release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Scientific Linux");
os_ver = os_ver[1];
if (! preg(pattern:"^6([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, "Scientific Linux 6.x", "Scientific Linux " + os_ver);
if (!get_kb_item("Host/RedHat/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);

cpu = get_kb_item("Host/cpu");
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if (cpu >!< "x86_64" && cpu !~ "^i[3-6]86$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "Scientific Linux", cpu);


flag = 0;
if (rpm_check(release:"SL6", reference:"ibacm-1.0.8-0.git7a3adb7.el6")) flag++;
if (rpm_check(release:"SL6", reference:"ibacm-debuginfo-1.0.8-0.git7a3adb7.el6")) flag++;
if (rpm_check(release:"SL6", reference:"ibacm-devel-1.0.8-0.git7a3adb7.el6")) flag++;
if (rpm_check(release:"SL6", reference:"ibsim-0.5-7.el6")) flag++;
if (rpm_check(release:"SL6", reference:"ibsim-debuginfo-0.5-7.el6")) flag++;
if (rpm_check(release:"SL6", reference:"ibutils-1.5.7-7.el6")) flag++;
if (rpm_check(release:"SL6", reference:"ibutils-debuginfo-1.5.7-7.el6")) flag++;
if (rpm_check(release:"SL6", reference:"ibutils-devel-1.5.7-7.el6")) flag++;
if (rpm_check(release:"SL6", reference:"ibutils-libs-1.5.7-7.el6")) flag++;
if (rpm_check(release:"SL6", reference:"infiniband-diags-1.5.12-5.el6")) flag++;
if (rpm_check(release:"SL6", reference:"infiniband-diags-debuginfo-1.5.12-5.el6")) flag++;
if (rpm_check(release:"SL6", reference:"infiniband-diags-devel-1.5.12-5.el6")) flag++;
if (rpm_check(release:"SL6", reference:"infiniband-diags-devel-static-1.5.12-5.el6")) flag++;
if (rpm_check(release:"SL6", cpu:"x86_64", reference:"infinipath-psm-3.0.1-115.1015_open.1.el6")) flag++;
if (rpm_check(release:"SL6", cpu:"x86_64", reference:"infinipath-psm-debuginfo-3.0.1-115.1015_open.1.el6")) flag++;
if (rpm_check(release:"SL6", cpu:"x86_64", reference:"infinipath-psm-devel-3.0.1-115.1015_open.1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibmad-1.3.9-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibmad-debuginfo-1.3.9-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibmad-devel-1.3.9-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibmad-static-1.3.9-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibumad-1.3.8-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibumad-debuginfo-1.3.8-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibumad-devel-1.3.8-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibumad-static-1.3.8-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibverbs-1.1.6-5.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibverbs-debuginfo-1.1.6-5.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibverbs-devel-1.1.6-5.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibverbs-devel-static-1.1.6-5.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libibverbs-utils-1.1.6-5.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libmlx4-1.0.4-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libmlx4-debuginfo-1.0.4-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"libmlx4-static-1.0.4-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"librdmacm-1.0.17-0.git4b5c1aa.el6")) flag++;
if (rpm_check(release:"SL6", reference:"librdmacm-debuginfo-1.0.17-0.git4b5c1aa.el6")) flag++;
if (rpm_check(release:"SL6", reference:"librdmacm-devel-1.0.17-0.git4b5c1aa.el6")) flag++;
if (rpm_check(release:"SL6", reference:"librdmacm-static-1.0.17-0.git4b5c1aa.el6")) flag++;
if (rpm_check(release:"SL6", reference:"librdmacm-utils-1.0.17-0.git4b5c1aa.el6")) flag++;
if (rpm_check(release:"SL6", reference:"opensm-3.3.15-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"opensm-debuginfo-3.3.15-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"opensm-devel-3.3.15-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"opensm-libs-3.3.15-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"opensm-static-3.3.15-1.el6")) flag++;
if (rpm_check(release:"SL6", reference:"rdma-3.6-1.el6")) flag++;


if (flag)
{
  security_report_v4(
    port       : 0,
    severity   : SECURITY_WARNING,
    extra      : rpm_report_get()
  );
  exit(0);
}
else
{
  tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, "ibacm / ibacm-debuginfo / ibacm-devel / ibsim / ibsim-debuginfo / etc");
}

CVSS2

5

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

PARTIAL

AV:N/AC:L/Au:N/C:N/I:N/A:P

EPSS

0.038

Percentile

91.9%