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');
}
Vendor | Product | Version | CPE |
---|---|---|---|
redhat | enterprise_linux | heketi-client | p-cpe:/a:redhat:enterprise_linux:heketi-client |
redhat | enterprise_linux | heketi | p-cpe:/a:redhat:enterprise_linux:heketi |
redhat | enterprise_linux | python-heketi | p-cpe:/a:redhat:enterprise_linux:python-heketi |
redhat | enterprise_linux | 7 | cpe:/o:redhat:enterprise_linux:7 |
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-3899
www.nessus.org/u?c0b4fff9
access.redhat.com/errata/RHSA-2019:3255
access.redhat.com/security/updates/classification/#moderate
bugzilla.redhat.com/show_bug.cgi?id=1577803
bugzilla.redhat.com/show_bug.cgi?id=1609553
bugzilla.redhat.com/show_bug.cgi?id=1636912
bugzilla.redhat.com/show_bug.cgi?id=1660681
bugzilla.redhat.com/show_bug.cgi?id=1701091
bugzilla.redhat.com/show_bug.cgi?id=1702162
bugzilla.redhat.com/show_bug.cgi?id=1710080
bugzilla.redhat.com/show_bug.cgi?id=1710996
bugzilla.redhat.com/show_bug.cgi?id=1725798
bugzilla.redhat.com/show_bug.cgi?id=1740884
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%