4.7 Medium
CVSS2
Attack Vector
LOCAL
Attack Complexity
MEDIUM
Authentication
NONE
Confidentiality Impact
COMPLETE
Integrity Impact
NONE
Availability Impact
NONE
AV:L/AC:M/Au:N/C:C/I:N/A:N
5.6 Medium
CVSS3
Attack Vector
LOCAL
Attack Complexity
HIGH
Privileges Required
LOW
User Interaction
NONE
Scope
CHANGED
Confidentiality Impact
HIGH
Integrity Impact
NONE
Availability Impact
NONE
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
6.3 Medium
AI Score
Confidence
High
0.976 High
EPSS
Percentile
100.0%
The remote Redhat Enterprise Linux 6 host has packages installed that are affected by multiple vulnerabilities as referenced in the RHSA-2018:0021 advisory.
The kernel-rt packages provide the Real Time Linux Kernel, which enables fine-tuning for systems with extremely high determinism requirements.
Security Fix(es):
An industry-wide issue was found in the way many modern microprocessor designs have implemented speculative execution of instructions (a commonly used performance optimization). There are three primary variants of the issue which differ in the way the speculative execution can be exploited.
Note: This issue is present in hardware and cannot be fully fixed via software update. The updated kernel packages provide software mitigation for this hardware issue at a cost of potential performance penalty.
Please refer to References section for further information about this issue and the performance impact.
In this update mitigations for x86-64 architecture are provided.
Variant CVE-2017-5753 triggers the speculative execution by performing a bounds-check bypass. It relies on the presence of a precisely-defined instruction sequence in the privileged code as well as the fact that memory accesses may cause allocation into the microprocessor's data cache even for speculatively executed instructions that never actually commit (retire). As a result, an unprivileged attacker could use this flaw to cross the syscall boundary and read privileged memory by conducting targeted cache side-channel attacks. (CVE-2017-5753, Important)
Variant CVE-2017-5715 triggers the speculative execution by utilizing branch target injection. It relies on the presence of a precisely-defined instruction sequence in the privileged code as well as the fact that memory accesses may cause allocation into the microprocessor's data cache even for speculatively executed instructions that never actually commit (retire). As a result, an unprivileged attacker could use this flaw to cross the syscall and guest/host boundaries and read privileged memory by conducting targeted cache side-channel attacks. (CVE-2017-5715, Important)
Variant CVE-2017-5754 relies on the fact that, on impacted microprocessors, during speculative execution of instruction permission faults, exception generation triggered by a faulting access is suppressed until the retirement of the whole instruction block. In a combination with the fact that memory accesses may populate the cache even when the block is being dropped and never committed (executed), an unprivileged local attacker could use this flaw to read privileged (kernel space) memory by conducting targeted cache side-channel attacks. (CVE-2017-5754, Important)
Note: CVE-2017-5754 affects Intel x86-64 microprocessors. AMD x86-64 microprocessors are not affected by this issue.
Red Hat would like to thank Google Project Zero for reporting these issues.
Tenable has extracted the preceding description block directly from the Red Hat Enterprise Linux security advisory.
Note that Nessus has not tested for these issues 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-2018:0021. The text
# itself is copyright (C) Red Hat, Inc.
#
include('compat.inc');
if (description)
{
script_id(105672);
script_version("3.19");
script_set_attribute(attribute:"plugin_modification_date", value:"2024/06/03");
script_cve_id("CVE-2017-5715", "CVE-2017-5753", "CVE-2017-5754");
script_xref(name:"RHSA", value:"2018:0021");
script_xref(name:"IAVA", value:"2018-A-0019");
script_xref(name:"IAVA", value:"2018-A-0020");
script_xref(name:"IAVA", value:"2018-A-0017-S");
script_name(english:"RHEL 6 : kernel-rt (RHSA-2018:0021)");
script_set_attribute(attribute:"synopsis", value:
"The remote Red Hat host is missing one or more security updates for kernel-rt.");
script_set_attribute(attribute:"description", value:
"The remote Redhat Enterprise Linux 6 host has packages installed that are affected by multiple vulnerabilities as
referenced in the RHSA-2018:0021 advisory.
The kernel-rt packages provide the Real Time Linux Kernel, which enables fine-tuning for systems with
extremely high determinism requirements.
Security Fix(es):
An industry-wide issue was found in the way many modern microprocessor designs have implemented
speculative execution of instructions (a commonly used performance optimization). There are three primary
variants of the issue which differ in the way the speculative execution can be exploited.
Note: This issue is present in hardware and cannot be fully fixed via software update. The updated kernel
packages provide software mitigation for this hardware issue at a cost of potential performance penalty.
Please refer to References section for further information about this issue and the performance impact.
In this update mitigations for x86-64 architecture are provided.
Variant CVE-2017-5753 triggers the speculative execution by performing a bounds-check bypass. It relies on
the presence of a precisely-defined instruction sequence in the privileged code as well as the fact that
memory accesses may cause allocation into the microprocessor's data cache even for speculatively executed
instructions that never actually commit (retire). As a result, an unprivileged attacker could use this
flaw to cross the syscall boundary and read privileged memory by conducting targeted cache side-channel
attacks. (CVE-2017-5753, Important)
Variant CVE-2017-5715 triggers the speculative execution by utilizing branch target injection. It relies
on the presence of a precisely-defined instruction sequence in the privileged code as well as the fact
that memory accesses may cause allocation into the microprocessor's data cache even for speculatively
executed instructions that never actually commit (retire). As a result, an unprivileged attacker could use
this flaw to cross the syscall and guest/host boundaries and read privileged memory by conducting targeted
cache side-channel attacks. (CVE-2017-5715, Important)
Variant CVE-2017-5754 relies on the fact that, on impacted microprocessors, during speculative execution
of instruction permission faults, exception generation triggered by a faulting access is suppressed until
the retirement of the whole instruction block. In a combination with the fact that memory accesses may
populate the cache even when the block is being dropped and never committed (executed), an unprivileged
local attacker could use this flaw to read privileged (kernel space) memory by conducting targeted cache
side-channel attacks. (CVE-2017-5754, Important)
Note: CVE-2017-5754 affects Intel x86-64 microprocessors. AMD x86-64 microprocessors are not affected by
this issue.
Red Hat would like to thank Google Project Zero for reporting these issues.
Tenable has extracted the preceding description block directly from the Red Hat Enterprise Linux security advisory.
Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
# https://access.redhat.com/security/data/csaf/v2/advisories/2018/rhsa-2018_0021.json
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?4b1c7490");
# https://access.redhat.com/security/vulnerabilities/speculativeexecution
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?892ef523");
script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/updates/classification/#important");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1519778");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1519780");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/show_bug.cgi?id=1519781");
script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/errata/RHSA-2018:0021");
script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2017-5715");
script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2017-5753");
script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2017-5754");
script_set_attribute(attribute:"solution", value:
"Update the RHEL kernel-rt package based on the guidance in RHSA-2018:0021.");
script_set_cvss_base_vector("CVSS2#AV:L/AC:M/Au:N/C:C/I:N/A:N");
script_set_cvss_temporal_vector("CVSS2#E:H/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N");
script_set_cvss3_temporal_vector("CVSS:3.0/E:H/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2017-5754");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"exploited_by_malware", value:"true");
script_set_attribute(attribute:"exploit_framework_canvas", value:"true");
script_set_attribute(attribute:"canvas_package", value:"CANVAS");
script_set_attribute(attribute:"in_the_news", value:"true");
script_cwe_id(200);
script_set_attribute(attribute:"vendor_severity", value:"Important");
script_set_attribute(attribute:"vuln_publication_date", value:"2018/01/04");
script_set_attribute(attribute:"patch_publication_date", value:"2018/01/04");
script_set_attribute(attribute:"plugin_publication_date", value:"2018/01/09");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-rt");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-rt-debug");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-rt-debug-devel");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-rt-devel");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-rt-doc");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-rt-firmware");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-rt-trace");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-rt-trace-devel");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-rt-vanilla");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-rt-vanilla-devel");
script_set_attribute(attribute:"cpe", value:"cpe:/o:redhat:enterprise_linux:6");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_set_attribute(attribute:"stig_severity", value:"I");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Red Hat Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2018-2024 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl", "linux_alt_patch_detect.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');
include('ksplice.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: '6')) audit(AUDIT_OS_NOT, 'Red Hat 6.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);
if (get_one_kb_item('Host/ksplice/kernel-cves'))
{
rm_kb_item(name:'Host/uptrack-uname-r');
var cve_list = make_list('CVE-2017-5715', 'CVE-2017-5753', 'CVE-2017-5754');
if (ksplice_cves_check(cve_list))
{
audit(AUDIT_PATCH_INSTALLED, 'KSplice hotfix for RHSA-2018:0021');
}
else
{
__rpm_report = ksplice_reporting_text();
}
}
var constraints = [
{
'repo_relative_urls': [
'content/dist/rhel/server/6/6Server/x86_64/mrg-g-execute/2/debug',
'content/dist/rhel/server/6/6Server/x86_64/mrg-g-execute/2/os',
'content/dist/rhel/server/6/6Server/x86_64/mrg-g-execute/2/source/SRPMS',
'content/dist/rhel/server/6/6Server/x86_64/mrg-g/2/debug',
'content/dist/rhel/server/6/6Server/x86_64/mrg-g/2/os',
'content/dist/rhel/server/6/6Server/x86_64/mrg-g/2/source/SRPMS',
'content/dist/rhel/server/6/6Server/x86_64/mrg-m/2/debug',
'content/dist/rhel/server/6/6Server/x86_64/mrg-m/2/os',
'content/dist/rhel/server/6/6Server/x86_64/mrg-m/2/source/SRPMS',
'content/dist/rhel/server/6/6Server/x86_64/mrg-mgmt/2/debug',
'content/dist/rhel/server/6/6Server/x86_64/mrg-mgmt/2/os',
'content/dist/rhel/server/6/6Server/x86_64/mrg-mgmt/2/source/SRPMS',
'content/dist/rhel/server/6/6Server/x86_64/mrg-r/2/debug',
'content/dist/rhel/server/6/6Server/x86_64/mrg-r/2/os',
'content/dist/rhel/server/6/6Server/x86_64/mrg-r/2/source/SRPMS'
],
'pkgs': [
{'reference':'kernel-rt-3.10.0-693.11.1.rt56.606.el6rt', 'cpu':'x86_64', 'release':'6', 'el_string':'el6rt', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'mrg-release'},
{'reference':'kernel-rt-debug-3.10.0-693.11.1.rt56.606.el6rt', 'cpu':'x86_64', 'release':'6', 'el_string':'el6rt', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'mrg-release'},
{'reference':'kernel-rt-debug-devel-3.10.0-693.11.1.rt56.606.el6rt', 'cpu':'x86_64', 'release':'6', 'el_string':'el6rt', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'mrg-release'},
{'reference':'kernel-rt-devel-3.10.0-693.11.1.rt56.606.el6rt', 'cpu':'x86_64', 'release':'6', 'el_string':'el6rt', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'mrg-release'},
{'reference':'kernel-rt-doc-3.10.0-693.11.1.rt56.606.el6rt', 'release':'6', 'el_string':'el6rt', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'mrg-release'},
{'reference':'kernel-rt-firmware-3.10.0-693.11.1.rt56.606.el6rt', 'release':'6', 'el_string':'el6rt', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'mrg-release'},
{'reference':'kernel-rt-trace-3.10.0-693.11.1.rt56.606.el6rt', 'cpu':'x86_64', 'release':'6', 'el_string':'el6rt', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'mrg-release'},
{'reference':'kernel-rt-trace-devel-3.10.0-693.11.1.rt56.606.el6rt', 'cpu':'x86_64', 'release':'6', 'el_string':'el6rt', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'mrg-release'},
{'reference':'kernel-rt-vanilla-3.10.0-693.11.1.rt56.606.el6rt', 'cpu':'x86_64', 'release':'6', 'el_string':'el6rt', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'mrg-release'},
{'reference':'kernel-rt-vanilla-devel-3.10.0-693.11.1.rt56.606.el6rt', 'cpu':'x86_64', 'release':'6', 'el_string':'el6rt', 'rpm_spec_vers_cmp':TRUE, 'epoch':'1', 'exists_check':'mrg-release'}
]
}
];
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, 'kernel-rt / kernel-rt-debug / kernel-rt-debug-devel / etc');
}
Vendor | Product | Version | CPE |
---|---|---|---|
redhat | enterprise_linux | kernel-rt | p-cpe:/a:redhat:enterprise_linux:kernel-rt |
redhat | enterprise_linux | kernel-rt-debug-devel | p-cpe:/a:redhat:enterprise_linux:kernel-rt-debug-devel |
redhat | enterprise_linux | kernel-rt-devel | p-cpe:/a:redhat:enterprise_linux:kernel-rt-devel |
redhat | enterprise_linux | 6 | cpe:/o:redhat:enterprise_linux:6 |
redhat | enterprise_linux | kernel-rt-trace-devel | p-cpe:/a:redhat:enterprise_linux:kernel-rt-trace-devel |
redhat | enterprise_linux | kernel-rt-vanilla-devel | p-cpe:/a:redhat:enterprise_linux:kernel-rt-vanilla-devel |
redhat | enterprise_linux | kernel-rt-firmware | p-cpe:/a:redhat:enterprise_linux:kernel-rt-firmware |
redhat | enterprise_linux | kernel-rt-trace | p-cpe:/a:redhat:enterprise_linux:kernel-rt-trace |
redhat | enterprise_linux | kernel-rt-debug | p-cpe:/a:redhat:enterprise_linux:kernel-rt-debug |
redhat | enterprise_linux | kernel-rt-doc | p-cpe:/a:redhat:enterprise_linux:kernel-rt-doc |
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5715
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5753
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5754
www.nessus.org/u?4b1c7490
www.nessus.org/u?892ef523
access.redhat.com/errata/RHSA-2018:0021
access.redhat.com/security/cve/CVE-2017-5715
access.redhat.com/security/cve/CVE-2017-5753
access.redhat.com/security/cve/CVE-2017-5754
access.redhat.com/security/updates/classification/#important
bugzilla.redhat.com/show_bug.cgi?id=1519778
bugzilla.redhat.com/show_bug.cgi?id=1519780
bugzilla.redhat.com/show_bug.cgi?id=1519781
4.7 Medium
CVSS2
Attack Vector
LOCAL
Attack Complexity
MEDIUM
Authentication
NONE
Confidentiality Impact
COMPLETE
Integrity Impact
NONE
Availability Impact
NONE
AV:L/AC:M/Au:N/C:C/I:N/A:N
5.6 Medium
CVSS3
Attack Vector
LOCAL
Attack Complexity
HIGH
Privileges Required
LOW
User Interaction
NONE
Scope
CHANGED
Confidentiality Impact
HIGH
Integrity Impact
NONE
Availability Impact
NONE
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
6.3 Medium
AI Score
Confidence
High
0.976 High
EPSS
Percentile
100.0%