Lucene search

K
nessusUbuntu Security Notice (C) 2022-2024 Canonical, Inc. / NASL script (C) 2022-2024 and is owned by Tenable, Inc. or an Affiliate thereof.UBUNTU_USN-5278-1.NASL
HistoryFeb 09, 2022 - 12:00 a.m.

Ubuntu 20.04 LTS : Linux kernel (OEM) vulnerabilities (USN-5278-1)

2022-02-0900:00:00
Ubuntu Security Notice (C) 2022-2024 Canonical, Inc. / NASL script (C) 2022-2024 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
35
ubuntu 20.04 lts
kernel vulnerabilities
usn-5278-1
use-after-free
double free
denial of service
driver domains
netback driver
usb gadget subsystem
race condition
memory leak

CVSS2

7.2

Attack Vector

LOCAL

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

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

CVSS3

7.8

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

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

AI Score

8.8

Confidence

High

EPSS

0.001

Percentile

46.9%

The remote Ubuntu 20.04 LTS host has a package installed that is affected by multiple vulnerabilities as referenced in the USN-5278-1 advisory.

It was discovered that the rlimit tracking for user namespaces in the Linux kernel did not properly     perform reference counting, leading to a use-after- free vulnerability. A local attacker could use this to     cause a denial of service or possibly execute arbitrary code. (CVE-2022-24122)

It was discovered that the BPF verifier in the Linux kernel did not properly restrict pointer types in     certain situations. A local attacker could use this to cause a denial of service (system crash) or     possibly execute arbitrary code. (CVE-2022-23222)

Jeremy Cline discovered a use-after-free in the nouveau graphics driver of the Linux kernel during device     removal. A privileged or physically proximate attacker could use this to cause a denial of service (system     crash). (CVE-2020-27820)

It was discovered that the Packet network protocol implementation in the Linux kernel contained a double-     free vulnerability. A local attacker could use this to cause a denial of service (system crash) or     possibly execute arbitrary code. (CVE-2021-22600)

Jrgen Gro discovered that the Xen subsystem within the Linux kernel did not adequately limit the     number of events driver domains (unprivileged PV backends) could send to other guest VMs. An attacker in a     driver domain could use this to cause a denial of service in other guest VMs. (CVE-2021-28713)

Jrgen Gro discovered that the Xen network backend driver in the Linux kernel did not adequately limit     the amount of queued packets when a guest did not process them. An attacker in a guest VM can use this to     cause a denial of service (excessive kernel memory consumption) in the network backend domain.
(CVE-2021-28714, CVE-2021-28715)

Szymon Heidrich discovered that the USB Gadget subsystem in the Linux kernel did not properly restrict the     size of control requests for certain gadget types, leading to possible out of bounds reads or writes. A     local attacker could use this to cause a denial of service (system crash) or possibly execute arbitrary     code. (CVE-2021-39685)

It was discovered that the eBPF implementation in the Linux kernel contained a race condition around read-     only maps. A privileged attacker could use this to modify read-only maps. (CVE-2021-4001)

Jann Horn discovered a race condition in the Unix domain socket implementation in the Linux kernel that     could result in a read-after-free. A local attacker could use this to cause a denial of service (system     crash) or possibly execute arbitrary code. (CVE-2021-4083)

It was discovered that the simulated networking device driver for the Linux kernel did not properly     initialize memory in certain situations. A local attacker could use this to expose sensitive information     (kernel memory). (CVE-2021-4135)

Kirill Tkhai discovered that the XFS file system implementation in the Linux kernel did not calculate size     correctly when pre-allocating space in some situations. A local attacker could use this to expose     sensitive information. (CVE-2021-4155)

Eric Biederman discovered that the cgroup process migration implementation in the Linux kernel did not     perform permission checks correctly in some situations. A local attacker could possibly use this to gain     administrative privileges. (CVE-2021-4197)

Brendan Dolan-Gavitt discovered that the aQuantia AQtion Ethernet device driver in the Linux kernel did     not properly validate meta-data coming from the device. A local attacker who can control an emulated     device can use this to cause a denial of service (system crash) or possibly execute arbitrary code.
(CVE-2021-43975)

It was discovered that the ARM Trusted Execution Environment (TEE) subsystem in the Linux kernel contained     a race condition leading to a use- after-free vulnerability. A local attacker could use this to cause a     denial of service or possibly execute arbitrary code. (CVE-2021-44733)

It was discovered that the Phone Network protocol (PhoNet) implementation in the Linux kernel did not     properly perform reference counting in some error conditions. A local attacker could possibly use this to     cause a denial of service (memory exhaustion). (CVE-2021-45095)

It was discovered that the Reliable Datagram Sockets (RDS) protocol implementation in the Linux kernel did     not properly deallocate memory in some error conditions. A local attacker could possibly use this to cause     a denial of service (memory exhaustion). (CVE-2021-45480)

It was discovered that the BPF subsystem in the Linux kernel did not properly track pointer types on     atomic fetch operations in some situations. A local attacker could use this to expose sensitive     information (kernel pointer addresses). (CVE-2022-0264)

Sushma Venkatesh Reddy discovered that the Intel i915 graphics driver in the Linux kernel did not perform     a GPU TLB flush in some situations. A local attacker could use this to cause a denial of service or     possibly execute arbitrary code. (CVE-2022-0330)

It was discovered that the TIPC Protocol implementation in the Linux kernel did not properly initialize     memory in some situations. A local attacker could use this to expose sensitive information (kernel     memory). (CVE-2022-0382)

It was discovered that the VMware Virtual GPU driver in the Linux kernel did not properly handle certain     failure conditions, leading to a stale entry in the file descriptor table. A local attacker could use this     to expose sensitive information or possibly gain administrative privileges. (CVE-2022-22942)

Tenable has extracted the preceding description block directly from the Ubuntu security advisory.

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 70300
##
# (C) Tenable Network Security, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Ubuntu Security Notice USN-5278-1. The text
# itself is copyright (C) Canonical, Inc. See
# <https://ubuntu.com/security/notices>. Ubuntu(R) is a registered
# trademark of Canonical, Inc.
##

include('deprecated_nasl_level.inc');
include('compat.inc');

if (description)
{
  script_id(157463);
  script_version("1.12");
  script_set_attribute(attribute:"plugin_modification_date", value:"2024/08/27");

  script_cve_id(
    "CVE-2020-27820",
    "CVE-2021-4001",
    "CVE-2021-4083",
    "CVE-2021-4135",
    "CVE-2021-4155",
    "CVE-2021-4197",
    "CVE-2021-22600",
    "CVE-2021-28713",
    "CVE-2021-28714",
    "CVE-2021-28715",
    "CVE-2021-39685",
    "CVE-2021-43975",
    "CVE-2021-44733",
    "CVE-2021-45095",
    "CVE-2021-45480",
    "CVE-2022-0264",
    "CVE-2022-0330",
    "CVE-2022-0382",
    "CVE-2022-22942",
    "CVE-2022-23222",
    "CVE-2022-24122"
  );
  script_xref(name:"USN", value:"5278-1");
  script_xref(name:"CISA-KNOWN-EXPLOITED", value:"2022/05/02");

  script_name(english:"Ubuntu 20.04 LTS : Linux kernel (OEM) vulnerabilities (USN-5278-1)");

  script_set_attribute(attribute:"synopsis", value:
"The remote Ubuntu host is missing one or more security updates.");
  script_set_attribute(attribute:"description", value:
"The remote Ubuntu 20.04 LTS host has a package installed that is affected by multiple vulnerabilities as referenced in
the USN-5278-1 advisory.

    It was discovered that the rlimit tracking for user namespaces in the Linux kernel did not properly
    perform reference counting, leading to a use-after- free vulnerability. A local attacker could use this to
    cause a denial of service or possibly execute arbitrary code. (CVE-2022-24122)

    It was discovered that the BPF verifier in the Linux kernel did not properly restrict pointer types in
    certain situations. A local attacker could use this to cause a denial of service (system crash) or
    possibly execute arbitrary code. (CVE-2022-23222)

    Jeremy Cline discovered a use-after-free in the nouveau graphics driver of the Linux kernel during device
    removal. A privileged or physically proximate attacker could use this to cause a denial of service (system
    crash). (CVE-2020-27820)

    It was discovered that the Packet network protocol implementation in the Linux kernel contained a double-
    free vulnerability. A local attacker could use this to cause a denial of service (system crash) or
    possibly execute arbitrary code. (CVE-2021-22600)

    Jrgen Gro discovered that the Xen subsystem within the Linux kernel did not adequately limit the
    number of events driver domains (unprivileged PV backends) could send to other guest VMs. An attacker in a
    driver domain could use this to cause a denial of service in other guest VMs. (CVE-2021-28713)

    Jrgen Gro discovered that the Xen network backend driver in the Linux kernel did not adequately limit
    the amount of queued packets when a guest did not process them. An attacker in a guest VM can use this to
    cause a denial of service (excessive kernel memory consumption) in the network backend domain.
    (CVE-2021-28714, CVE-2021-28715)

    Szymon Heidrich discovered that the USB Gadget subsystem in the Linux kernel did not properly restrict the
    size of control requests for certain gadget types, leading to possible out of bounds reads or writes. A
    local attacker could use this to cause a denial of service (system crash) or possibly execute arbitrary
    code. (CVE-2021-39685)

    It was discovered that the eBPF implementation in the Linux kernel contained a race condition around read-
    only maps. A privileged attacker could use this to modify read-only maps. (CVE-2021-4001)

    Jann Horn discovered a race condition in the Unix domain socket implementation in the Linux kernel that
    could result in a read-after-free. A local attacker could use this to cause a denial of service (system
    crash) or possibly execute arbitrary code. (CVE-2021-4083)

    It was discovered that the simulated networking device driver for the Linux kernel did not properly
    initialize memory in certain situations. A local attacker could use this to expose sensitive information
    (kernel memory). (CVE-2021-4135)

    Kirill Tkhai discovered that the XFS file system implementation in the Linux kernel did not calculate size
    correctly when pre-allocating space in some situations. A local attacker could use this to expose
    sensitive information. (CVE-2021-4155)

    Eric Biederman discovered that the cgroup process migration implementation in the Linux kernel did not
    perform permission checks correctly in some situations. A local attacker could possibly use this to gain
    administrative privileges. (CVE-2021-4197)

    Brendan Dolan-Gavitt discovered that the aQuantia AQtion Ethernet device driver in the Linux kernel did
    not properly validate meta-data coming from the device. A local attacker who can control an emulated
    device can use this to cause a denial of service (system crash) or possibly execute arbitrary code.
    (CVE-2021-43975)

    It was discovered that the ARM Trusted Execution Environment (TEE) subsystem in the Linux kernel contained
    a race condition leading to a use- after-free vulnerability. A local attacker could use this to cause a
    denial of service or possibly execute arbitrary code. (CVE-2021-44733)

    It was discovered that the Phone Network protocol (PhoNet) implementation in the Linux kernel did not
    properly perform reference counting in some error conditions. A local attacker could possibly use this to
    cause a denial of service (memory exhaustion). (CVE-2021-45095)

    It was discovered that the Reliable Datagram Sockets (RDS) protocol implementation in the Linux kernel did
    not properly deallocate memory in some error conditions. A local attacker could possibly use this to cause
    a denial of service (memory exhaustion). (CVE-2021-45480)

    It was discovered that the BPF subsystem in the Linux kernel did not properly track pointer types on
    atomic fetch operations in some situations. A local attacker could use this to expose sensitive
    information (kernel pointer addresses). (CVE-2022-0264)

    Sushma Venkatesh Reddy discovered that the Intel i915 graphics driver in the Linux kernel did not perform
    a GPU TLB flush in some situations. A local attacker could use this to cause a denial of service or
    possibly execute arbitrary code. (CVE-2022-0330)

    It was discovered that the TIPC Protocol implementation in the Linux kernel did not properly initialize
    memory in some situations. A local attacker could use this to expose sensitive information (kernel
    memory). (CVE-2022-0382)

    It was discovered that the VMware Virtual GPU driver in the Linux kernel did not properly handle certain
    failure conditions, leading to a stale entry in the file descriptor table. A local attacker could use this
    to expose sensitive information or possibly gain administrative privileges. (CVE-2022-22942)

Tenable has extracted the preceding description block directly from the Ubuntu security advisory.

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://ubuntu.com/security/notices/USN-5278-1");
  script_set_attribute(attribute:"solution", value:
"Update the affected kernel package.");
  script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:H/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:H/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2022-23222");
  script_set_attribute(attribute:"cvss3_score_source", value:"CVE-2022-24122");

  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");
  script_set_attribute(attribute:"exploit_framework_core", value:"true");
  script_set_attribute(attribute:"exploited_by_malware", value:"true");
  script_set_attribute(attribute:"metasploit_name", value:'vmwgfx Driver File Descriptor Handling Priv Esc');
  script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");

  script_set_attribute(attribute:"vuln_publication_date", value:"2021/01/11");
  script_set_attribute(attribute:"patch_publication_date", value:"2022/02/09");
  script_set_attribute(attribute:"plugin_publication_date", value:"2022/02/09");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:20.04:-:lts");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:linux-image-5.14.0-1022-oem");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

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

  script_copyright(english:"Ubuntu Security Notice (C) 2022-2024 Canonical, Inc. / NASL script (C) 2022-2024 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("linux_alt_patch_detect.nasl", "ssh_get_info.nasl");
  script_require_keys("Host/cpu", "Host/Ubuntu", "Host/Ubuntu/release", "Host/Debian/dpkg-l");

  exit(0);
}

include('debian_package.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/Ubuntu/release');
if ( isnull(os_release) ) audit(AUDIT_OS_NOT, 'Ubuntu');
os_release = chomp(os_release);
if (! ('20.04' >< os_release)) audit(AUDIT_OS_NOT, 'Ubuntu 20.04', 'Ubuntu ' + os_release);
if ( ! get_kb_item('Host/Debian/dpkg-l') ) 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) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'Ubuntu', cpu);

var kernel_mappings = {
  '20.04': {
    '5.14.0': {
      'oem': '5.14.0-1022'
    }
  }
};

var host_kernel_release = get_kb_item('Host/uptrack-uname-r');
if (empty_or_null(host_kernel_release)) host_kernel_release = get_kb_item_or_exit('Host/uname-r');
var host_kernel_base_version = get_kb_item_or_exit('Host/Debian/kernel-base-version');
var host_kernel_type = get_kb_item_or_exit('Host/Debian/kernel-type');
if(empty_or_null(kernel_mappings[os_release][host_kernel_base_version][host_kernel_type])) audit(AUDIT_INST_VER_NOT_VULN, 'kernel ' + host_kernel_release);

var extra = '';
var kernel_fixed_version = kernel_mappings[os_release][host_kernel_base_version][host_kernel_type] + "-" + host_kernel_type;
if (deb_ver_cmp(ver1:host_kernel_release, ver2:kernel_fixed_version) < 0)
{
  extra += 'Running Kernel level of ' + host_kernel_release + ' does not meet the minimum fixed level of ' + kernel_fixed_version + ' for this advisory.\n\n';
}
  else
{
  audit(AUDIT_PATCH_INSTALLED, 'Kernel package for USN-5278-1');
}

if (get_one_kb_item('Host/ksplice/kernel-cves'))
{
  var cve_list = make_list('CVE-2020-27820', 'CVE-2021-4001', 'CVE-2021-4083', 'CVE-2021-4135', 'CVE-2021-4155', 'CVE-2021-4197', 'CVE-2021-22600', 'CVE-2021-28713', 'CVE-2021-28714', 'CVE-2021-28715', 'CVE-2021-39685', 'CVE-2021-43975', 'CVE-2021-44733', 'CVE-2021-45095', 'CVE-2021-45480', 'CVE-2022-0264', 'CVE-2022-0330', 'CVE-2022-0382', 'CVE-2022-22942', 'CVE-2022-23222', 'CVE-2022-24122');
  if (ksplice_cves_check(cve_list))
  {
    audit(AUDIT_PATCH_INSTALLED, 'KSplice hotfix for USN-5278-1');
  }
  else
  {
    extra = extra + ksplice_reporting_text();
  }
}
if (extra) {
  security_report_v4(
    port       : 0,
    severity   : SECURITY_HOLE,
    extra      : extra
  );
  exit(0);
}

References

CVSS2

7.2

Attack Vector

LOCAL

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

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

CVSS3

7.8

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

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

AI Score

8.8

Confidence

High

EPSS

0.001

Percentile

46.9%