Vulnerabilities > CVE-2020-3898 - Out-of-bounds Write vulnerability in Apple mac OS X

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

Summary

A memory corruption issue was addressed with improved validation. This issue is fixed in macOS Catalina 10.15.4. An application may be able to gain elevated privileges.

Vulnerable Configurations

Part Description Count
OS
Apple
186

Common Weakness Enumeration (CWE)

Nessus

  • NASL familySuSE Local Security Checks
    NASL idOPENSUSE-2020-555.NASL
    descriptionThis update for cups fixes the following issues : - CVE-2020-3898: Fixed a heap buffer overflow in ppdFindOption() (bsc#1168422). This update was imported from the SUSE:SLE-15:Update update project.
    last seen2020-04-30
    modified2020-04-27
    plugin id136012
    published2020-04-27
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/136012
    titleopenSUSE Security Update : cups (openSUSE-2020-555)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from openSUSE Security Update openSUSE-2020-555.
    #
    # The text description of this plugin is (C) SUSE LLC.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(136012);
      script_version("1.1");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/04/27");
    
      script_cve_id("CVE-2020-3898");
    
      script_name(english:"openSUSE Security Update : cups (openSUSE-2020-555)");
      script_summary(english:"Check for the openSUSE-2020-555 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 cups fixes the following issues :
    
      - CVE-2020-3898: Fixed a heap buffer overflow in
        ppdFindOption() (bsc#1168422).
    
    This update was imported from the SUSE:SLE-15:Update update project."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1168422"
      );
      script_set_attribute(attribute:"solution", value:"Update the affected cups packages.");
      script_set_attribute(attribute:"risk_factor", value:"High");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:cups");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:cups-client");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:cups-client-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:cups-config");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:cups-ddk");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:cups-ddk-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:cups-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:cups-debugsource");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:cups-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:cups-devel-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcups2");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcups2-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcups2-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcups2-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupscgi1");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupscgi1-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupscgi1-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupscgi1-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupsimage2");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupsimage2-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupsimage2-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupsimage2-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupsmime1");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupsmime1-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupsmime1-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupsmime1-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupsppdc1");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupsppdc1-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupsppdc1-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libcupsppdc1-debuginfo");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:opensuse:15.1");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2020/04/26");
      script_set_attribute(attribute:"plugin_publication_date", value:"2020/04/27");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
      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 !~ "^(SUSE15\.1)$") audit(AUDIT_OS_RELEASE_NOT, "openSUSE", "15.1", 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:"SUSE15.1", reference:"cups-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"cups-client-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"cups-client-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"cups-config-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"cups-ddk-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"cups-ddk-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"cups-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"cups-debugsource-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"cups-devel-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libcups2-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libcups2-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libcupscgi1-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libcupscgi1-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libcupsimage2-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libcupsimage2-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libcupsmime1-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libcupsmime1-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libcupsppdc1-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libcupsppdc1-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"cups-devel-32bit-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libcups2-32bit-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libcups2-32bit-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libcupscgi1-32bit-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libcupscgi1-32bit-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libcupsimage2-32bit-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libcupsimage2-32bit-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libcupsmime1-32bit-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libcupsmime1-32bit-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libcupsppdc1-32bit-2.2.7-lp151.6.6.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libcupsppdc1-32bit-debuginfo-2.2.7-lp151.6.6.1") ) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_hole(port:0, extra:rpm_report_get());
      else security_hole(0);
      exit(0);
    }
    else
    {
      tested = pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "cups / cups-client / cups-client-debuginfo / cups-config / cups-ddk / etc");
    }
    
  • NASL familyUbuntu Local Security Checks
    NASL idUBUNTU_USN-4340-1.NASL
    descriptionIt was discovered that CUPS incorrectly handled certain language values. A local attacker could possibly use this issue to cause CUPS to crash, leading to a denial of service, or possibly obtain sensitive information. This issue only applied to Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, and Ubuntu 19.10. (CVE-2019-2228) Stephan Zeisberg discovered that CUPS incorrectly handled certain malformed ppd files. A local attacker could possibly use this issue to execute arbitrary code. (CVE-2020-3898). Note that Tenable Network Security has extracted the preceding description block directly from the Ubuntu security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-05-03
    modified2020-04-28
    plugin id136029
    published2020-04-28
    reporterUbuntu Security Notice (C) 2020 Canonical, Inc. / NASL script (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/136029
    titleUbuntu 16.04 LTS / 18.04 LTS / 19.10 / 20.04 : cups vulnerabilities (USN-4340-1)
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2020-5A4DA65166.NASL
    descriptionSecurity fix for CVE-2020-3898 ---- 1822154 - cups.service doesn
    last seen2020-05-08
    modified2020-05-07
    plugin id136378
    published2020-05-07
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/136378
    titleFedora 30 : 1:cups (2020-5a4da65166)
  • NASL familyMacOS X Local Security Checks
    NASL idMACOS_HT211100.NASL
    descriptionThe remote host is running a version of macOS / Mac OS X that is 10.13.x prior to 10.13.6 Security Update 2020-002, 10.14.x prior to 10.14.6 Security Update 2020-002, or 10.15.x prior to 10.15.4. It is, therefore, affected by multiple vulnerabilities : - Insufficient control flow in certain data structures for some Intel(R) Processors with Intel(R) Processor Graphics may allow an unauthenticated user to potentially enable information disclosure via local access. (CVE-2019-14615) - ** DISPUTED ** In Sudo through 1.8.29, an attacker with access to a Runas ALL sudoer account can impersonate a nonexistent user by invoking sudo with a numeric uid that is not associated with any user. NOTE: The software maintainer believes that this is not a vulnerability because running a command via sudo as a user not present in the local password database is an intentional feature. Because this behavior surprised some users, sudo 1.8.30 introduced an option to enable/disable this behavior with the default being disabled. However, this does not change the fact that sudo was behaving as intended, and as documented, in earlier versions. (CVE-2019-19232) - An out-of-bounds read error exists in Bluetooth due to improper input sanitization. An attacker can exploit this to read restricted memory. (CVE-2019-8853) - Privilege escalation vulnerabilities exist in IOThunderboltFamily (due to a use-after-free flaw), and in CUPS (due to a memory corruption issue). An attacker can exploit this to gain elevated access to the system. (CVE-2020-3851, CVE-2020-3898) - An information disclosure vulnerability exists in FaceTime, Icons, and Call History. An unauthenticated, local attacker can exploit this, via malicious applications, to disclose potentially sensitive information. (CVE-2020-3881, CVE-2020-9773, CVE-2020-9776) - An information disclosure vulnerability exists in Sandbox. A local user can exploit this to view sensitvie user information. (CVE-2020-3918) - An unspecified issue exists in AppleMobileFileIntegrity due to an unspecified reason. An attacker can exploit this to use arbitrary entitlements. (CVE-2020-3883) - An arbitrary code execution vulnerability exists in Mail due to improper input validation. An unauthenticated, remote attacker can exploit this to bypass authentication and execute arbitrary JavaScript code. (CVE-2020-3884) - An arbitrary file read vulnerability exists in Time Machine due to improper state management. An unauthenticated, local attacker can exploit this to read arbitrary files and disclose sensitive information. (CVE-2020-3889) - An arbitrary code execution vulnerability exists in AppleGraphicsControl, Bluetooth, IOHIDFamily, and the kernel due to memory initialization and corruption issues. An attacker can exploit this to bypass authentication and execute arbitrary commands with kernel privileges. (CVE-2020-3892, CVE-2020-3893, CVE-2020-3904, CVE-2020-3905, CVE-2020-3919, CVE-2020-9785) - An arbitrary code execution vulnerability exists in Apple HSSPI Support due to a memory corruption issue. An attacker can exploit this to bypass authentication and execute arbitrary commands with system privileges. (CVE-2020-3903) - A logic issue exists in TCC due to an unspecified reason. An attacker can exploit this, via a maliciously crafted application, to cause bypass code signing. (CVE-2020-3906) - An out-of-bounds read error exists in Bluetooth due to improper input validation. An unauthenticated local attacker can exploit this to cause a denial of service or read kernel memory. (CVE-2020-3907, CVE-2020-3908, CVE-2020-3912) - A buffer overflow condition exists in libxml2 due to improper bounds checking and size validation. An attacker can exploit this to cause a denial of service condition or the execution of arbitrary code. (CVE-2020-3909, CVE-2020-3910, CVE-2020-3911) - A privilege escalation vulnerability exists in due to improper permission validation. An unauthenticated, remote attacker can exploit this, to gain elevated access to the system. (CVE-2020-3913) - An information disclosure vulnerability exists in the kernel due to improper memory handling. An attacker can exploit this to read restricted memory. (CVE-2020-3914) - An arbitrary file overwrite vulnerability exists in Printing due improper path handlng. An attacker can exploit this to overwrite arbitrary files. (CVE-2020-3915) - Multiple unspecified issues exist in the Vim installation on macOS. An attacker can exploit this to cause an unknown impact. (CVE-2020-9769) - An unspecified vulnerability exists in sysdiagnose due to insufficient validation of user supplied input. An attacker could exploit this issue with partial impact on the confidentiality, integrity & availability of the application and/or system. (CVE-2020-9786) - An vulnerability exists in WebKit due to a logic flaw in restrictions. An attacker may exploit this flaw, as part of a more elaborate attack, to gain unauthorized access to the MacOS camera. (CVE-2020-9787) Note that Nessus has not tested for this issue but has instead relied only on the operating system
    last seen2020-05-31
    modified2020-03-27
    plugin id134954
    published2020-03-27
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/134954
    titlemacOS 10.15.x < 10.15.4 / 10.14.x < 10.14.6 Security Update 2020-002 / 10.13.x < 10.13.6 Security Update 2020-002
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2020-67C84F3F49.NASL
    descriptionSecurity fix for CVE-2020-3898 ---- 1822154 - cups.service doesn
    last seen2020-05-03
    modified2020-04-30
    plugin id136152
    published2020-04-30
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/136152
    titleFedora 31 : 1:cups (2020-67c84f3f49)
  • NASL familySuSE Local Security Checks
    NASL idSUSE_SU-2020-1083-1.NASL
    descriptionThis update for cups fixes the following issues : CVE-2020-3898: Fixed a heap buffer overflow in ppdFindOption() (bsc#1168422). 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-04-30
    modified2020-04-24
    plugin id135964
    published2020-04-24
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/135964
    titleSUSE SLED15 / SLES15 Security Update : cups (SUSE-SU-2020:1083-1)
  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DLA-2237.NASL
    descriptionThe following CVE(s) were reported against src:cups. CVE-2019-8842 The `ippReadIO` function may under-read an extension field. CVE-2020-3898 There was a heap based buffer overflow in libcups
    last seen2020-06-10
    modified2020-06-08
    plugin id137207
    published2020-06-08
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/137207
    titleDebian DLA-2237-1 : cups security update
  • NASL familySuSE Local Security Checks
    NASL idSUSE_SU-2020-1045-1.NASL
    descriptionThis update for cups fixes the following issues : CVE-2020-3898: Fixed a heap buffer overflow in ppdFindOption() (bsc#1168422). 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-04-30
    modified2020-04-24
    plugin id135961
    published2020-04-24
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/135961
    titleSUSE SLES12 Security Update : cups (SUSE-SU-2020:1045-1)