Lucene search

K
nessusThis script is Copyright (C) 2019-2024 and is owned by Tenable, Inc. or an Affiliate thereof.REDHAT-RHSA-2019-3255.NASL
HistoryOct 31, 2019 - 12:00 a.m.

RHEL 7 : heketi (RHSA-2019:3255)

2019-10-3100:00:00
This script is Copyright (C) 2019-2024 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
24

7.5 High

CVSS2

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

PARTIAL

Availability Impact

PARTIAL

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

9.8 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

10 High

AI Score

Confidence

High

0.002 Low

EPSS

Percentile

61.9%

The remote Redhat Enterprise Linux 7 host has packages installed that are affected by a vulnerability as referenced in the RHSA-2019:3255 advisory.

Heketi provides a RESTful management interface that can be used to manage the life cycle of GlusterFS     volumes. With Heketi, cloud services like OpenStack Manila, Kubernetes, and OpenShift can dynamically     provision GlusterFS volumes with any of the supported durability types. Heketi will automatically     determine the location for bricks across the cluster, making sure to place bricks and its replicas across     different failure domains. Heketi also supports any number of GlusterFS clusters, allowing cloud services     to provide network file storage without being limited to a single GlusterFS cluster.

The following packages have been upgraded to a later upstream version: heketi (9.0.0). (BZ#1710080)

Security Fix(es):

* heketi: heketi can be installed using insecure defaults (CVE-2019-3899)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and     other related information, refer to the CVE page(s) listed in the References section.

Bug Fix(es):

* Previously, it was easy to inadvertently set Heketi up in an unsecured way which increased the risk of     unauthorized users to make changes to the storage managed by Heketi. The default settings have changed to     require users to configure authentication and to make disabling authentication unintentionally more     difficult. (BZ#1701838)

* Previously, when Heketi executed commands within OpenShift/Kubernetes pods, the commands were executed     without a timeout specified. Hence, some commands never returned which differed from the SSH executor     which always executes commands with a timeout. With this update, the commands that are executed in the     gluster containers have a timeout specified. The timeout values are the same regardless of what connection     type is used. (BZ#1636912)

* Previously, if Heketi managed multiple clusters and it failed to create volumes on any of the clusters     it would return a generic No space error message. With this update, error messages produced when heketi     manages multiple gluster clusters have been improved. Heketi now displays specific errors for when the     cluster has no nodes or none of the nodes have usable devices and also reports on each cluster's error by     prefixing cluster errors with the cluster ID. (BZ#1577803)

* Previously, if operation cleanup was requested from the server simultaneously, the server would try to     initiate cleanup for the same operation twice. This triggered panic in the server. With this update, the     server no longer panics if two operation cleanups are requested at the same time. (BZ#1702162)

Enhancement(s):

* When a node is removed or added to a gluster trusted storage pool using heketi, the existing endpoints     do not get updated automatically. With this update, to update the endpoints after node addition/removal,     users can now execute the following commands:
1. heketi-cli volume endpoint patch <volume-id>     2. oc patch ep <heketi-db-endpoint-name> -p <changes> (BZ#1660681)

* With this update, Heketi tracks additional metadata associated with disk devices even if the path of the     device changes. The outputs of some commands have been updated to reflect the additional metadata.
(BZ#1609553)

Users of Heketi are advised to upgrade to these updated packages, which adds these enhancements and fix     these bugs.

Tenable has extracted the preceding description block directly from the Red Hat Enterprise Linux security advisory.

Note that Nessus has not tested for this issue but has instead relied only on the application’s self-reported version number.

#
# (C) Tenable Network Security, Inc.
#
# The descriptive text and package checks in this plugin were  
# extracted from Red Hat Security Advisory RHSA-2019:3255. The text 
# itself is copyright (C) Red Hat, Inc.
#

include('compat.inc');

if (description)
{
  script_id(130417);
  script_version("1.5");
  script_set_attribute(attribute:"plugin_modification_date", value:"2024/06/03");

  script_cve_id("CVE-2019-3899");
  script_xref(name:"RHSA", value:"2019:3255");

  script_name(english:"RHEL 7 : heketi (RHSA-2019:3255)");

  script_set_attribute(attribute:"synopsis", value:
"The remote Red Hat host is missing a security update.");
  script_set_attribute(attribute:"description", value:
"The remote Redhat Enterprise Linux 7 host has packages installed that are affected by a vulnerability as referenced in
the RHSA-2019:3255 advisory.

    Heketi provides a RESTful management interface that can be used to manage the life cycle of GlusterFS
    volumes. With Heketi, cloud services like OpenStack Manila, Kubernetes, and OpenShift can dynamically
    provision GlusterFS volumes with any of the supported durability types. Heketi will automatically
    determine the location for bricks across the cluster, making sure to place bricks and its replicas across
    different failure domains. Heketi also supports any number of GlusterFS clusters, allowing cloud services
    to provide network file storage without being limited to a single GlusterFS cluster.

    The following packages have been upgraded to a later upstream version: heketi (9.0.0). (BZ#1710080)

    Security Fix(es):

    * heketi: heketi can be installed using insecure defaults (CVE-2019-3899)

    For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and
    other related information, refer to the CVE page(s) listed in the References section.

    Bug Fix(es):

    * Previously, it was easy to inadvertently set Heketi up in an unsecured way which increased the risk of
    unauthorized users to make changes to the storage managed by Heketi. The default settings have changed to
    require users to configure authentication and to make disabling authentication unintentionally more
    difficult. (BZ#1701838)

    * Previously, when Heketi executed commands within OpenShift/Kubernetes pods, the commands were executed
    without a timeout specified. Hence, some commands never returned which differed from the SSH executor
    which always executes commands with a timeout. With this update, the commands that are executed in the
    gluster containers have a timeout specified. The timeout values are the same regardless of what connection
    type is used. (BZ#1636912)

    * Previously, if Heketi managed multiple clusters and it failed to create volumes on any of the clusters
    it would return a generic No space error message. With this update, error messages produced when heketi
    manages multiple gluster clusters have been improved. Heketi now displays specific errors for when the
    cluster has no nodes or none of the nodes have usable devices and also reports on each cluster's error by
    prefixing cluster errors with the cluster ID. (BZ#1577803)

    * Previously, if operation cleanup was requested from the server simultaneously, the server would try to
    initiate cleanup for the same operation twice. This triggered panic in the server. With this update, the
    server no longer panics if two operation cleanups are requested at the same time. (BZ#1702162)

    Enhancement(s):

    * When a node is removed or added to a gluster trusted storage pool using heketi, the existing endpoints
    do not get updated automatically. With this update, to update the endpoints after node addition/removal,
    users can now execute the following commands:
    1. heketi-cli volume endpoint patch <volume-id>
    2. oc patch ep <heketi-db-endpoint-name> -p <changes> (BZ#1660681)

    * With this update, Heketi tracks additional metadata associated with disk devices even if the path of the
    device changes. The outputs of some commands have been updated to reflect the additional metadata.
    (BZ#1609553)

    Users of Heketi are advised to upgrade to these updated packages, which adds these enhancements and fix
    these bugs.

Tenable has extracted the preceding description block directly from the Red Hat Enterprise Linux security advisory.

Note that Nessus has not tested for this issue but has instead relied only on the application's self-reported version
number.");
  # https://access.redhat.com/security/data/csaf/v2/advisories/2019/rhsa-2019_3255.json
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?c0b4fff9");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/errata/RHSA-2019:3255");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/updates/classification/#moderate");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1577803");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1609553");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1636912");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1660681");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1701091");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1702162");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1710080");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1710996");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1725798");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1740884");
  script_set_attribute(attribute:"solution", value:
"Update the affected heketi, heketi-client and / or python-heketi packages.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2019-3899");

  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"false");
  script_cwe_id(287);
  script_set_attribute(attribute:"vendor_severity", value:"Moderate");

  script_set_attribute(attribute:"vuln_publication_date", value:"2019/04/22");
  script_set_attribute(attribute:"patch_publication_date", value:"2019/10/30");
  script_set_attribute(attribute:"plugin_publication_date", value:"2019/10/31");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:heketi");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:heketi-client");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:python-heketi");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:redhat:enterprise_linux:7");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Red Hat Local Security Checks");

  script_copyright(english:"This script is Copyright (C) 2019-2024 and is owned by Tenable, Inc. or an Affiliate thereof.");

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

  exit(0);
}


include('rpm.inc');
include('rhel.inc');

if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var os_release = get_kb_item('Host/RedHat/release');
if (isnull(os_release) || 'Red Hat' >!< os_release) audit(AUDIT_OS_NOT, 'Red Hat');
var os_ver = pregmatch(pattern: "Red Hat Enterprise Linux.*release ([0-9]+(\.[0-9]+)?)", string:os_release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, 'Red Hat');
os_ver = os_ver[1];
if (!rhel_check_release(operator: 'ge', os_version: os_ver, rhel_version: '7')) audit(AUDIT_OS_NOT, 'Red Hat 7.x', 'Red Hat ' + os_ver);

if (!get_kb_item('Host/RedHat/rpm-list')) audit(AUDIT_PACKAGE_LIST_MISSING);

var cpu = get_kb_item('Host/cpu');
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ('x86_64' >!< cpu && cpu !~ "^i[3-6]86$" && 's390' >!< cpu && 'aarch64' >!< cpu && 'ppc' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'Red Hat', cpu);

var constraints = [
  {
    'repo_relative_urls': [
      'content/dist/rhel/server/7/7Server/x86_64/rhgs-server/3.1/debug',
      'content/dist/rhel/server/7/7Server/x86_64/rhgs-server/3.1/os',
      'content/dist/rhel/server/7/7Server/x86_64/rhgs-server/3.1/source/SRPMS'
    ],
    'pkgs': [
      {'reference':'heketi-9.0.0-7.el7rhgs', 'cpu':'x86_64', 'release':'7', 'el_string':'el7rhgs', 'rpm_spec_vers_cmp':TRUE, 'exists_check':'glusterfs'},
      {'reference':'python-heketi-9.0.0-7.el7rhgs', 'cpu':'x86_64', 'release':'7', 'el_string':'el7rhgs', 'rpm_spec_vers_cmp':TRUE, 'exists_check':'glusterfs'}
    ]
  },
  {
    'repo_relative_urls': [
      'content/dist/rhel/server/7/7Server/x86_64/rhgs-server/3.1/debug',
      'content/dist/rhel/server/7/7Server/x86_64/rhgs-server/3.1/os',
      'content/dist/rhel/server/7/7Server/x86_64/rhgs-server/3.1/source/SRPMS',
      'content/dist/rhel/server/7/7Server/x86_64/rhs-client/debug',
      'content/dist/rhel/server/7/7Server/x86_64/rhs-client/os',
      'content/dist/rhel/server/7/7Server/x86_64/rhs-client/source/SRPMS'
    ],
    'pkgs': [
      {'reference':'heketi-client-9.0.0-7.el7rhgs', 'cpu':'x86_64', 'release':'7', 'el_string':'el7rhgs', 'rpm_spec_vers_cmp':TRUE, 'exists_check':'glusterfs'}
    ]
  }
];

var applicable_repo_urls = rhel_determine_applicable_repository_urls(constraints:constraints);
if(applicable_repo_urls == RHEL_REPOS_NO_OVERLAP_MESSAGE) exit(0, RHEL_REPO_NOT_ENABLED);

var flag = 0;
foreach var constraint_array ( constraints ) {
  var repo_relative_urls = NULL;
  if (!empty_or_null(constraint_array['repo_relative_urls'])) repo_relative_urls = constraint_array['repo_relative_urls'];
  foreach var pkg ( constraint_array['pkgs'] ) {
    var reference = NULL;
    var _release = NULL;
    var sp = NULL;
    var _cpu = NULL;
    var el_string = NULL;
    var rpm_spec_vers_cmp = NULL;
    var epoch = NULL;
    var allowmaj = NULL;
    var exists_check = NULL;
    var cves = NULL;
    if (!empty_or_null(pkg['reference'])) reference = pkg['reference'];
    if (!empty_or_null(pkg['release'])) _release = 'RHEL' + pkg['release'];
    if (!empty_or_null(pkg['sp'])) sp = pkg['sp'];
    if (!empty_or_null(pkg['cpu'])) _cpu = pkg['cpu'];
    if (!empty_or_null(pkg['el_string'])) el_string = pkg['el_string'];
    if (!empty_or_null(pkg['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = pkg['rpm_spec_vers_cmp'];
    if (!empty_or_null(pkg['epoch'])) epoch = pkg['epoch'];
    if (!empty_or_null(pkg['allowmaj'])) allowmaj = pkg['allowmaj'];
    if (!empty_or_null(pkg['exists_check'])) exists_check = pkg['exists_check'];
    if (!empty_or_null(pkg['cves'])) cves = pkg['cves'];
    if (reference &&
        _release &&
        rhel_decide_repo_relative_url_check(required_repo_url_list:repo_relative_urls) &&
        (applicable_repo_urls || (!exists_check || rpm_exists(release:_release, rpm:exists_check))) &&
        rpm_check(release:_release, sp:sp, cpu:_cpu, reference:reference, epoch:epoch, el_string:el_string, rpm_spec_vers_cmp:rpm_spec_vers_cmp, allowmaj:allowmaj, cves:cves)) flag++;
  }
}

if (flag)
{
  var extra = NULL;
  if (isnull(applicable_repo_urls) || !applicable_repo_urls) extra = rpm_report_get() + redhat_report_repo_caveat();
  else extra = rpm_report_get();
  security_report_v4(
      port       : 0,
      severity   : SECURITY_HOLE,
      extra      : extra
  );
  exit(0);
}
else
{
  var tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'heketi / heketi-client / python-heketi');
}
VendorProductVersionCPE
redhatenterprise_linuxheketi-clientp-cpe:/a:redhat:enterprise_linux:heketi-client
redhatenterprise_linuxheketip-cpe:/a:redhat:enterprise_linux:heketi
redhatenterprise_linuxpython-heketip-cpe:/a:redhat:enterprise_linux:python-heketi
redhatenterprise_linux7cpe:/o:redhat:enterprise_linux:7

7.5 High

CVSS2

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

PARTIAL

Availability Impact

PARTIAL

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

9.8 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

10 High

AI Score

Confidence

High

0.002 Low

EPSS

Percentile

61.9%

Related for REDHAT-RHSA-2019-3255.NASL