CVSS2
Attack Vector
NETWORK
Attack Complexity
LOW
Authentication
SINGLE
Confidentiality Impact
NONE
Integrity Impact
PARTIAL
Availability Impact
NONE
AV:N/AC:L/Au:S/C:N/I:P/A:N
CVSS3
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
NONE
Integrity Impact
HIGH
Availability Impact
NONE
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
AI Score
Confidence
High
EPSS
Percentile
48.6%
The remote Redhat Enterprise Linux 7 host has packages installed that are affected by a vulnerability as referenced in the RHSA-2018:0369 advisory.
OpenStack Compute (nova) launches and schedules large networks of virtual machines, creating a redundant and scalable cloud computing platform. Compute provides the software, control panels, and APIs required to orchestrate a cloud, including running virtual machine instances and controlling access through users and projects.
python-novaclient is the python client for the OpenStack Nova API. The client's Python API (the novaclient module) and command-line script (nova) both implement 100% of the OpenStack Nova API.
The following packages have been upgraded to a later upstream version: openstack-nova (14.1.0), python- novaclient (6.0.2). (BZ#1501736)
Security Fix(es):
* By rebuilding an instance using a new image, an authenticated user may be able to circumvent the Filter Scheduler, bypassing imposed filters (for example, the ImagePropertiesFilter or the IsolatedHostsFilter).
(CVE-2017-16239)
Red Hat would like to thank the OpenStack project for reporting this issue. Upstream acknowledges George Shuklin (Servers.com) as the original reporter.
Bug Fix(es):
* Prior to this update, QEMU (also known as TCG) guests had an issue where the `guest.get_vcpu_info` method was throwing an exception indicating that 0 were vCPUs used on the host, regardless of how many guests were running. Consequently, this caused the 'get_available_resources' method to report incorrect vCPUs used values for the Compute node. This meant it was overcounting resource consumption for plain QEMU guests, as they can only ever consume 1 pCPU of time, regardless of vCPU count. With this update, if a host does not report detailed vCPU usage from libvirt, then it should default to reporting 1 vCPU per guest, so that the 'vcpus_used' field reports some reasonably meaningful data on host CPU usage. As a result, libvirt does not report that 'cpu affinity is not supported' when guests are running in TCG.
(BZ#1515165)
* With this enhancement, the act of evacuating instances with pinned CPUs can result in these instances being hosted on a hypervisor which already handles instances with the same pinning configuration. This was added because the resource tracker does not track CPU pinning for instances on hosts. As a result, a condition has been added to the NUMATopologyFilter filter, which passes on hosts which already manage an instance with same CPU pinning configuration as the instance being evacuated. (BZ#1517272)
* Previously, the `request_spec.spec` column's TEXT type was too small, with the result that large request_specs may not have fit successfully. Consequently, running the online data migration as part of an OSP9 to OSP10 upgrade could have resulted in failure if an instance created before the upgrade had a large request_spec (for example, by having many members in its affinity/anti-affinity group). With this update, the request_spec.spec column has been increased to `MEDIUMTEXT`. As a result, online data migration should no longer fail during a OSP9 to OSP10 upgrade. (BZ#1526082)
* Previously, when detaching a Ceph volume connected to guest as a PCI device, the volume was not detached and libvirt reported an invalid PCI address. This arose because the PCI address of the device was not properly formatted due to a missing method in the guest XML formatter. To address this issue, this update adds a proper `format_dom` method for `LibvirtConfigGuestDeviceAddressPCI`. As a result, it is now possible to detach a Ceph volume. (BZ#1527345)
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.
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Red Hat Security Advisory RHSA-2018:0369. The text
# itself is copyright (C) Red Hat, Inc.
##
include('compat.inc');
if (description)
{
script_id(194059);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2024/06/03");
script_cve_id("CVE-2017-16239");
script_xref(name:"RHSA", value:"2018:0369");
script_name(english:"RHEL 7 : openstack-nova and python-novaclient (RHSA-2018:0369)");
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-2018:0369 advisory.
OpenStack Compute (nova) launches and schedules large networks of virtual machines, creating a redundant
and scalable cloud computing platform. Compute provides the software, control panels, and APIs required to
orchestrate a cloud, including running virtual machine instances and controlling access through users and
projects.
python-novaclient is the python client for the OpenStack Nova API. The client's Python API (the novaclient
module) and command-line script (nova) both implement 100% of the OpenStack Nova API.
The following packages have been upgraded to a later upstream version: openstack-nova (14.1.0), python-
novaclient (6.0.2). (BZ#1501736)
Security Fix(es):
* By rebuilding an instance using a new image, an authenticated user may be able to circumvent the Filter
Scheduler, bypassing imposed filters (for example, the ImagePropertiesFilter or the IsolatedHostsFilter).
(CVE-2017-16239)
Red Hat would like to thank the OpenStack project for reporting this issue. Upstream acknowledges George
Shuklin (Servers.com) as the original reporter.
Bug Fix(es):
* Prior to this update, QEMU (also known as TCG) guests had an issue where the `guest.get_vcpu_info`
method was throwing an exception indicating that 0 were vCPUs used on the host, regardless of how many
guests were running. Consequently, this caused the 'get_available_resources' method to report incorrect
vCPUs used values for the Compute node. This meant it was overcounting resource consumption for plain QEMU
guests, as they can only ever consume 1 pCPU of time, regardless of vCPU count. With this update, if a
host does not report detailed vCPU usage from libvirt, then it should default to reporting 1 vCPU per
guest, so that the 'vcpus_used' field reports some reasonably meaningful data on host CPU usage. As a
result, libvirt does not report that 'cpu affinity is not supported' when guests are running in TCG.
(BZ#1515165)
* With this enhancement, the act of evacuating instances with pinned CPUs can result in these instances
being hosted on a hypervisor which already handles instances with the same pinning configuration. This was
added because the resource tracker does not track CPU pinning for instances on hosts. As a result, a
condition has been added to the NUMATopologyFilter filter, which passes on hosts which already manage an
instance with same CPU pinning configuration as the instance being evacuated. (BZ#1517272)
* Previously, the `request_spec.spec` column's TEXT type was too small, with the result that large
request_specs may not have fit successfully. Consequently, running the online data migration as part of an
OSP9 to OSP10 upgrade could have resulted in failure if an instance created before the upgrade had a large
request_spec (for example, by having many members in its affinity/anti-affinity group). With this update,
the request_spec.spec column has been increased to `MEDIUMTEXT`. As a result, online data migration should
no longer fail during a OSP9 to OSP10 upgrade. (BZ#1526082)
* Previously, when detaching a Ceph volume connected to guest as a PCI device, the volume was not detached
and libvirt reported an invalid PCI address. This arose because the PCI address of the device was not
properly formatted due to a missing method in the guest XML formatter. To address this issue, this update
adds a proper `format_dom` method for `LibvirtConfigGuestDeviceAddressPCI`. As a result, it is now
possible to detach a Ceph volume. (BZ#1527345)
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.");
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=1508539");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1515165");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1519054");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1525427");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1526082");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1527345");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1530330");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1534665");
# https://access.redhat.com/security/data/csaf/v2/advisories/2018/rhsa-2018_0369.json
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?43ded9bd");
script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/errata/RHSA-2018:0369");
script_set_attribute(attribute:"solution", value:
"Update the affected packages.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:S/C:N/I:P/A:N");
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:L/UI:N/S:U/C:N/I:H/A:N");
script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2017-16239");
script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
script_set_attribute(attribute:"exploit_available", value:"false");
script_cwe_id(841);
script_set_attribute(attribute:"vendor_severity", value:"Moderate");
script_set_attribute(attribute:"vuln_publication_date", value:"2017/11/14");
script_set_attribute(attribute:"patch_publication_date", value:"2018/02/27");
script_set_attribute(attribute:"plugin_publication_date", value:"2024/04/27");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"cpe:/o:redhat:enterprise_linux:7");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-api");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-cells");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-cert");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-common");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-compute");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-conductor");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-console");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-migration");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-network");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-novncproxy");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-placement-api");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-scheduler");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-serialproxy");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:openstack-nova-spicehtml5proxy");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:python-nova");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:python-nova-tests");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:python-novaclient");
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) 2024 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl", "redhat_repos.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/client/7/7Client/x86_64/openstack-tools/10/debug',
'content/dist/rhel/client/7/7Client/x86_64/openstack-tools/10/os',
'content/dist/rhel/client/7/7Client/x86_64/openstack-tools/10/source/SRPMS',
'content/dist/rhel/server/7/7Server/x86_64/openstack-devtools/10/debug',
'content/dist/rhel/server/7/7Server/x86_64/openstack-devtools/10/os',
'content/dist/rhel/server/7/7Server/x86_64/openstack-devtools/10/source/SRPMS',
'content/dist/rhel/server/7/7Server/x86_64/openstack-tools/10/debug',
'content/dist/rhel/server/7/7Server/x86_64/openstack-tools/10/os',
'content/dist/rhel/server/7/7Server/x86_64/openstack-tools/10/source/SRPMS',
'content/dist/rhel/server/7/7Server/x86_64/openstack/10/debug',
'content/dist/rhel/server/7/7Server/x86_64/openstack/10/os',
'content/dist/rhel/server/7/7Server/x86_64/openstack/10/source/SRPMS',
'content/dist/rhel/workstation/7/7Workstation/x86_64/openstack-tools/10/debug',
'content/dist/rhel/workstation/7/7Workstation/x86_64/openstack-tools/10/os',
'content/dist/rhel/workstation/7/7Workstation/x86_64/openstack-tools/10/source/SRPMS'
],
'pkgs': [
{'reference':'openstack-nova-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-api-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-cells-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-cert-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-common-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-compute-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-conductor-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-console-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-migration-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-network-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-novncproxy-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-placement-api-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-scheduler-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-serialproxy-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'openstack-nova-spicehtml5proxy-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'python-nova-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'python-nova-tests-14.1.0-3.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'},
{'reference':'python-novaclient-6.0.2-2.el7ost', 'release':'7', 'el_string':'el7ost', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'openstack-'}
]
}
];
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_WARNING,
extra : extra
);
exit(0);
}
else
{
var tested = pkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'openstack-nova / openstack-nova-api / openstack-nova-cells / etc');
}
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-16239
www.nessus.org/u?43ded9bd
access.redhat.com/errata/RHSA-2018:0369
access.redhat.com/security/updates/classification/#moderate
bugzilla.redhat.com/show_bug.cgi?id=1508539
bugzilla.redhat.com/show_bug.cgi?id=1515165
bugzilla.redhat.com/show_bug.cgi?id=1519054
bugzilla.redhat.com/show_bug.cgi?id=1525427
bugzilla.redhat.com/show_bug.cgi?id=1526082
bugzilla.redhat.com/show_bug.cgi?id=1527345
bugzilla.redhat.com/show_bug.cgi?id=1530330
bugzilla.redhat.com/show_bug.cgi?id=1534665
CVSS2
Attack Vector
NETWORK
Attack Complexity
LOW
Authentication
SINGLE
Confidentiality Impact
NONE
Integrity Impact
PARTIAL
Availability Impact
NONE
AV:N/AC:L/Au:S/C:N/I:P/A:N
CVSS3
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
NONE
Integrity Impact
HIGH
Availability Impact
NONE
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
AI Score
Confidence
High
EPSS
Percentile
48.6%