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
EPSS
Percentile
59.3%
The remote Oracle Linux 9 host has a package installed that is affected by multiple vulnerabilities as referenced in the ELSA-2022-8580 advisory.
Mozilla developers Andrew McCreight and Gabriele Svelto reported memory safety bugs present in Firefox 106 and Firefox ESR 102.4. Some of these bugs showed evidence of memory corruption and we presume that with enough effort some of these could have been exploited to run arbitrary code. (CVE-2022-45421)
Keyboard events reference strings like KeyA that were at fixed, known, and widely-spread addresses.
Cache-based timing attacks such as Prime+Probe could have possibly figured out which keys were being pressed. (CVE-2022-45416)
If an out-of-memory condition occurred when creating a JavaScript global, a JavaScript realm may be deleted while references to it lived on in a BaseShape. This could lead to a use-after-free causing a potentially exploitable crash. (CVE-2022-45406)
Service Workers should not be able to infer information about opaque cross-origin responses; but timing information for cross-origin media combined with Range requests might have allowed them to determine the presence or length of a media file. (CVE-2022-45403)
Through a series of popups that reuse windowName, an attacker can cause a window to go fullscreen without the user seeing the notification prompt, resulting in potential user confusion or spoofing attacks.
(CVE-2022-45408)
Freeing arbitrary <code>nsIInputStream</code>'s on a different thread than creation could have led to a use-after-free and potentially exploitable crash. (CVE-2022-45405)
Cross-Site Tracing occurs when a server will echo a request back via the Trace method, allowing an XSS attack to access to authorization headers and cookies inaccessible to JavaScript (such as cookies protected by HTTPOnly). To mitigate this attack, browsers placed limits on <code>fetch()</code> and XMLHttpRequest; however some webservers have implemented non-standard headers such as <code>X-Http-Method- Override</code> that override the HTTP method, and made this attack possible again. Firefox has applied the same mitigations to the use of this and similar headers. (CVE-2022-45411)
The garbage collector could have been aborted in several states and zones and <code>GCRuntime::finishCollection</code> may not have been called, leading to a use-after-free and potentially exploitable crash (CVE-2022-45409)
Through a series of popup and <code>window.print()</code> calls, an attacker can cause a window to go fullscreen without the user seeing the notification prompt, resulting in potential user confusion or spoofing attacks. (CVE-2022-45404)
When a ServiceWorker intercepted a request with <code>FetchEvent</code>, the origin of the request was lost after the ServiceWorker took ownership of it. This had the effect of negating SameSite cookie protections. This was addressed in the spec and then in browsers. (CVE-2022-45410)
When resolving a symlink such as <code>file:///proc/self/fd/1</code>, an error message may be produced where the symlink was resolved to a string containing unitialized memory in the buffer. This bug only affects Thunderbird on Unix-based operated systems (Android, Linux, MacOS). Windows is unaffected.
(CVE-2022-45412)
If a custom mouse cursor is specified in CSS, under certain circumstances the cursor could have been drawn over the browser UI, resulting in potential user confusion or spoofing attacks. (CVE-2022-45418)
Use tables inside of an iframe, an attacker could have caused iframe contents to be rendered outside the boundaries of the iframe, resulting in potential user confusion or spoofing attacks. (CVE-2022-45420)
Note that Nessus has not tested for these issues 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 Oracle Linux Security Advisory ELSA-2022-8580.
##
include('compat.inc');
if (description)
{
script_id(168179);
script_version("1.5");
script_set_attribute(attribute:"plugin_modification_date", value:"2023/01/05");
script_cve_id(
"CVE-2022-45403",
"CVE-2022-45404",
"CVE-2022-45405",
"CVE-2022-45406",
"CVE-2022-45408",
"CVE-2022-45409",
"CVE-2022-45410",
"CVE-2022-45411",
"CVE-2022-45412",
"CVE-2022-45416",
"CVE-2022-45418",
"CVE-2022-45420",
"CVE-2022-45421"
);
script_xref(name:"IAVA", value:"2022-A-0491-S");
script_name(english:"Oracle Linux 9 : firefox (ELSA-2022-8580)");
script_set_attribute(attribute:"synopsis", value:
"The remote Oracle Linux host is missing one or more security updates.");
script_set_attribute(attribute:"description", value:
"The remote Oracle Linux 9 host has a package installed that is affected by multiple vulnerabilities as referenced in the
ELSA-2022-8580 advisory.
- Mozilla developers Andrew McCreight and Gabriele Svelto reported memory safety bugs present in Firefox 106
and Firefox ESR 102.4. Some of these bugs showed evidence of memory corruption and we presume that with
enough effort some of these could have been exploited to run arbitrary code. (CVE-2022-45421)
- Keyboard events reference strings like KeyA that were at fixed, known, and widely-spread addresses.
Cache-based timing attacks such as Prime+Probe could have possibly figured out which keys were being
pressed. (CVE-2022-45416)
- If an out-of-memory condition occurred when creating a JavaScript global, a JavaScript realm may be
deleted while references to it lived on in a BaseShape. This could lead to a use-after-free causing a
potentially exploitable crash. (CVE-2022-45406)
- Service Workers should not be able to infer information about opaque cross-origin responses; but timing
information for cross-origin media combined with Range requests might have allowed them to determine the
presence or length of a media file. (CVE-2022-45403)
- Through a series of popups that reuse windowName, an attacker can cause a window to go fullscreen without
the user seeing the notification prompt, resulting in potential user confusion or spoofing attacks.
(CVE-2022-45408)
- Freeing arbitrary <code>nsIInputStream</code>'s on a different thread than creation could have led to a
use-after-free and potentially exploitable crash. (CVE-2022-45405)
- Cross-Site Tracing occurs when a server will echo a request back via the Trace method, allowing an XSS
attack to access to authorization headers and cookies inaccessible to JavaScript (such as cookies
protected by HTTPOnly). To mitigate this attack, browsers placed limits on <code>fetch()</code> and
XMLHttpRequest; however some webservers have implemented non-standard headers such as <code>X-Http-Method-
Override</code> that override the HTTP method, and made this attack possible again. Firefox has applied
the same mitigations to the use of this and similar headers. (CVE-2022-45411)
- The garbage collector could have been aborted in several states and zones and
<code>GCRuntime::finishCollection</code> may not have been called, leading to a use-after-free and
potentially exploitable crash (CVE-2022-45409)
- Through a series of popup and <code>window.print()</code> calls, an attacker can cause a window to go
fullscreen without the user seeing the notification prompt, resulting in potential user confusion or
spoofing attacks. (CVE-2022-45404)
- When a ServiceWorker intercepted a request with <code>FetchEvent</code>, the origin of the request was
lost after the ServiceWorker took ownership of it. This had the effect of negating SameSite cookie
protections. This was addressed in the spec and then in browsers. (CVE-2022-45410)
- When resolving a symlink such as <code>file:///proc/self/fd/1</code>, an error message may be produced
where the symlink was resolved to a string containing unitialized memory in the buffer. This bug only
affects Thunderbird on Unix-based operated systems (Android, Linux, MacOS). Windows is unaffected.
(CVE-2022-45412)
- If a custom mouse cursor is specified in CSS, under certain circumstances the cursor could have been drawn
over the browser UI, resulting in potential user confusion or spoofing attacks. (CVE-2022-45418)
- Use tables inside of an iframe, an attacker could have caused iframe contents to be rendered outside the
boundaries of the iframe, resulting in potential user confusion or spoofing attacks. (CVE-2022-45420)
Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
script_set_attribute(attribute:"see_also", value:"https://linux.oracle.com/errata/ELSA-2022-8580.html");
script_set_attribute(attribute:"solution", value:
"Update the affected firefox package.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
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-2022-45421");
script_set_attribute(attribute:"cvss3_score_source", value:"CVE-2022-45406");
script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
script_set_attribute(attribute:"exploit_available", value:"false");
script_set_attribute(attribute:"vuln_publication_date", value:"2022/11/15");
script_set_attribute(attribute:"patch_publication_date", value:"2022/11/24");
script_set_attribute(attribute:"plugin_publication_date", value:"2022/11/24");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"cpe:/o:oracle:linux:9");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:oracle:linux:firefox");
script_set_attribute(attribute:"stig_severity", value:"I");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Oracle Linux Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2022-2023 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl");
script_require_keys("Host/OracleLinux", "Host/RedHat/release", "Host/RedHat/rpm-list", "Host/local_checks_enabled");
exit(0);
}
include('rpm.inc');
if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
if (!get_kb_item('Host/OracleLinux')) audit(AUDIT_OS_NOT, 'Oracle Linux');
var os_release = get_kb_item("Host/RedHat/release");
if (isnull(os_release) || !pregmatch(pattern: "Oracle (?:Linux Server|Enterprise Linux)", string:os_release)) audit(AUDIT_OS_NOT, 'Oracle Linux');
var os_ver = pregmatch(pattern: "Oracle (?:Linux Server|Enterprise Linux) .*release ([0-9]+(\.[0-9]+)?)", string:os_release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, 'Oracle Linux');
os_ver = os_ver[1];
if (! preg(pattern:"^9([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, 'Oracle Linux 9', 'Oracle Linux ' + 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$" && 'aarch64' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'Oracle Linux', cpu);
var pkgs = [
{'reference':'firefox-102.5.0-1.0.1.el9_1', 'cpu':'aarch64', 'release':'9', 'rpm_spec_vers_cmp':TRUE, 'allowmaj':TRUE},
{'reference':'firefox-102.5.0-1.0.1.el9_1', 'cpu':'x86_64', 'release':'9', 'rpm_spec_vers_cmp':TRUE, 'allowmaj':TRUE}
];
var flag = 0;
foreach var package_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;
if (!empty_or_null(package_array['reference'])) reference = package_array['reference'];
if (!empty_or_null(package_array['release'])) _release = 'EL' + package_array['release'];
if (!empty_or_null(package_array['sp'])) sp = package_array['sp'];
if (!empty_or_null(package_array['cpu'])) _cpu = package_array['cpu'];
if (!empty_or_null(package_array['el_string'])) el_string = package_array['el_string'];
if (!empty_or_null(package_array['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = package_array['rpm_spec_vers_cmp'];
if (!empty_or_null(package_array['epoch'])) epoch = package_array['epoch'];
if (!empty_or_null(package_array['allowmaj'])) allowmaj = package_array['allowmaj'];
if (!empty_or_null(package_array['exists_check'])) exists_check = package_array['exists_check'];
if (reference && _release) {
if (exists_check) {
if (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)) flag++;
} else {
if (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)) flag++;
}
}
}
if (flag)
{
security_report_v4(
port : 0,
severity : SECURITY_HOLE,
extra : rpm_report_get()
);
exit(0);
}
else
{
var tested = pkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'firefox');
}
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45403
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45404
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45405
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45406
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45408
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45409
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45410
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45411
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45412
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45416
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45418
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45420
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45421
linux.oracle.com/errata/ELSA-2022-8580.html