Vulnerabilities > CVE-2016-10317 - Improper Restriction of Operations within the Bounds of a Memory Buffer vulnerability in Artifex Ghostscript 9.20

047910
CVSS 7.8 - HIGH
Attack vector
LOCAL
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
HIGH
Integrity impact
HIGH
Availability impact
HIGH
local
low complexity
artifex
CWE-119
nessus

Summary

The fill_threshhold_buffer function in base/gxht_thresh.c in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (heap-based buffer overflow and application crash) or possibly have unspecified other impact via a crafted PostScript document.

Vulnerable Configurations

Part Description Count
Application
Artifex
1

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Buffer Overflow via Environment Variables
    This attack pattern involves causing a buffer overflow through manipulation of environment variables. Once the attacker finds that they can modify an environment variable, they may try to overflow associated buffers. This attack leverages implicit trust often placed in environment variables.
  • Overflow Buffers
    Buffer Overflow attacks target improper or missing bounds checking on buffer operations, typically triggered by input injected by an attacker. As a consequence, an attacker is able to write past the boundaries of allocated buffer regions in memory, causing a program crash or potentially redirection of execution as per the attackers' choice.
  • Client-side Injection-induced Buffer Overflow
    This type of attack exploits a buffer overflow vulnerability in targeted client software through injection of malicious content from a custom-built hostile service.
  • Filter Failure through Buffer Overflow
    In this attack, the idea is to cause an active filter to fail by causing an oversized transaction. An attacker may try to feed overly long input strings to the program in an attempt to overwhelm the filter (by causing a buffer overflow) and hoping that the filter does not fail securely (i.e. the user input is let into the system unfiltered).
  • MIME Conversion
    An attacker exploits a weakness in the MIME conversion routine to cause a buffer overflow and gain control over the mail server machine. The MIME system is designed to allow various different information formats to be interpreted and sent via e-mail. Attack points exist when data are converted to MIME compatible format and back.

Nessus

  • NASL familySuSE Local Security Checks
    NASL idOPENSUSE-2018-157.NASL
    descriptionThis update for ghostscript fixes several security issues : - CVE-2017-9835: The gs_alloc_ref_array function allowed remote attackers to cause a denial of service (heap-based buffer overflow and application crash) or possibly have unspecified other impact via a crafted PostScript document (bsc#1050879). - CVE-2017-9216: Prevent NULL pointer dereference in the jbig2_huffman_get function in jbig2_huffman.c which allowed for DoS (bsc#1040643). - CVE-2016-10317: The fill_threshhold_buffer function in base/gxht_thresh.c allowed remote attackers to cause a denial of service (heap-based buffer overflow and application crash) or possibly have unspecified other impact via a crafted PostScript document (bsc#1032230). - CVE-2017-9612: The Ins_IP function in base/ttinterp.c allowed remote attackers to cause a denial of service (use-after-free and application crash) or possibly have unspecified other impact via a crafted document (bsc#1050891). - CVE-2017-9726: The Ins_MDRP function in base/ttinterp.c allowed remote attackers to cause a denial of service (heap-based buffer over-read and application crash) or possibly have unspecified other impact via a crafted document (bsc#1050889). - CVE-2017-9727: The gx_ttfReader__Read function in base/gxttfb.c allowed remote attackers to cause a denial of service (heap-based buffer over-read and application crash) or possibly have unspecified other impact via a crafted document (bsc#1050888). - CVE-2017-9739: The Ins_JMPR function in base/ttinterp.c allowed remote attackers to cause a denial of service (heap-based buffer over-read and application crash) or possibly have unspecified other impact via a crafted document (bsc#1050887). - CVE-2017-11714: psi/ztoken.c mishandled references to the scanner state structure, which allowed remote attackers to cause a denial of service (application crash) or possibly have unspecified other impact via a crafted PostScript document, related to an out-of-bounds read in the igc_reloc_struct_ptr function in psi/igc.c (bsc#1051184). - CVE-2016-10219: The intersect function in base/gxfill.c allowed remote attackers to cause a denial of service (divide-by-zero error and application crash) via a crafted file (bsc#1032138). This update was imported from the SUSE:SLE-12:Update update project.
    last seen2020-06-05
    modified2018-02-12
    plugin id106744
    published2018-02-12
    reporterThis script is Copyright (C) 2018-2020 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/106744
    titleopenSUSE Security Update : ghostscript (openSUSE-2018-157)
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from openSUSE Security Update openSUSE-2018-157.
    #
    # The text description of this plugin is (C) SUSE LLC.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(106744);
      script_version("3.2");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/06/04");
    
      script_cve_id("CVE-2016-10219", "CVE-2016-10317", "CVE-2017-11714", "CVE-2017-9216", "CVE-2017-9612", "CVE-2017-9726", "CVE-2017-9727", "CVE-2017-9739", "CVE-2017-9835");
    
      script_name(english:"openSUSE Security Update : ghostscript (openSUSE-2018-157)");
      script_summary(english:"Check for the openSUSE-2018-157 patch");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote openSUSE host is missing a security update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "This update for ghostscript fixes several security issues :
    
      - CVE-2017-9835: The gs_alloc_ref_array function allowed
        remote attackers to cause a denial of service
        (heap-based buffer overflow and application crash) or
        possibly have unspecified other impact via a crafted
        PostScript document (bsc#1050879).
    
      - CVE-2017-9216: Prevent NULL pointer dereference in the
        jbig2_huffman_get function in jbig2_huffman.c which
        allowed for DoS (bsc#1040643).
    
      - CVE-2016-10317: The fill_threshhold_buffer function in
        base/gxht_thresh.c allowed remote attackers to cause a
        denial of service (heap-based buffer overflow and
        application crash) or possibly have unspecified other
        impact via a crafted PostScript document (bsc#1032230).
    
      - CVE-2017-9612: The Ins_IP function in base/ttinterp.c
        allowed remote attackers to cause a denial of service
        (use-after-free and application crash) or possibly have
        unspecified other impact via a crafted document
        (bsc#1050891).
    
      - CVE-2017-9726: The Ins_MDRP function in base/ttinterp.c
        allowed remote attackers to cause a denial of service
        (heap-based buffer over-read and application crash) or
        possibly have unspecified other impact via a crafted
        document (bsc#1050889).
    
      - CVE-2017-9727: The gx_ttfReader__Read function in
        base/gxttfb.c allowed remote attackers to cause a denial
        of service (heap-based buffer over-read and application
        crash) or possibly have unspecified other impact via a
        crafted document (bsc#1050888).
    
      - CVE-2017-9739: The Ins_JMPR function in base/ttinterp.c
        allowed remote attackers to cause a denial of service
        (heap-based buffer over-read and application crash) or
        possibly have unspecified other impact via a crafted
        document (bsc#1050887).
    
      - CVE-2017-11714: psi/ztoken.c mishandled references to
        the scanner state structure, which allowed remote
        attackers to cause a denial of service (application
        crash) or possibly have unspecified other impact via a
        crafted PostScript document, related to an out-of-bounds
        read in the igc_reloc_struct_ptr function in psi/igc.c
        (bsc#1051184).
    
      - CVE-2016-10219: The intersect function in base/gxfill.c
        allowed remote attackers to cause a denial of service
        (divide-by-zero error and application crash) via a
        crafted file (bsc#1032138).
    
    This update was imported from the SUSE:SLE-12:Update update project."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1032138"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1032230"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1040643"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1050879"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1050887"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1050888"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1050889"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1050891"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1051184"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Update the affected ghostscript packages."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P");
      script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ghostscript");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ghostscript-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ghostscript-debugsource");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ghostscript-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ghostscript-mini");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ghostscript-mini-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ghostscript-mini-debugsource");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ghostscript-mini-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ghostscript-x11");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ghostscript-x11-debuginfo");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:opensuse:42.3");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2018/02/12");
      script_set_attribute(attribute:"plugin_publication_date", value:"2018/02/12");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2018-2020 Tenable Network Security, Inc.");
      script_family(english:"SuSE Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/SuSE/release", "Host/SuSE/rpm-list", "Host/cpu");
    
      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/SuSE/release");
    if (isnull(release) || release =~ "^(SLED|SLES)") audit(AUDIT_OS_NOT, "openSUSE");
    if (release !~ "^(SUSE42\.3)$") audit(AUDIT_OS_RELEASE_NOT, "openSUSE", "42.3", release);
    if (!get_kb_item("Host/SuSE/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    ourarch = get_kb_item("Host/cpu");
    if (!ourarch) audit(AUDIT_UNKNOWN_ARCH);
    if (ourarch !~ "^(i586|i686|x86_64)$") audit(AUDIT_ARCH_NOT, "i586 / i686 / x86_64", ourarch);
    
    flag = 0;
    
    if ( rpm_check(release:"SUSE42.3", reference:"ghostscript-9.15-14.3.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"ghostscript-debuginfo-9.15-14.3.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"ghostscript-debugsource-9.15-14.3.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"ghostscript-devel-9.15-14.3.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"ghostscript-mini-9.15-14.3.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"ghostscript-mini-debuginfo-9.15-14.3.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"ghostscript-mini-debugsource-9.15-14.3.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"ghostscript-mini-devel-9.15-14.3.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"ghostscript-x11-9.15-14.3.1") ) flag++;
    if ( rpm_check(release:"SUSE42.3", reference:"ghostscript-x11-debuginfo-9.15-14.3.1") ) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_warning(port:0, extra:rpm_report_get());
      else security_warning(0);
      exit(0);
    }
    else
    {
      tested = pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "ghostscript-mini / ghostscript-mini-debuginfo / etc");
    }
    
  • NASL familyHuawei Local Security Checks
    NASL idEULEROS_SA-2019-2370.NASL
    descriptionAccording to the versions of the ghostscript packages installed, the EulerOS installation on the remote host is affected by the following vulnerabilities : - In Artifex Ghostscript before 9.26, a carefully crafted PDF file can trigger an extremely long running computation when parsing the file.(CVE-2018-19478) - The gs_makewordimagedevice function in base/gsdevmem.c in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (NULL pointer dereference and application crash) via a crafted file that is mishandled in the PDF Transparency module.(CVE-2016-10220) - Artifex jbig2dec 0.13 has a heap-based buffer over-read leading to denial of service (application crash) or disclosure of sensitive information from process memory, because of an integer overflow in the jbig2_decode_symbol_dict function in jbig2_symbol_dict.c in libjbig2dec.a during operation on a crafted .jb2 file.(CVE-2017-7885) - Artifex jbig2dec 0.13, as used in Ghostscript, allows out-of-bounds writes because of an integer overflow in the jbig2_build_huffman_table function in jbig2_huffman.c during operations on a crafted JBIG2 file, leading to a denial of service (application crash) or possibly execution of arbitrary code.(CVE-2017-7975) - psi/ztoken.c in Artifex Ghostscript 9.21 mishandles references to the scanner state structure, which allows remote attackers to cause a denial of service (application crash) or possibly have unspecified other impact via a crafted PostScript document, related to an out-of-bounds read in the igc_reloc_struct_ptr function in psi/igc.c.(CVE-2017-11714) - The gs_alloc_ref_array function in psi/ialloc.c in Artifex Ghostscript 9.21 allows remote attackers to cause a denial of service (heap-based buffer overflow and application crash) or possibly have unspecified other impact via a crafted PostScript document. This is related to a lack of an integer overflow check in base/gsalloc.c.(CVE-2017-9835) - The pdf14_pop_transparency_group function in base/gdevp14.c in the PDF Transparency module in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (NULL pointer dereference and application crash) via a crafted file.(CVE-2016-10218) - The fill_threshhold_buffer function in base/gxht_thresh.c in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (heap-based buffer overflow and application crash) or possibly have unspecified other impact via a crafted PostScript document.(CVE-2016-10317) - The pdf14_open function in base/gdevp14.c in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (use-after-free and application crash) via a crafted file that is mishandled in the color management module.(CVE-2016-10217) - The intersect function in base/gxfill.c in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (divide-by-zero error and application crash) via a crafted file.(CVE-2016-10219) - The mem_get_bits_rectangle function in base/gdevmem.c in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (NULL pointer dereference and application crash) via a crafted file.(CVE-2017-5951) 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.
    last seen2020-05-08
    modified2019-12-10
    plugin id131862
    published2019-12-10
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/131862
    titleEulerOS 2.0 SP2 : ghostscript (EulerOS-SA-2019-2370)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(131862);
      script_version("1.3");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/05/07");
    
      script_cve_id(
        "CVE-2016-10217",
        "CVE-2016-10218",
        "CVE-2016-10219",
        "CVE-2016-10220",
        "CVE-2016-10317",
        "CVE-2017-11714",
        "CVE-2017-5951",
        "CVE-2017-7885",
        "CVE-2017-7975",
        "CVE-2017-9835",
        "CVE-2018-19478"
      );
    
      script_name(english:"EulerOS 2.0 SP2 : ghostscript (EulerOS-SA-2019-2370)");
      script_summary(english:"Checks the rpm output for the updated packages.");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote EulerOS host is missing multiple security updates.");
      script_set_attribute(attribute:"description", value:
    "According to the versions of the ghostscript packages installed, the
    EulerOS installation on the remote host is affected by the following
    vulnerabilities :
    
      - In Artifex Ghostscript before 9.26, a carefully crafted
        PDF file can trigger an extremely long running
        computation when parsing the file.(CVE-2018-19478)
    
      - The gs_makewordimagedevice function in base/gsdevmem.c
        in Artifex Software, Inc. Ghostscript 9.20 allows
        remote attackers to cause a denial of service (NULL
        pointer dereference and application crash) via a
        crafted file that is mishandled in the PDF Transparency
        module.(CVE-2016-10220)
    
      - Artifex jbig2dec 0.13 has a heap-based buffer over-read
        leading to denial of service (application crash) or
        disclosure of sensitive information from process
        memory, because of an integer overflow in the
        jbig2_decode_symbol_dict function in
        jbig2_symbol_dict.c in libjbig2dec.a during operation
        on a crafted .jb2 file.(CVE-2017-7885)
    
      - Artifex jbig2dec 0.13, as used in Ghostscript, allows
        out-of-bounds writes because of an integer overflow in
        the jbig2_build_huffman_table function in
        jbig2_huffman.c during operations on a crafted JBIG2
        file, leading to a denial of service (application
        crash) or possibly execution of arbitrary
        code.(CVE-2017-7975)
    
      - psi/ztoken.c in Artifex Ghostscript 9.21 mishandles
        references to the scanner state structure, which allows
        remote attackers to cause a denial of service
        (application crash) or possibly have unspecified other
        impact via a crafted PostScript document, related to an
        out-of-bounds read in the igc_reloc_struct_ptr function
        in psi/igc.c.(CVE-2017-11714)
    
      - The gs_alloc_ref_array function in psi/ialloc.c in
        Artifex Ghostscript 9.21 allows remote attackers to
        cause a denial of service (heap-based buffer overflow
        and application crash) or possibly have unspecified
        other impact via a crafted PostScript document. This is
        related to a lack of an integer overflow check in
        base/gsalloc.c.(CVE-2017-9835)
    
      - The pdf14_pop_transparency_group function in
        base/gdevp14.c in the PDF Transparency module in
        Artifex Software, Inc. Ghostscript 9.20 allows remote
        attackers to cause a denial of service (NULL pointer
        dereference and application crash) via a crafted
        file.(CVE-2016-10218)
    
      - The fill_threshhold_buffer function in
        base/gxht_thresh.c in Artifex Software, Inc.
        Ghostscript 9.20 allows remote attackers to cause a
        denial of service (heap-based buffer overflow and
        application crash) or possibly have unspecified other
        impact via a crafted PostScript
        document.(CVE-2016-10317)
    
      - The pdf14_open function in base/gdevp14.c in Artifex
        Software, Inc. Ghostscript 9.20 allows remote attackers
        to cause a denial of service (use-after-free and
        application crash) via a crafted file that is
        mishandled in the color management
        module.(CVE-2016-10217)
    
      - The intersect function in base/gxfill.c in Artifex
        Software, Inc. Ghostscript 9.20 allows remote attackers
        to cause a denial of service (divide-by-zero error and
        application crash) via a crafted file.(CVE-2016-10219)
    
      - The mem_get_bits_rectangle function in base/gdevmem.c
        in Artifex Software, Inc. Ghostscript 9.20 allows
        remote attackers to cause a denial of service (NULL
        pointer dereference and application crash) via a
        crafted file.(CVE-2017-5951)
    
    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-2370
      script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?12e3aad4");
      script_set_attribute(attribute:"solution", value:
    "Update the affected ghostscript packages.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P");
      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:N/UI:R/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:"exploitability_ease", value:"No known exploits are available");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2019/12/04");
      script_set_attribute(attribute:"plugin_publication_date", value:"2019/12/10");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:ghostscript");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:ghostscript-cups");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:huawei:euleros:2.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/EulerOS/release", "Host/EulerOS/rpm-list", "Host/EulerOS/sp");
      script_exclude_keys("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");
    if (release !~ "^EulerOS release 2\.0(\D|$)") audit(AUDIT_OS_NOT, "EulerOS 2.0");
    
    sp = get_kb_item("Host/EulerOS/sp");
    if (isnull(sp) || sp !~ "^(2)$") audit(AUDIT_OS_NOT, "EulerOS 2.0 SP2");
    
    uvp = get_kb_item("Host/EulerOS/uvp_version");
    if (!empty_or_null(uvp)) audit(AUDIT_OS_NOT, "EulerOS 2.0 SP2", "EulerOS UVP " + uvp);
    
    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 = ["ghostscript-9.07-31.6.h15",
            "ghostscript-cups-9.07-31.6.h15"];
    
    foreach (pkg in pkgs)
      if (rpm_check(release:"EulerOS-2.0", sp:"2", reference:pkg)) flag++;
    
    if (flag)
    {
      security_report_v4(
        port       : 0,
        severity   : SECURITY_WARNING,
        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, "ghostscript");
    }
    
  • NASL familyHuawei Local Security Checks
    NASL idEULEROS_SA-2019-2586.NASL
    descriptionAccording to the versions of the ghostscript packages installed, the EulerOS installation on the remote host is affected by the following vulnerabilities : - Artifex jbig2dec 0.13 has a heap-based buffer over-read leading to denial of service (application crash) or disclosure of sensitive information from process memory, because of an integer overflow in the jbig2_decode_symbol_dict function in jbig2_symbol_dict.c in libjbig2dec.a during operation on a crafted .jb2 file.(CVE-2017-7885) - Artifex jbig2dec 0.13, as used in Ghostscript, allows out-of-bounds writes because of an integer overflow in the jbig2_build_huffman_table function in jbig2_huffman.c during operations on a crafted JBIG2 file, leading to a denial of service (application crash) or possibly execution of arbitrary code.(CVE-2017-7975) - ghostscript before version 9.21 is vulnerable to a heap based buffer overflow that was found in the ghostscript jbig2_decode_gray_scale_image function which is used to decode halftone segments in a JBIG2 image. A document (PostScript or PDF) with an embedded, specially crafted, jbig2 image could trigger a segmentation fault in ghostscript.(CVE-2016-9601) - libjbig2dec.a in Artifex jbig2dec 0.13, as used in MuPDF and Ghostscript, has a NULL pointer dereference in the jbig2_huffman_get function in jbig2_huffman.c. For example, the jbig2dec utility will crash (segmentation fault) when parsing an invalid file.(CVE-2017-9216) - psi/ztoken.c in Artifex Ghostscript 9.21 mishandles references to the scanner state structure, which allows remote attackers to cause a denial of service (application crash) or possibly have unspecified other impact via a crafted PostScript document, related to an out-of-bounds read in the igc_reloc_struct_ptr function in psi/igc.c.(CVE-2017-11714) - The fill_threshhold_buffer function in base/gxht_thresh.c in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (heap-based buffer overflow and application crash) or possibly have unspecified other impact via a crafted PostScript document.(CVE-2016-10317) - The gs_alloc_ref_array function in psi/ialloc.c in Artifex Ghostscript 9.21 allows remote attackers to cause a denial of service (heap-based buffer overflow and application crash) or possibly have unspecified other impact via a crafted PostScript document. This is related to a lack of an integer overflow check in base/gsalloc.c.(CVE-2017-9835) - The gs_makewordimagedevice function in base/gsdevmem.c in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (NULL pointer dereference and application crash) via a crafted file that is mishandled in the PDF Transparency module.(CVE-2016-10220) - The intersect function in base/gxfill.c in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (divide-by-zero error and application crash) via a crafted file.(CVE-2016-10219) - The mem_get_bits_rectangle function in base/gdevmem.c in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (NULL pointer dereference and application crash) via a crafted file.(CVE-2017-5951) - The pdf14_open function in base/gdevp14.c in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (use-after-free and application crash) via a crafted file that is mishandled in the color management module.(CVE-2016-10217) - The pdf14_pop_transparency_group function in base/gdevp14.c in the PDF Transparency module in Artifex Software, Inc. Ghostscript 9.20 allows remote attackers to cause a denial of service (NULL pointer dereference and application crash) via a crafted file.(CVE-2016-10218) 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.
    last seen2020-05-08
    modified2019-12-18
    plugin id132121
    published2019-12-18
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/132121
    titleEulerOS 2.0 SP3 : ghostscript (EulerOS-SA-2019-2586)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(132121);
      script_version("1.3");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/05/07");
    
      script_cve_id(
        "CVE-2016-10217",
        "CVE-2016-10218",
        "CVE-2016-10219",
        "CVE-2016-10220",
        "CVE-2016-10317",
        "CVE-2016-9601",
        "CVE-2017-11714",
        "CVE-2017-5951",
        "CVE-2017-7885",
        "CVE-2017-7975",
        "CVE-2017-9216",
        "CVE-2017-9835"
      );
    
      script_name(english:"EulerOS 2.0 SP3 : ghostscript (EulerOS-SA-2019-2586)");
      script_summary(english:"Checks the rpm output for the updated packages.");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote EulerOS host is missing multiple security updates.");
      script_set_attribute(attribute:"description", value:
    "According to the versions of the ghostscript packages installed, the
    EulerOS installation on the remote host is affected by the following
    vulnerabilities :
    
      - Artifex jbig2dec 0.13 has a heap-based buffer over-read
        leading to denial of service (application crash) or
        disclosure of sensitive information from process
        memory, because of an integer overflow in the
        jbig2_decode_symbol_dict function in
        jbig2_symbol_dict.c in libjbig2dec.a during operation
        on a crafted .jb2 file.(CVE-2017-7885)
    
      - Artifex jbig2dec 0.13, as used in Ghostscript, allows
        out-of-bounds writes because of an integer overflow in
        the jbig2_build_huffman_table function in
        jbig2_huffman.c during operations on a crafted JBIG2
        file, leading to a denial of service (application
        crash) or possibly execution of arbitrary
        code.(CVE-2017-7975)
    
      - ghostscript before version 9.21 is vulnerable to a heap
        based buffer overflow that was found in the ghostscript
        jbig2_decode_gray_scale_image function which is used to
        decode halftone segments in a JBIG2 image. A document
        (PostScript or PDF) with an embedded, specially
        crafted, jbig2 image could trigger a segmentation fault
        in ghostscript.(CVE-2016-9601)
    
      - libjbig2dec.a in Artifex jbig2dec 0.13, as used in
        MuPDF and Ghostscript, has a NULL pointer dereference
        in the jbig2_huffman_get function in jbig2_huffman.c.
        For example, the jbig2dec utility will crash
        (segmentation fault) when parsing an invalid
        file.(CVE-2017-9216)
    
      - psi/ztoken.c in Artifex Ghostscript 9.21 mishandles
        references to the scanner state structure, which allows
        remote attackers to cause a denial of service
        (application crash) or possibly have unspecified other
        impact via a crafted PostScript document, related to an
        out-of-bounds read in the igc_reloc_struct_ptr function
        in psi/igc.c.(CVE-2017-11714)
    
      - The fill_threshhold_buffer function in
        base/gxht_thresh.c in Artifex Software, Inc.
        Ghostscript 9.20 allows remote attackers to cause a
        denial of service (heap-based buffer overflow and
        application crash) or possibly have unspecified other
        impact via a crafted PostScript
        document.(CVE-2016-10317)
    
      - The gs_alloc_ref_array function in psi/ialloc.c in
        Artifex Ghostscript 9.21 allows remote attackers to
        cause a denial of service (heap-based buffer overflow
        and application crash) or possibly have unspecified
        other impact via a crafted PostScript document. This is
        related to a lack of an integer overflow check in
        base/gsalloc.c.(CVE-2017-9835)
    
      - The gs_makewordimagedevice function in base/gsdevmem.c
        in Artifex Software, Inc. Ghostscript 9.20 allows
        remote attackers to cause a denial of service (NULL
        pointer dereference and application crash) via a
        crafted file that is mishandled in the PDF Transparency
        module.(CVE-2016-10220)
    
      - The intersect function in base/gxfill.c in Artifex
        Software, Inc. Ghostscript 9.20 allows remote attackers
        to cause a denial of service (divide-by-zero error and
        application crash) via a crafted file.(CVE-2016-10219)
    
      - The mem_get_bits_rectangle function in base/gdevmem.c
        in Artifex Software, Inc. Ghostscript 9.20 allows
        remote attackers to cause a denial of service (NULL
        pointer dereference and application crash) via a
        crafted file.(CVE-2017-5951)
    
      - The pdf14_open function in base/gdevp14.c in Artifex
        Software, Inc. Ghostscript 9.20 allows remote attackers
        to cause a denial of service (use-after-free and
        application crash) via a crafted file that is
        mishandled in the color management
        module.(CVE-2016-10217)
    
      - The pdf14_pop_transparency_group function in
        base/gdevp14.c in the PDF Transparency module in
        Artifex Software, Inc. Ghostscript 9.20 allows remote
        attackers to cause a denial of service (NULL pointer
        dereference and application crash) via a crafted
        file.(CVE-2016-10218)
    
    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-2586
      script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?77dd57d9");
      script_set_attribute(attribute:"solution", value:
    "Update the affected ghostscript packages.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P");
      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:N/UI:R/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:"exploitability_ease", value:"No known exploits are available");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2019/12/18");
      script_set_attribute(attribute:"plugin_publication_date", value:"2019/12/18");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:ghostscript");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:ghostscript-cups");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:huawei:euleros:2.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/EulerOS/release", "Host/EulerOS/rpm-list", "Host/EulerOS/sp");
      script_exclude_keys("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");
    if (release !~ "^EulerOS release 2\.0(\D|$)") audit(AUDIT_OS_NOT, "EulerOS 2.0");
    
    sp = get_kb_item("Host/EulerOS/sp");
    if (isnull(sp) || sp !~ "^(3)$") audit(AUDIT_OS_NOT, "EulerOS 2.0 SP3");
    
    uvp = get_kb_item("Host/EulerOS/uvp_version");
    if (!empty_or_null(uvp)) audit(AUDIT_OS_NOT, "EulerOS 2.0 SP3", "EulerOS UVP " + uvp);
    
    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 = ["ghostscript-9.07-31.6.h15",
            "ghostscript-cups-9.07-31.6.h15"];
    
    foreach (pkg in pkgs)
      if (rpm_check(release:"EulerOS-2.0", sp:"3", reference:pkg)) flag++;
    
    if (flag)
    {
      security_report_v4(
        port       : 0,
        severity   : SECURITY_WARNING,
        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, "ghostscript");
    }
    
  • NASL familySuSE Local Security Checks
    NASL idSUSE_SU-2018-0407-1.NASL
    descriptionThis update for ghostscript fixes several issues. These security issues were fixed : - CVE-2017-9835: The gs_alloc_ref_array function allowed remote attackers to cause a denial of service (heap-based buffer overflow and application crash) or possibly have unspecified other impact via a crafted PostScript document (bsc#1050879). - CVE-2017-9216: Prevent NULL pointer dereference in the jbig2_huffman_get function in jbig2_huffman.c which allowed for DoS (bsc#1040643). - CVE-2016-10317: The fill_threshhold_buffer function in base/gxht_thresh.c allowed remote attackers to cause a denial of service (heap-based buffer overflow and application crash) or possibly have unspecified other impact via a crafted PostScript document (bsc#1032230). - CVE-2017-9612: The Ins_IP function in base/ttinterp.c allowed remote attackers to cause a denial of service (use-after-free and application crash) or possibly have unspecified other impact via a crafted document (bsc#1050891). - CVE-2017-9726: The Ins_MDRP function in base/ttinterp.c allowed remote attackers to cause a denial of service (heap-based buffer over-read and application crash) or possibly have unspecified other impact via a crafted document (bsc#1050889). - CVE-2017-9727: The gx_ttfReader__Read function in base/gxttfb.c allowed remote attackers to cause a denial of service (heap-based buffer over-read and application crash) or possibly have unspecified other impact via a crafted document (bsc#1050888). - CVE-2017-9739: The Ins_JMPR function in base/ttinterp.c allowed remote attackers to cause a denial of service (heap-based buffer over-read and application crash) or possibly have unspecified other impact via a crafted document (bsc#1050887). - CVE-2017-11714: psi/ztoken.c mishandled references to the scanner state structure, which allowed remote attackers to cause a denial of service (application crash) or possibly have unspecified other impact via a crafted PostScript document, related to an out-of-bounds read in the igc_reloc_struct_ptr function in psi/igc.c (bsc#1051184). - CVE-2016-10219: The intersect function in base/gxfill.c allowed remote attackers to cause a denial of service (divide-by-zero error and application crash) via a crafted file (bsc#1032138). Note that Tenable Network Security has extracted the preceding description block directly from the SUSE security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-01
    modified2020-06-02
    plugin id106745
    published2018-02-12
    reporterThis script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/106745
    titleSUSE SLED12 / SLES12 Security Update : ghostscript (SUSE-SU-2018:0407-1)