Vulnerabilities > CVE-2019-9454 - Out-of-bounds Write vulnerability in Google Android

047910
CVSS 6.7 - MEDIUM
Attack vector
LOCAL
Attack complexity
LOW
Privileges required
HIGH
Confidentiality impact
HIGH
Integrity impact
HIGH
Availability impact
HIGH
local
low complexity
google
CWE-787
nessus

Summary

In the Android kernel in i2c driver there is a possible out of bounds write due to memory corruption. This could lead to local escalation of privilege with System execution privileges needed. User interaction is not needed for exploitation.

Vulnerable Configurations

Part Description Count
OS
Google
1

Common Weakness Enumeration (CWE)

Nessus

NASL familyRed Hat Local Security Checks
NASL idREDHAT-RHSA-2020-2104.NASL
descriptionThe remote Redhat Enterprise Linux 7 host has packages installed that are affected by multiple vulnerabilities as referenced in the RHSA-2020:2104 advisory. - kernel: out of bounds write in function i2c_smbus_xfer_emulated in drivers/i2c/i2c-core-smbus.c (CVE-2017-18551) - kernel: double free may be caused by the function allocate_trace_buffer in the file kernel/trace/trace.c (CVE-2017-18595) - kernel: null pointer dereference in dlpar_parse_cc_property in arch/powerrc/platforms/pseries/dlpar.c causing denial of service (CVE-2019-12614) - kernel: denial of service in in xfs_setattr_nonsize in fs/xfs/xfs_iops.c (CVE-2019-15538) - kernel: mounting a crafted ext4 filesystem image, performing some operations, and unmounting can lead to a use-after-free in ext4_put_super in fs/ext4/super.c (CVE-2019-19447) - kernel: a malicious USB device in the drivers/input/ff- memless.c leads to use-after-free (CVE-2019-19524) - kernel: use-after-free in __blk_add_trace in kernel/trace/blktrace.c (CVE-2019-19768) - kernel: out of bounds write in i2c driver leads to local escalation of privilege (CVE-2019-9454) - Kernel: NetLabel: null pointer dereference while receiving CIPSO packet with null category may cause kernel panic (CVE-2020-10711) - kernel: out-of-bounds read in set_fdc in drivers/block/floppy.c (CVE-2020-9383) Note that Nessus has not tested for this issue but has instead relied only on the application
last seen2020-05-15
modified2020-05-12
plugin id136496
published2020-05-12
reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
sourcehttps://www.tenable.com/plugins/nessus/136496
titleRHEL 7 : kernel-alt (RHSA-2020:2104)
code
#
# (C) Tenable Network Security, Inc.
#

# The descriptive text and package checks in this plugin were
# extracted from Red Hat Security Advisory RHSA-2020:2104. The text
# itself is copyright (C) Red Hat, Inc.
#


include('compat.inc');

if (description)
{
  script_id(136496);
  script_version("1.2");
  script_set_attribute(attribute:"plugin_modification_date", value:"2020/05/13");

  script_cve_id(
    "CVE-2017-18551",
    "CVE-2017-18595",
    "CVE-2019-9454",
    "CVE-2019-12614",
    "CVE-2019-15538",
    "CVE-2019-19447",
    "CVE-2019-19524",
    "CVE-2019-19768",
    "CVE-2020-9383",
    "CVE-2020-10711"
  );
  script_bugtraq_id(108550);
  script_xref(name:"RHSA", value:"2020:2104");

  script_name(english:"RHEL 7 : kernel-alt (RHSA-2020:2104)");
  script_summary(english:"Checks the rpm output for the updated packages");

  script_set_attribute(attribute:"synopsis", value:
"The remote Red Hat host is missing one or more security updates.");
  script_set_attribute(attribute:"description", value:
"The remote Redhat Enterprise Linux 7 host has packages installed that are affected by multiple vulnerabilities as
referenced in the RHSA-2020:2104 advisory.

  - kernel: out of bounds write in function
    i2c_smbus_xfer_emulated in drivers/i2c/i2c-core-smbus.c
    (CVE-2017-18551)

  - kernel: double free may be caused by the function
    allocate_trace_buffer in the file kernel/trace/trace.c
    (CVE-2017-18595)

  - kernel: null pointer dereference in
    dlpar_parse_cc_property in
    arch/powerrc/platforms/pseries/dlpar.c causing denial of
    service (CVE-2019-12614)

  - kernel: denial of service in in xfs_setattr_nonsize in
    fs/xfs/xfs_iops.c (CVE-2019-15538)

  - kernel: mounting a crafted ext4 filesystem image,
    performing some operations, and unmounting can lead to a
    use-after-free in ext4_put_super in fs/ext4/super.c
    (CVE-2019-19447)

  - kernel: a malicious USB device in the drivers/input/ff-
    memless.c leads to use-after-free (CVE-2019-19524)

  - kernel: use-after-free in __blk_add_trace in
    kernel/trace/blktrace.c (CVE-2019-19768)

  - kernel: out of bounds write in i2c driver leads to local
    escalation of privilege (CVE-2019-9454)

  - Kernel: NetLabel: null pointer dereference while
    receiving CIPSO packet with null category may cause
    kernel panic (CVE-2020-10711)

  - kernel: out-of-bounds read in set_fdc in
    drivers/block/floppy.c (CVE-2020-9383)

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://cwe.mitre.org/data/definitions/787.html");
  script_set_attribute(attribute:"see_also", value:"https://cwe.mitre.org/data/definitions/416.html");
  script_set_attribute(attribute:"see_also", value:"https://cwe.mitre.org/data/definitions/400.html");
  script_set_attribute(attribute:"see_also", value:"https://cwe.mitre.org/data/definitions/416.html");
  script_set_attribute(attribute:"see_also", value:"https://cwe.mitre.org/data/definitions/416.html");
  script_set_attribute(attribute:"see_also", value:"https://cwe.mitre.org/data/definitions/416.html");
  script_set_attribute(attribute:"see_also", value:"https://cwe.mitre.org/data/definitions/787.html");
  script_set_attribute(attribute:"see_also", value:"https://cwe.mitre.org/data/definitions/119.html");
  script_set_attribute(attribute:"see_also", value:"https://cwe.mitre.org/data/definitions/476.html");
  script_set_attribute(attribute:"see_also", value:"https://cwe.mitre.org/data/definitions/125.html");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/errata/RHSA-2020:2104");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2017-18551");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2017-18595");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2019-12614");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2019-15538");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2019-19447");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2019-19524");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2019-19768");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2019-9454");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2020-10711");
  script_set_attribute(attribute:"see_also", value:"https://access.redhat.com/security/cve/CVE-2020-9383");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/1718176");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/1746777");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/1757368");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/1758671");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/1781679");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/1783459");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/1786164");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/1810685");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/1818818");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.redhat.com/1825116");
  script_set_attribute(attribute:"solution", value:
"Update the affected packages.");
  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:U/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:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2017-18595");

  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_cwe_id(119, 125, 400, 416, 476, 787);

  script_set_attribute(attribute:"vuln_publication_date", value:"2019/06/03");
  script_set_attribute(attribute:"patch_publication_date", value:"2020/05/12");
  script_set_attribute(attribute:"plugin_publication_date", value:"2020/05/12");

  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:"cpe:/o:redhat:enterprise_linux:7::server");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-abi-whitelists");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-bootwrapper");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-debug");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-debug-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-doc");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-headers");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-kdump");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-kdump-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-tools");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-tools-libs");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:kernel-tools-libs-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:perf");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:python-perf");
  script_end_attributes();

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

  script_copyright(english:"This script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("ssh_get_info.nasl", "linux_alt_patch_detect.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/RedHat/release", "Host/RedHat/rpm-list", "Host/cpu");

  exit(0);
}


include('audit.inc');
include('global_settings.inc');
include('misc_func.inc');
include('rpm.inc');
include('ksplice.inc');

if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
release = get_kb_item('Host/RedHat/release');
if (isnull(release) || 'Red Hat' >!< release) audit(AUDIT_OS_NOT, 'Red Hat');
os_ver = pregmatch(pattern: "Red Hat Enterprise Linux.*release ([0-9]+(\.[0-9]+)?)", string:release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, 'Red Hat');
os_ver = os_ver[1];
if (! preg(pattern:"^7([^0-9]|$)", string:os_ver)) 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);

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, 'Red Hat', cpu);

if (get_one_kb_item('Host/ksplice/kernel-cves'))
{
  rm_kb_item(name:'Host/uptrack-uname-r');
  cve_list = make_list('CVE-2017-18551', 'CVE-2017-18595', 'CVE-2019-9454', 'CVE-2019-12614', 'CVE-2019-15538', 'CVE-2019-19447', 'CVE-2019-19524', 'CVE-2019-19768', 'CVE-2020-9383', 'CVE-2020-10711');
  if (ksplice_cves_check(cve_list))
  {
    audit(AUDIT_PATCH_INSTALLED, 'KSplice hotfix for RHSA-2020:2104');
  }
  else
  {
    __rpm_report = ksplice_reporting_text();
  }
}

pkgs = [
    {'reference':'kernel-4.14.0-115.21.2.el7a', 'cpu':'aarch64', 'release':'7'},
    {'reference':'kernel-4.14.0-115.21.2.el7a', 'cpu':'s390x', 'release':'7'},
    {'reference':'kernel-abi-whitelists-4.14.0-115.21.2.el7a', 'release':'7'},
    {'reference':'kernel-debug-4.14.0-115.21.2.el7a', 'cpu':'aarch64', 'release':'7'},
    {'reference':'kernel-debug-4.14.0-115.21.2.el7a', 'cpu':'s390x', 'release':'7'},
    {'reference':'kernel-debug-devel-4.14.0-115.21.2.el7a', 'cpu':'aarch64', 'release':'7'},
    {'reference':'kernel-debug-devel-4.14.0-115.21.2.el7a', 'cpu':'s390x', 'release':'7'},
    {'reference':'kernel-devel-4.14.0-115.21.2.el7a', 'cpu':'aarch64', 'release':'7'},
    {'reference':'kernel-devel-4.14.0-115.21.2.el7a', 'cpu':'s390x', 'release':'7'},
    {'reference':'kernel-headers-4.14.0-115.21.2.el7a', 'cpu':'aarch64', 'release':'7'},
    {'reference':'kernel-headers-4.14.0-115.21.2.el7a', 'cpu':'s390x', 'release':'7'},
    {'reference':'kernel-kdump-4.14.0-115.21.2.el7a', 'cpu':'s390x', 'release':'7'},
    {'reference':'kernel-kdump-devel-4.14.0-115.21.2.el7a', 'cpu':'s390x', 'release':'7'},
    {'reference':'kernel-tools-4.14.0-115.21.2.el7a', 'cpu':'aarch64', 'release':'7'},
    {'reference':'kernel-tools-libs-4.14.0-115.21.2.el7a', 'cpu':'aarch64', 'release':'7'},
    {'reference':'kernel-tools-libs-devel-4.14.0-115.21.2.el7a', 'cpu':'aarch64', 'release':'7'},
    {'reference':'perf-4.14.0-115.21.2.el7a', 'cpu':'aarch64', 'release':'7'},
    {'reference':'perf-4.14.0-115.21.2.el7a', 'cpu':'s390x', 'release':'7'},
    {'reference':'python-perf-4.14.0-115.21.2.el7a', 'cpu':'aarch64', 'release':'7'},
    {'reference':'python-perf-4.14.0-115.21.2.el7a', 'cpu':'s390x', 'release':'7'}
];

flag = 0;
foreach package_array ( pkgs ) {
  reference = NULL;
  release = NULL;
  sp = NULL;
  cpu = NULL;
  el_string = NULL;
  rpm_spec_vers_cmp = NULL;
  epoch = NULL;
  if (!empty_or_null(package_array['reference'])) reference = package_array['reference'];
  if (!empty_or_null(package_array['release'])) release = 'RHEL' + 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 (reference && release) {
    if (rpm_spec_vers_cmp) {
      if (rpm_check(release:release, sp:sp, cpu:cpu, reference:reference, epoch:epoch, el_string:el_string, rpm_spec_vers_cmp:TRUE)) flag++;
    }
    else
    {
      if (rpm_check(release:release, sp:sp, cpu:cpu, reference:reference, epoch:epoch)) flag++;
    }
  }
}

if (flag)
{
  security_report_v4(
      port       : 0,
      severity   : SECURITY_HOLE,
      extra      : rpm_report_get() + redhat_report_package_caveat()
  );
  exit(0);
}
else
{
  tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'kernel / kernel-abi-whitelists / kernel-debug / etc');
}

Redhat

rpms
  • kernel-0:4.14.0-115.21.2.el7a
  • kernel-abi-whitelists-0:4.14.0-115.21.2.el7a
  • kernel-bootwrapper-0:4.14.0-115.21.2.el7a
  • kernel-debug-0:4.14.0-115.21.2.el7a
  • kernel-debug-debuginfo-0:4.14.0-115.21.2.el7a
  • kernel-debug-devel-0:4.14.0-115.21.2.el7a
  • kernel-debuginfo-0:4.14.0-115.21.2.el7a
  • kernel-debuginfo-common-aarch64-0:4.14.0-115.21.2.el7a
  • kernel-debuginfo-common-ppc64le-0:4.14.0-115.21.2.el7a
  • kernel-debuginfo-common-s390x-0:4.14.0-115.21.2.el7a
  • kernel-devel-0:4.14.0-115.21.2.el7a
  • kernel-doc-0:4.14.0-115.21.2.el7a
  • kernel-headers-0:4.14.0-115.21.2.el7a
  • kernel-kdump-0:4.14.0-115.21.2.el7a
  • kernel-kdump-debuginfo-0:4.14.0-115.21.2.el7a
  • kernel-kdump-devel-0:4.14.0-115.21.2.el7a
  • kernel-tools-0:4.14.0-115.21.2.el7a
  • kernel-tools-debuginfo-0:4.14.0-115.21.2.el7a
  • kernel-tools-libs-0:4.14.0-115.21.2.el7a
  • kernel-tools-libs-devel-0:4.14.0-115.21.2.el7a
  • perf-0:4.14.0-115.21.2.el7a
  • perf-debuginfo-0:4.14.0-115.21.2.el7a
  • python-perf-0:4.14.0-115.21.2.el7a
  • python-perf-debuginfo-0:4.14.0-115.21.2.el7a