Vulnerabilities > CVE-2016-2070 - Numeric Errors vulnerability in Linux Kernel

047910
CVSS 7.5 - HIGH
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
NONE
Integrity impact
NONE
Availability impact
HIGH
network
low complexity
linux
CWE-189
nessus

Summary

The tcp_cwnd_reduction function in net/ipv4/tcp_input.c in the Linux kernel before 4.3.5 allows remote attackers to cause a denial of service (divide-by-zero error and system crash) via crafted TCP traffic.

Common Weakness Enumeration (CWE)

Nessus

  • NASL familyHuawei Local Security Checks
    NASL idEULEROS_SA-2019-1472.NASL
    descriptionAccording to the versions of the kernel packages installed, the EulerOS Virtualization for ARM 64 installation on the remote host is affected by the following vulnerabilities : - The hid_input_field() function in
    last seen2020-03-19
    modified2019-05-13
    plugin id124796
    published2019-05-13
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/124796
    titleEulerOS Virtualization for ARM 64 3.0.1.0 : kernel (EulerOS-SA-2019-1472)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(124796);
      script_version("1.6");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/03/19");
    
      script_cve_id(
        "CVE-2013-2892",
        "CVE-2014-2568",
        "CVE-2014-7843",
        "CVE-2014-9420",
        "CVE-2014-9529",
        "CVE-2014-9730",
        "CVE-2016-2070",
        "CVE-2016-2383",
        "CVE-2016-3134",
        "CVE-2016-4568",
        "CVE-2016-6327",
        "CVE-2016-7915",
        "CVE-2016-9754",
        "CVE-2017-16525",
        "CVE-2017-18079",
        "CVE-2017-18204",
        "CVE-2017-7261",
        "CVE-2017-9605",
        "CVE-2018-1094",
        "CVE-2018-16276"
      );
      script_bugtraq_id(
        62049,
        66348,
        71082,
        71717,
        71880,
        74964
      );
    
      script_name(english:"EulerOS Virtualization for ARM 64 3.0.1.0 : kernel (EulerOS-SA-2019-1472)");
      script_summary(english:"Checks the rpm output for the updated packages.");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote EulerOS Virtualization for ARM 64 host is missing multiple security
    updates.");
      script_set_attribute(attribute:"description", value:
    "According to the versions of the kernel packages installed, the
    EulerOS Virtualization for ARM 64 installation on the remote host is
    affected by the following vulnerabilities :
    
      - The hid_input_field() function in
        'drivers/hid/hid-core.c' in the Linux kernel before 4.6
        allows physically proximate attackers to obtain
        sensitive information from kernel memory or cause a
        denial of service (out-of-bounds read) by connecting a
        device.(CVE-2016-7915i1/4%0
    
      - The Linux kernel, before version 4.14.2, is vulnerable
        to a deadlock caused by
        fs/ocfs2/file.c:ocfs2_setattr(), as the function does
        not wait for DIO requests before locking the inode.
        This can be exploited by local users to cause a
        subsequent denial of service.(CVE-2017-18204i1/4%0
    
      - The vmw_gb_surface_define_ioctl function (accessible
        via DRM_IOCTL_VMW_GB_SURFACE_CREATE) in
        drivers/gpu/drm/vmwgfx/vmwgfx_surface.c in the Linux
        kernel through 4.11.4 defines a backup_handle variable
        but does not give it an initial value. If one attempts
        to create a GB surface, with a previously allocated DMA
        buffer to be used as a backup buffer, the backup_handle
        variable does not get written to and is then later
        returned to user space, allowing local users to obtain
        sensitive information from uninitialized kernel memory
        via a crafted ioctl call.(CVE-2017-9605i1/4%0
    
      - Use-after-free vulnerability in the nfqnl_zcopy
        function in net/netfilter/nfnetlink_queue_core.c in the
        Linux kernel through 3.13.6 allows attackers to obtain
        sensitive information from kernel memory by leveraging
        the absence of a certain orphaning operation. NOTE: the
        affected code was moved to the skb_zerocopy function in
        net/core/skbuff.c before the vulnerability was
        announced.(CVE-2014-2568i1/4%0
    
      - It was found that the Linux kernel's ISO file system
        implementation did not correctly limit the traversal of
        Rock Ridge extension Continuation Entries (CE). An
        attacker with physical access to the system could use
        this flaw to trigger an infinite loop in the kernel,
        resulting in a denial of service.(CVE-2014-9420i1/4%0
    
      - An integer overflow vulnerability was found in the
        ring_buffer_resize() calculations in which a privileged
        user can adjust the size of the ringbuffer message
        size. These calculations can create an issue where the
        kernel memory allocator will not allocate the correct
        count of pages yet expect them to be usable. This can
        lead to the ftrace() output to appear to corrupt kernel
        memory and possibly be used for privileged escalation
        or more likely kernel panic.(CVE-2016-9754i1/4%0
    
      - A symlink size validation was missing in Linux kernels
        built with UDF file system (CONFIG_UDF_FS) support,
        allowing the corruption of kernel memory. An attacker
        able to mount a corrupted/malicious UDF file system
        image could cause the kernel to crash.(CVE-2014-9730i1/4%0
    
      - In was found that in the Linux kernel, in
        vmw_surface_define_ioctl() function in
        'drivers/gpu/drm/vmwgfx/vmwgfx_surface.c' file, a
        'num_sizes' parameter is assigned a user-controlled
        value which is not checked if it is zero. This is used
        in a call to kmalloc() and later leads to dereferencing
        ZERO_SIZE_PTR, which in turn leads to a GPF and
        possibly to a kernel panic.(CVE-2017-7261i1/4%0
    
      - A race condition flaw was found in the way the Linux
        kernel keys management subsystem performed key garbage
        collection. A local attacker could attempt accessing a
        key while it was being garbage collected, which would
        cause the system to crash.(CVE-2014-9529i1/4%0
    
      - A flaw was found in the Linux kernel's implementation
        of i8042 serial ports. An attacker could cause a kernel
        panic if they are able to add and remove devices as the
        module is loaded.(CVE-2017-18079i1/4%0
    
      - drivers/hid/hid-pl.c in the Human Interface Device
        (HID) subsystem in the Linux kernel through 3.11, when
        CONFIG_HID_PANTHERLORD is enabled, allows physically
        proximate attackers to cause a denial of service
        (heap-based out-of-bounds write) via a crafted
        device.(CVE-2013-2892i1/4%0
    
      - The __clear_user function in
        arch/arm64/lib/clear_user.S in the Linux kernel before
        3.17.4 on the ARM64 platform allows local users to
        cause a denial of service (system crash) by reading one
        byte beyond a /dev/zero page boundary.(CVE-2014-7843i1/4%0
    
      - A divide-by-zero vulnerability was found in a way the
        kernel processes TCP connections. The error can occur
        if a connection starts another cwnd reduction phase by
        setting tp-i1/4zprior_cwnd to the current cwnd (0) in
        tcp_init_cwnd_reduction(). A remote, unauthenticated
        attacker could use this flaw to crash the kernel
        (denial of service).(CVE-2016-2070i1/4%0
    
      - The adjust_branches function in kernel/bpf/verifier.c
        in the Linux kernel before 4.5 does not consider the
        delta in the backward-jump case, which allows local
        users to obtain sensitive information from kernel
        memory by creating a packet filter and then loading
        crafted BPF instructions.(CVE-2016-2383i1/4%0
    
      - System using the infiniband support module ib_srpt were
        vulnerable to a denial of service by system crash by a
        local attacker who is able to abort writes to a device
        using this initiator.(CVE-2016-6327i1/4%0
    
      - A security flaw was found in the Linux kernel in the
        mark_source_chains() function in
        'net/ipv4/netfilter/ip_tables.c'. It is possible for a
        user-supplied 'ipt_entry' structure to have a large
        'next_offset' field. This field is not bounds checked
        prior to writing to a counter value at the supplied
        offset.(CVE-2016-3134i1/4%0
    
      - An out-of-bounds access issue was discovered in
        yurex_read() in drivers/usb/misc/yurex.c in the Linux
        kernel. A local attacker could use user access
        read/writes with incorrect bounds checking in the yurex
        USB driver to crash the kernel or potentially escalate
        privileges.(CVE-2018-16276i1/4%0
    
      - drivers/media/v4l2-core/videobuf2-v4l2.c in the Linux
        kernel before 4.5.3 allows local users to cause a
        denial of service (kernel memory write operation) or
        possibly have unspecified other impact via a crafted
        number of planes in a VIDIOC_DQBUF ioctl
        call.(CVE-2016-4568i1/4%0
    
      - The usb_serial_console_disconnect function in
        drivers/usb/serial/console.c in the Linux kernel,
        before 4.13.8, allows local users to cause a denial of
        service (use-after-free and system crash) or possibly
        have unspecified other impact via a crafted USB device,
        related to disconnection and failed
        setup.(CVE-2017-16525i1/4%0
    
      - The Linux kernel is vulnerable to a NULL pointer
        dereference in the ext4/xattr.c:ext4_xattr_inode_hash()
        function. An attacker could trick a legitimate user or
        a privileged attacker could exploit this to cause a
        NULL pointer dereference with a crafted ext4 image.
        (CVE-2018-1094)
    
    Note that Tenable Network Security has extracted the preceding
    description block directly from the EulerOS security advisory. Tenable
    has attempted to automatically clean and format it as much as possible
    without introducing additional issues.");
      # https://developer.huaweicloud.com/ict/en/site-euleros/euleros/security-advisories/EulerOS-SA-2019-1472
      script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?349d271e");
      script_set_attribute(attribute:"solution", value:
    "Update the affected kernel 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:POC/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:P/RL:O/RC:C");
      script_set_attribute(attribute:"cvss_score_source", value:"CVE-2018-16276");
      script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"true");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2019/05/09");
      script_set_attribute(attribute:"plugin_publication_date", value:"2019/05/13");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-headers");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-tools");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-tools-libs");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-tools-libs-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:perf");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:python-perf");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:huawei:euleros:uvp:3.0.1.0");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_family(english:"Huawei Local Security Checks");
    
      script_copyright(english:"This script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/cpu", "Host/EulerOS/release", "Host/EulerOS/rpm-list", "Host/EulerOS/uvp_version");
    
      exit(0);
    }
    
    include("audit.inc");
    include("global_settings.inc");
    include("rpm.inc");
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    
    release = get_kb_item("Host/EulerOS/release");
    if (isnull(release) || release !~ "^EulerOS") audit(AUDIT_OS_NOT, "EulerOS");
    uvp = get_kb_item("Host/EulerOS/uvp_version");
    if (uvp != "3.0.1.0") audit(AUDIT_OS_NOT, "EulerOS Virtualization 3.0.1.0");
    if (!get_kb_item("Host/EulerOS/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$" && "aarch64" >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "EulerOS", cpu);
    if ("aarch64" >!< cpu) audit(AUDIT_ARCH_NOT, "aarch64", cpu);
    
    flag = 0;
    
    pkgs = ["kernel-4.19.28-1.2.117",
            "kernel-devel-4.19.28-1.2.117",
            "kernel-headers-4.19.28-1.2.117",
            "kernel-tools-4.19.28-1.2.117",
            "kernel-tools-libs-4.19.28-1.2.117",
            "kernel-tools-libs-devel-4.19.28-1.2.117",
            "perf-4.19.28-1.2.117",
            "python-perf-4.19.28-1.2.117"];
    
    foreach (pkg in pkgs)
      if (rpm_check(release:"EulerOS-2.0", reference:pkg)) flag++;
    
    if (flag)
    {
      security_report_v4(
        port       : 0,
        severity   : SECURITY_HOLE,
        extra      : rpm_report_get()
      );
      exit(0);
    }
    else
    {
      tested = pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "kernel");
    }
    
  • NASL familyHuawei Local Security Checks
    NASL idEULEROS_SA-2019-1491.NASL
    descriptionAccording to the versions of the kernel packages installed, the EulerOS Virtualization installation on the remote host is affected by the following vulnerabilities : - A use-after-free flaw was found in the way the Linux kernel
    last seen2020-03-19
    modified2019-05-13
    plugin id124815
    published2019-05-13
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/124815
    titleEulerOS Virtualization 3.0.1.0 : kernel (EulerOS-SA-2019-1491)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(124815);
      script_version("1.5");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/03/19");
    
      script_cve_id(
        "CVE-2016-0728",
        "CVE-2016-0758",
        "CVE-2016-0821",
        "CVE-2016-0823",
        "CVE-2016-10044",
        "CVE-2016-10088",
        "CVE-2016-10200",
        "CVE-2016-10208",
        "CVE-2016-10229",
        "CVE-2016-1575",
        "CVE-2016-1576",
        "CVE-2016-2053",
        "CVE-2016-2069",
        "CVE-2016-2070",
        "CVE-2016-2117",
        "CVE-2016-2184",
        "CVE-2016-2185",
        "CVE-2016-2186",
        "CVE-2016-2187",
        "CVE-2016-2188",
        "CVE-2016-2384",
        "CVE-2016-2543",
        "CVE-2016-2544"
      );
    
      script_name(english:"EulerOS Virtualization 3.0.1.0 : kernel (EulerOS-SA-2019-1491)");
      script_summary(english:"Checks the rpm output for the updated packages.");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote EulerOS Virtualization host is missing multiple security
    updates.");
      script_set_attribute(attribute:"description", value:
    "According to the versions of the kernel packages installed, the
    EulerOS Virtualization installation on the remote host is affected by
    the following vulnerabilities :
    
      - A use-after-free flaw was found in the way the Linux
        kernel's key management subsystem handled keyring
        object reference counting in certain error path of the
        join_session_keyring() function. A local, unprivileged
        user could use this flaw to escalate their privileges
        on the system.(CVE-2016-0728)
    
      - A flaw was found in the way the Linux kernel's ASN.1
        DER decoder processed certain certificate files with
        tags of indefinite length. A local, unprivileged user
        could use a specially crafted X.509 certificate DER
        file to crash the system or, potentially, escalate
        their privileges on the system.(CVE-2016-0758)
    
      - The LIST_POISON feature in include/linux/poison.h in
        the Linux kernel before 4.3, as used in Android 6.0.1
        before 2016-03-01, does not properly consider the
        relationship to the mmap_min_addr value, which makes it
        easier for attackers to bypass a poison-pointer
        protection mechanism by triggering the use of an
        uninitialized list entry, aka Android internal bug
        26186802, a different vulnerability than
        CVE-2015-3636.(CVE-2016-0821)
    
      - The pagemap_open function in fs/proc/task_mmu.c in the
        Linux kernel before 3.19.3, as used in Android 6.0.1
        before 2016-03-01, allows local users to obtain
        sensitive physical-address information by reading a
        pagemap file, aka Android internal bug
        25739721.(CVE-2016-0823)
    
      - The aio_mount function in fs/aio.c in the Linux kernel
        does not properly restrict execute access, which makes
        it easier for local users to bypass intended SELinux
        W^X policy restrictions.(CVE-2016-10044)
    
      - It was found that the fix for CVE-2016-9576 was
        incomplete: the Linux kernel's sg implementation did
        not properly restrict write operations in situations
        where the KERNEL_DS option is set. A local attacker to
        read or write to arbitrary kernel memory locations or
        cause a denial of service (use-after-free) by
        leveraging write access to a /dev/sg
        device.(CVE-2016-10088)
    
      - A use-after-free flaw was found in the Linux kernel
        which enables a race condition in the L2TPv3 IP
        Encapsulation feature. A local user could use this flaw
        to escalate their privileges or crash the
        system.(CVE-2016-10200)
    
      - Mounting a crafted EXT4 image read-only leads to an
        attacker controlled memory corruption and
        SLAB-Out-of-Bounds reads.(CVE-2016-10208)
    
      - The Linux kernel allows remote attackers to execute
        arbitrary code via UDP traffic that triggers an unsafe
        second checksum calculation during execution of a recv
        system call with the MSG_PEEK flag. This may create a
        kernel panic or memory corruption leading to privilege
        escalation.(CVE-2016-10229)
    
      - The overlayfs implementation in the Linux kernel
        through 4.5.2 does not properly maintain POSIX ACL
        xattr data, which allows local users to gain privileges
        by leveraging a group-writable setgid
        directory.(CVE-2016-1575)
    
      - The overlayfs implementation in the Linux kernel
        through 4.5.2 does not properly restrict the mount
        namespace, which allows local users to gain privileges
        by mounting an overlayfs filesystem on top of a FUSE
        filesystem, and then executing a crafted setuid
        program.(CVE-2016-1576)
    
      - A syntax vulnerability was discovered in the kernel's
        ASN1.1 DER decoder, which could lead to memory
        corruption or a complete local denial of service
        through x509 certificate DER files. A local system user
        could use a specially created key file to trigger
        BUG_ON() in the public_key_verify_signature() function
        (crypto/asymmetric_keys/public_key.c), to cause a
        kernel panic and crash the system.(CVE-2016-2053)
    
      - A flaw was discovered in the way the Linux kernel dealt
        with paging structures. When the kernel invalidated a
        paging structure that was not in use locally, it could,
        in principle, race against another CPU that is
        switching to a process that uses the paging structure
        in question. A local user could use a thread running
        with a stale cached virtual-i1/4zphysical translation to
        potentially escalate their privileges if the
        translation in question were writable and the physical
        page got reused for something critical (for example, a
        page table).(CVE-2016-2069)
    
      - A divide-by-zero vulnerability was found in a way the
        kernel processes TCP connections. The error can occur
        if a connection starts another cwnd reduction phase by
        setting tp-i1/4zprior_cwnd to the current cwnd (0) in
        tcp_init_cwnd_reduction(). A remote, unauthenticated
        attacker could use this flaw to crash the kernel
        (denial of service).(CVE-2016-2070)
    
      - It was discovered that the atl2_probe() function in the
        Atheros L2 Ethernet driver in the Linux kernel
        incorrectly enabled scatter/gather I/O. A remote
        attacker could use this flaw to obtain potentially
        sensitive information from the kernel
        memory.(CVE-2016-2117)
    
      - The create_fixed_stream_quirk function in
        sound/usb/quirks.c in the snd-usb-audio driver in the
        Linux kernel before 4.5.1 allows physically proximate
        attackers to cause a denial of service (NULL pointer
        dereference or double free, and system crash) via a
        crafted endpoints value in a USB device
        descriptor.(CVE-2016-2184)
    
      - The ati_remote2_probe function in
        drivers/input/misc/ati_remote2.c in the Linux kernel
        before 4.5.1 allows physically proximate attackers to
        cause a denial of service (NULL pointer dereference and
        system crash) via a crafted endpoints value in a USB
        device descriptor.(CVE-2016-2185)
    
      - The powermate_probe function in
        drivers/input/misc/powermate.c in the Linux kernel
        before 4.5.1 allows physically proximate attackers to
        cause a denial of service (NULL pointer dereference and
        system crash) via a crafted endpoints value in a USB
        device descriptor.(CVE-2016-2186)
    
      - The gtco_probe function in drivers/input/tablet/gtco.c
        in the Linux kernel through 4.5.2 allows physically
        proximate attackers to cause a denial of service (NULL
        pointer dereference and system crash) via a crafted
        endpoints value in a USB device
        descriptor.(CVE-2016-2187)
    
      - The iowarrior_probe function in
        drivers/usb/misc/iowarrior.c in the Linux kernel before
        4.5.1 allows physically proximate attackers to cause a
        denial of service (NULL pointer dereference and system
        crash) via a crafted endpoints value in a USB device
        descriptor.(CVE-2016-2188)
    
      - A flaw was found in the USB-MIDI Linux kernel driver: a
        double-free error could be triggered for the 'umidi'
        object. An attacker with physical access to the system
        could use this flaw to escalate their
        privileges.(CVE-2016-2384)
    
      - The snd_seq_ioctl_remove_events function in
        sound/core/seq/seq_clientmgr.c in the Linux kernel
        before 4.4.1 does not verify FIFO assignment before
        proceeding with FIFO clearing, which allows local users
        to cause a denial of service (NULL pointer dereference
        and OOPS) via a crafted ioctl call.(CVE-2016-2543)
    
      - Race condition in the queue_delete function in
        sound/core/seq/seq_queue.c in the Linux kernel before
        4.4.1 allows local users to cause a denial of service
        (use-after-free and system crash) by making an ioctl
        call at a certain time.(CVE-2016-2544)
    
    Note that Tenable Network Security has extracted the preceding
    description block directly from the EulerOS security advisory. Tenable
    has attempted to automatically clean and format it as much as possible
    without introducing additional issues.");
      # https://developer.huaweicloud.com/ict/en/site-euleros/euleros/security-advisories/EulerOS-SA-2019-1491
      script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?2d818220");
      script_set_attribute(attribute:"solution", value:
    "Update the affected kernel packages.");
      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:H/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:H/RL:O/RC:C");
      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:"patch_publication_date", value:"2019/05/09");
      script_set_attribute(attribute:"plugin_publication_date", value:"2019/05/13");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-headers");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-tools");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-tools-libs");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-tools-libs-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:perf");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:python-perf");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:huawei:euleros:uvp:3.0.1.0");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_family(english:"Huawei Local Security Checks");
    
      script_copyright(english:"This script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/cpu", "Host/EulerOS/release", "Host/EulerOS/rpm-list", "Host/EulerOS/uvp_version");
    
      exit(0);
    }
    
    include("audit.inc");
    include("global_settings.inc");
    include("rpm.inc");
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    
    release = get_kb_item("Host/EulerOS/release");
    if (isnull(release) || release !~ "^EulerOS") audit(AUDIT_OS_NOT, "EulerOS");
    uvp = get_kb_item("Host/EulerOS/uvp_version");
    if (uvp != "3.0.1.0") audit(AUDIT_OS_NOT, "EulerOS Virtualization 3.0.1.0");
    if (!get_kb_item("Host/EulerOS/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$" && "aarch64" >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "EulerOS", cpu);
    if ("x86_64" >!< cpu && cpu !~ "^i[3-6]86$") audit(AUDIT_ARCH_NOT, "i686 / x86_64", cpu);
    
    flag = 0;
    
    pkgs = ["kernel-3.10.0-862.14.1.6_42",
            "kernel-devel-3.10.0-862.14.1.6_42",
            "kernel-headers-3.10.0-862.14.1.6_42",
            "kernel-tools-3.10.0-862.14.1.6_42",
            "kernel-tools-libs-3.10.0-862.14.1.6_42",
            "kernel-tools-libs-devel-3.10.0-862.14.1.6_42",
            "perf-3.10.0-862.14.1.6_42",
            "python-perf-3.10.0-862.14.1.6_42"];
    
    foreach (pkg in pkgs)
      if (rpm_check(release:"EulerOS-2.0", reference:pkg)) flag++;
    
    if (flag)
    {
      security_report_v4(
        port       : 0,
        severity   : SECURITY_HOLE,
        extra      : rpm_report_get()
      );
      exit(0);
    }
    else
    {
      tested = pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "kernel");
    }