Vulnerabilities > CVE-2018-6057 - Incorrect Permission Assignment for Critical Resource vulnerability in multiple products
Attack vector
NETWORK Attack complexity
LOW Privileges required
NONE Confidentiality impact
HIGH Integrity impact
HIGH Availability impact
HIGH Summary
Lack of special casing of Android ashmem in Google Chrome prior to 65.0.3325.146 allowed a remote attacker who had compromised the renderer process to bypass inter-process read only guarantees via a crafted HTML page.
Vulnerable Configurations
Common Weakness Enumeration (CWE)
Common Attack Pattern Enumeration and Classification (CAPEC)
- Accessing Functionality Not Properly Constrained by ACLs In applications, particularly web applications, access to functionality is mitigated by the authorization framework, whose job it is to map ACLs to elements of the application's functionality; particularly URL's for web apps. In the case that the administrator failed to specify an ACL for a particular element, an attacker may be able to access it with impunity. An attacker with the ability to access functionality not properly constrained by ACLs can obtain sensitive information and possibly compromise the entire application. Such an attacker can access resources that must be available only to users at a higher privilege level, can access management sections of the application or can run queries for data that he is otherwise not supposed to.
- Privilege Abuse An adversary is able to exploit features of the target that should be reserved for privileged users or administrators but are exposed to use by lower or non-privileged accounts. Access to sensitive information and functionality must be controlled to ensure that only authorized users are able to access these resources. If access control mechanisms are absent or misconfigured, a user may be able to access resources that are intended only for higher level users. An adversary may be able to exploit this to utilize a less trusted account to gain information and perform activities reserved for more trusted accounts. This attack differs from privilege escalation and other privilege stealing attacks in that the adversary never actually escalates their privileges but instead is able to use a lesser degree of privilege to access resources that should be (but are not) reserved for higher privilege accounts. Likewise, the adversary does not exploit trust or subvert systems - all control functionality is working as configured but the configuration does not adequately protect sensitive resources at an appropriate level.
- Directory Indexing An adversary crafts a request to a target that results in the target listing/indexing the content of a directory as output. One common method of triggering directory contents as output is to construct a request containing a path that terminates in a directory name rather than a file name since many applications are configured to provide a list of the directory's contents when such a request is received. An adversary can use this to explore the directory tree on a target as well as learn the names of files. This can often end up revealing test files, backup files, temporary files, hidden files, configuration files, user accounts, script contents, as well as naming conventions, all of which can be used by an attacker to mount additional attacks.
- Accessing, Modifying or Executing Executable Files An attack of this type exploits a system's configuration that allows an attacker to either directly access an executable file, for example through shell access; or in a possible worst case allows an attacker to upload a file and then execute it. Web servers, ftp servers, and message oriented middleware systems which have many integration points are particularly vulnerable, because both the programmers and the administrators must be in synch regarding the interfaces and the correct privileges for each interface.
- Exploiting Incorrectly Configured Access Control Security Levels An attacker exploits a weakness in the configuration of access controls and is able to bypass the intended protection that these measures guard against and thereby obtain unauthorized access to the system or network. Sensitive functionality should always be protected with access controls. However configuring all but the most trivial access control systems can be very complicated and there are many opportunities for mistakes. If an attacker can learn of incorrectly configured access security settings, they may be able to exploit this in an attack. Most commonly, attackers would take advantage of controls that provided too little protection for sensitive activities in order to perform actions that should be denied to them. In some circumstances, an attacker may be able to take advantage of overly restrictive access control policies, initiating denial of services (if an application locks because it unexpectedly failed to be granted access) or causing other legitimate actions to fail due to security. The latter class of attacks, however, is usually less severe and easier to detect than attacks based on inadequate security restrictions. This attack pattern differs from CAPEC 1, "Accessing Functionality Not Properly Constrained by ACLs" in that the latter describes attacks where sensitive functionality lacks access controls, where, in this pattern, the access control is present, but incorrectly configured.
Nessus
NASL family Gentoo Local Security Checks NASL id GENTOO_GLSA-201803-05.NASL description The remote host is affected by the vulnerability described in GLSA-201803-05 (Chromium, Google Chrome: Multiple vulnerabilities) Multiple vulnerabilities have been discovered in Chromium and Google Chrome. Please review the referenced CVE identifiers and Google Chrome Releases for details. Impact : A remote attacker could possibly execute arbitrary code with the privileges of the process, cause a Denial of Service condition, bypass content security controls, or conduct URL spoofing. Workaround : There is no known workaround at this time. last seen 2020-06-01 modified 2020-06-02 plugin id 108317 published 2018-03-14 reporter This script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof. source https://www.tenable.com/plugins/nessus/108317 title GLSA-201803-05 : Chromium, Google Chrome: Multiple vulnerabilities code # # (C) Tenable Network Security, Inc. # # The descriptive text and package checks in this plugin were # extracted from Gentoo Linux Security Advisory GLSA 201803-05. # # The advisory text is Copyright (C) 2001-2018 Gentoo Foundation, Inc. # and licensed under the Creative Commons - Attribution / Share Alike # license. See http://creativecommons.org/licenses/by-sa/3.0/ # include("compat.inc"); if (description) { script_id(108317); script_version("1.5"); script_cvs_date("Date: 2019/04/05 23:25:06"); script_cve_id("CVE-2018-6057", "CVE-2018-6058", "CVE-2018-6059", "CVE-2018-6060", "CVE-2018-6061", "CVE-2018-6062", "CVE-2018-6063", "CVE-2018-6064", "CVE-2018-6065", "CVE-2018-6066", "CVE-2018-6067", "CVE-2018-6068", "CVE-2018-6069", "CVE-2018-6070", "CVE-2018-6071", "CVE-2018-6072", "CVE-2018-6073", "CVE-2018-6074", "CVE-2018-6075", "CVE-2018-6076", "CVE-2018-6077", "CVE-2018-6078", "CVE-2018-6079", "CVE-2018-6080", "CVE-2018-6081", "CVE-2018-6082", "CVE-2018-6083"); script_xref(name:"GLSA", value:"201803-05"); script_name(english:"GLSA-201803-05 : Chromium, Google Chrome: Multiple vulnerabilities"); script_summary(english:"Checks for updated package(s) in /var/db/pkg"); script_set_attribute( attribute:"synopsis", value: "The remote Gentoo host is missing one or more security-related patches." ); script_set_attribute( attribute:"description", value: "The remote host is affected by the vulnerability described in GLSA-201803-05 (Chromium, Google Chrome: Multiple vulnerabilities) Multiple vulnerabilities have been discovered in Chromium and Google Chrome. Please review the referenced CVE identifiers and Google Chrome Releases for details. Impact : A remote attacker could possibly execute arbitrary code with the privileges of the process, cause a Denial of Service condition, bypass content security controls, or conduct URL spoofing. Workaround : There is no known workaround at this time." ); # https://chromereleases.googleblog.com/2018/03/stable-channel-update-for-desktop.html script_set_attribute( attribute:"see_also", value:"http://www.nessus.org/u?68129919" ); script_set_attribute( attribute:"see_also", value:"https://security.gentoo.org/glsa/201803-05" ); script_set_attribute( attribute:"solution", value: "All Chromium users should upgrade to the latest version: # emerge --sync # emerge --ask --oneshot --verbose '>=www-client/chromium-65.0.3325.146' All Google Chrome users should upgrade to the latest version: # emerge --sync # emerge --ask --oneshot --verbose '>=www-client/google-chrome-65.0.3325.146'" ); 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:POC/RL:OF/RC:C"); script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:R/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:"exploitability_ease", value:"Exploits are available"); script_set_attribute(attribute:"exploit_available", value:"true"); script_set_attribute(attribute:"plugin_type", value:"local"); script_set_attribute(attribute:"cpe", value:"p-cpe:/a:gentoo:linux:chromium"); script_set_attribute(attribute:"cpe", value:"p-cpe:/a:gentoo:linux:google-chrome"); script_set_attribute(attribute:"cpe", value:"cpe:/o:gentoo:linux"); script_set_attribute(attribute:"patch_publication_date", value:"2018/03/13"); script_set_attribute(attribute:"plugin_publication_date", value:"2018/03/14"); script_end_attributes(); script_category(ACT_GATHER_INFO); script_copyright(english:"This script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof."); script_family(english:"Gentoo Local Security Checks"); script_dependencies("ssh_get_info.nasl"); script_require_keys("Host/local_checks_enabled", "Host/Gentoo/release", "Host/Gentoo/qpkg-list"); exit(0); } include("audit.inc"); include("global_settings.inc"); include("qpkg.inc"); if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED); if (!get_kb_item("Host/Gentoo/release")) audit(AUDIT_OS_NOT, "Gentoo"); if (!get_kb_item("Host/Gentoo/qpkg-list")) audit(AUDIT_PACKAGE_LIST_MISSING); flag = 0; if (qpkg_check(package:"www-client/chromium", unaffected:make_list("ge 65.0.3325.146"), vulnerable:make_list("lt 65.0.3325.146"))) flag++; if (qpkg_check(package:"www-client/google-chrome", unaffected:make_list("ge 65.0.3325.146"), vulnerable:make_list("lt 65.0.3325.146"))) flag++; if (flag) { if (report_verbosity > 0) security_warning(port:0, extra:qpkg_report_get()); else security_warning(0); exit(0); } else { tested = qpkg_tests_get(); if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested); else audit(AUDIT_PACKAGE_NOT_INSTALLED, "Chromium / Google Chrome"); }
NASL family MacOS X Local Security Checks NASL id MACOSX_GOOGLE_CHROME_65_0_3325_107.NASL description The version of Google Chrome installed on the remote host is prior to 65.0.3325.146. It is, therefore, affected by multiple unspecified vulnerabilities as noted in Chrome stable channel update release notes for March 6th, 2018. Please refer to the release notes for additional information. Note that Nessus has not attempted to exploit these issues but has instead relied only on the application last seen 2020-06-01 modified 2020-06-02 plugin id 107221 published 2018-03-08 reporter This script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof. source https://www.tenable.com/plugins/nessus/107221 title Google Chrome < 65.0.3325.146 Multiple Vulnerabilities (macOS) code # # (C) Tenable Network Security, Inc. # include("compat.inc"); if (description) { script_id(107221); script_version("1.7"); script_cvs_date("Date: 2019/11/08"); script_cve_id( "CVE-2017-11215", "CVE-2017-11225", "CVE-2018-6057", "CVE-2018-6060", "CVE-2018-6061", "CVE-2018-6062", "CVE-2018-6063", "CVE-2018-6064", "CVE-2018-6065", "CVE-2018-6066", "CVE-2018-6067", "CVE-2018-6068", "CVE-2018-6069", "CVE-2018-6070", "CVE-2018-6071", "CVE-2018-6072", "CVE-2018-6073", "CVE-2018-6074", "CVE-2018-6075", "CVE-2018-6076", "CVE-2018-6077", "CVE-2018-6078", "CVE-2018-6079", "CVE-2018-6080", "CVE-2018-6081", "CVE-2018-6082", "CVE-2018-6083" ); script_bugtraq_id(101837); script_name(english:"Google Chrome < 65.0.3325.146 Multiple Vulnerabilities (macOS)"); script_summary(english:"Checks the version of Google Chrome."); script_set_attribute(attribute:"synopsis", value: "A web browser installed on the remote host is affected by multiple vulnerabilities."); script_set_attribute(attribute:"description", value: "The version of Google Chrome installed on the remote host is prior to 65.0.3325.146. It is, therefore, affected by multiple unspecified vulnerabilities as noted in Chrome stable channel update release notes for March 6th, 2018. Please refer to the release notes for additional information. Note that Nessus has not attempted to exploit these issues but has instead relied only on the application's self-reported version number."); # https://chromereleases.googleblog.com/2018/03/stable-channel-update-for-desktop.html script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?68129919"); script_set_attribute(attribute:"solution", value: "Upgrade to Google Chrome version 65.0.3325.146 or later."); 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:POC/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:P/RL:O/RC:C"); script_set_attribute(attribute:"cvss_score_source", value:"CVE-2017-11225"); script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available"); script_set_attribute(attribute:"exploit_available", value:"true"); script_set_attribute(attribute:"vuln_publication_date", value:"2018/03/06"); script_set_attribute(attribute:"patch_publication_date", value:"2018/03/06"); script_set_attribute(attribute:"plugin_publication_date", value:"2018/03/08"); script_set_attribute(attribute:"plugin_type", value:"local"); script_set_attribute(attribute:"cpe", value:"cpe:/a:google:chrome"); script_end_attributes(); script_category(ACT_GATHER_INFO); script_family(english:"MacOS X Local Security Checks"); script_copyright(english:"This script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof."); script_dependencies("macosx_google_chrome_installed.nbin"); script_require_keys("MacOSX/Google Chrome/Installed"); exit(0); } include("google_chrome_version.inc"); get_kb_item_or_exit("MacOSX/Google Chrome/Installed"); google_chrome_check_version(fix:'65.0.3325.146', severity:SECURITY_HOLE);
NASL family Windows NASL id GOOGLE_CHROME_65_0_3325_107.NASL description The version of Google Chrome installed on the remote Windows host is prior to 65.0.3325.146. It is, therefore, affected by a multiple unspecified vulnerabilities as noted in Chrome stable channel update release notes for March 6th, 2018. Please refer to the release notes for additional information. Note that Nessus has not attempted to exploit these issues but has instead relied only on the application last seen 2020-06-01 modified 2020-06-02 plugin id 107220 published 2018-03-08 reporter This script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof. source https://www.tenable.com/plugins/nessus/107220 title Google Chrome < 65.0.3325.146 Multiple Vulnerabilities code # # (C) Tenable Network Security, Inc. # include("compat.inc"); if (description) { script_id(107220); script_version("1.7"); script_cvs_date("Date: 2019/11/08"); script_cve_id( "CVE-2017-11215", "CVE-2017-11225", "CVE-2018-6057", "CVE-2018-6060", "CVE-2018-6061", "CVE-2018-6062", "CVE-2018-6063", "CVE-2018-6064", "CVE-2018-6065", "CVE-2018-6066", "CVE-2018-6067", "CVE-2018-6068", "CVE-2018-6069", "CVE-2018-6070", "CVE-2018-6071", "CVE-2018-6072", "CVE-2018-6073", "CVE-2018-6074", "CVE-2018-6075", "CVE-2018-6076", "CVE-2018-6077", "CVE-2018-6078", "CVE-2018-6079", "CVE-2018-6080", "CVE-2018-6081", "CVE-2018-6082", "CVE-2018-6083" ); script_bugtraq_id(101837); script_name(english:"Google Chrome < 65.0.3325.146 Multiple Vulnerabilities"); script_summary(english:"Checks the version of Google Chrome."); script_set_attribute(attribute:"synopsis", value: "A web browser installed on the remote Windows host is affected by multiple vulnerabilities."); script_set_attribute(attribute:"description", value: "The version of Google Chrome installed on the remote Windows host is prior to 65.0.3325.146. It is, therefore, affected by a multiple unspecified vulnerabilities as noted in Chrome stable channel update release notes for March 6th, 2018. Please refer to the release notes for additional information. Note that Nessus has not attempted to exploit these issues but has instead relied only on the application's self-reported version number."); # https://chromereleases.googleblog.com/2018/03/stable-channel-update-for-desktop.html script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?68129919"); script_set_attribute(attribute:"solution", value: "Upgrade to Google Chrome version 65.0.3325.146 or later."); 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:POC/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:P/RL:O/RC:C"); script_set_attribute(attribute:"cvss_score_source", value:"CVE-2017-11225"); script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available"); script_set_attribute(attribute:"exploit_available", value:"true"); script_set_attribute(attribute:"vuln_publication_date", value:"2018/03/06"); script_set_attribute(attribute:"patch_publication_date", value:"2018/03/06"); script_set_attribute(attribute:"plugin_publication_date", value:"2018/03/08"); script_set_attribute(attribute:"plugin_type", value:"local"); script_set_attribute(attribute:"cpe", value:"cpe:/a:google:chrome"); script_end_attributes(); script_category(ACT_GATHER_INFO); script_family(english:"Windows"); script_copyright(english:"This script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof."); script_dependencies("google_chrome_installed.nasl"); script_require_keys("SMB/Google_Chrome/Installed"); exit(0); } include("google_chrome_version.inc"); get_kb_item_or_exit("SMB/Google_Chrome/Installed"); installs = get_kb_list("SMB/Google_Chrome/*"); google_chrome_check_version(installs:installs, fix:'65.0.3325.146', severity:SECURITY_HOLE);
NASL family Fedora Local Security Checks NASL id FEDORA_2018-AAFDBB5554.NASL description Update to Chromium 65. For EPEL7, it has been a long time since a successful build has been possible, so this will fix a LOT of CVEs. CVE-2017-15396 CVE-2017-15407 CVE-2017-15408 CVE-2017-15409 CVE-2017-15410 CVE-2017-15411 CVE-2017-15412 CVE-2017-15413 CVE-2017-15415 CVE-2017-15416 CVE-2017-15417 CVE-2017-15418 CVE-2017-15419 CVE-2017-15420 CVE-2017-15422 CVE-2018-6056 CVE-2018-6406 CVE-2018-6057 CVE-2018-6058 CVE-2018-6059 CVE-2018-6060 CVE-2018-6061 CVE-2018-6062 CVE-2018-6063 CVE-2018-6064 CVE-2018-6065 CVE-2018-6066 CVE-2018-6067 CVE-2018-6068 CVE-2018-6069 CVE-2018-6070 CVE-2018-6071 Note that Tenable Network Security has extracted the preceding description block directly from the Fedora update system website. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues. last seen 2020-06-05 modified 2019-01-03 plugin id 120695 published 2019-01-03 reporter This script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof. source https://www.tenable.com/plugins/nessus/120695 title Fedora 28 : chromium (2018-aafdbb5554) NASL family SuSE Local Security Checks NASL id OPENSUSE-2018-264.NASL description This update for Chromium to version 65.0.3325.162 fixes the following issues : - CVE-2017-11215: Use after free in Flash - CVE-2017-11225: Use after free in Flash - CVE-2018-6060: Use after free in Blink - CVE-2018-6061: Race condition in V8 - CVE-2018-6062: Heap buffer overflow in Skia - CVE-2018-6057: Incorrect permissions on shared memory - CVE-2018-6063: Incorrect permissions on shared memory - CVE-2018-6064: Type confusion in V8 - CVE-2018-6065: Integer overflow in V8 - CVE-2018-6066: Same Origin Bypass via canvas - CVE-2018-6067: Buffer overflow in Skia - CVE-2018-6068: Object lifecycle issues in Chrome Custom Tab - CVE-2018-6069: Stack-based buffer overflow in Skia - CVE-2018-6070: CSP bypass through extensions - CVE-2018-6071: Heap bufffer overflow in Skia - CVE-2018-6072: Integer overflow in PDFium - CVE-2018-6073: Heap bufffer overflow in WebGL - CVE-2018-6074: Mark-of-the-Web bypass - CVE-2018-6075: Overly permissive cross origin downloads - CVE-2018-6076: Incorrect handling of URL fragment identifiers in Blink - CVE-2018-6077: Timing attack using SVG filters - CVE-2018-6078: URL Spoof in OmniBox - CVE-2018-6079: Information disclosure via texture data in WebGL - CVE-2018-6080: Information disclosure in IPC call - CVE-2018-6081: XSS in interstitials - CVE-2018-6082: Circumvention of port blocking - CVE-2018-6083: Incorrect processing of AppManifests last seen 2020-06-05 modified 2018-03-19 plugin id 108436 published 2018-03-19 reporter This script is Copyright (C) 2018-2020 and is owned by Tenable, Inc. or an Affiliate thereof. source https://www.tenable.com/plugins/nessus/108436 title openSUSE Security Update : Chromium (openSUSE-2018-264) NASL family Red Hat Local Security Checks NASL id REDHAT-RHSA-2018-0484.NASL description An update for chromium-browser is now available for Red Hat Enterprise Linux 6 Supplementary. Red Hat Product Security has rated this update as having a security impact of Important. A Common Vulnerability Scoring System (CVSS) base score, which gives a detailed severity rating, is available for each vulnerability from the CVE link(s) in the References section. Chromium is an open source web browser, powered by WebKit (Blink). This update upgrades Chromium to version 65.0.3325.146. Security Fix(es) : * chromium-browser: incorrect permissions on shared memory (CVE-2018-6057) * chromium-browser: use-after-free in blink (CVE-2018-6060) * chromium-browser: race condition in v8 (CVE-2018-6061) * chromium-browser: heap buffer overflow in skia (CVE-2018-6062) * chromium-browser: incorrect permissions on shared memory (CVE-2018-6063) * chromium-browser: type confusion in v8 (CVE-2018-6064) * chromium-browser: integer overflow in v8 (CVE-2018-6065) * chromium-browser: same origin bypass via canvas (CVE-2018-6066) * chromium-browser: buffer overflow in skia (CVE-2018-6067) * chromium-browser: stack-based buffer overflow in skia (CVE-2018-6069) * chromium-browser: csp bypass through extensions (CVE-2018-6070) * chromium-browser: heap bufffer overflow in skia (CVE-2018-6071) * chromium-browser: integer overflow in pdfium (CVE-2018-6072) * chromium-browser: heap bufffer overflow in webgl (CVE-2018-6073) * chromium-browser: mark-of-the-web bypass (CVE-2018-6074) * chromium-browser: overly permissive cross origin downloads (CVE-2018-6075) * chromium-browser: incorrect handling of url fragment identifiers in blink (CVE-2018-6076) * chromium-browser: timing attack using svg filters (CVE-2018-6077) * chromium-browser: url spoof in omnibox (CVE-2018-6078) * chromium-browser: information disclosure via texture data in webgl (CVE-2018-6079) * chromium-browser: information disclosure in ipc call (CVE-2018-6080) * chromium-browser: xss in interstitials (CVE-2018-6081) * chromium-browser: circumvention of port blocking (CVE-2018-6082) * chromium-browser: incorrect processing of appmanifests (CVE-2018-6083) For more details about the security issue(s), including the impact, a CVSS score, and other related information, refer to the CVE page(s) listed in the References section. last seen 2020-05-31 modified 2018-03-13 plugin id 108275 published 2018-03-13 reporter This script is Copyright (C) 2018-2020 and is owned by Tenable, Inc. or an Affiliate thereof. source https://www.tenable.com/plugins/nessus/108275 title RHEL 6 : chromium-browser (RHSA-2018:0484) NASL family Debian Local Security Checks NASL id DEBIAN_DSA-4182.NASL description Several vulnerabilities have been discovered in the chromium web browser. - CVE-2018-6056 lokihardt discovered an error in the v8 JavaScript library. - CVE-2018-6057 Gal Beniamini discovered errors related to shared memory permissions. - CVE-2018-6060 Omair discovered a use-after-free issue in blink/webkit. - CVE-2018-6061 Guang Gong discovered a race condition in the v8 JavaScript library. - CVE-2018-6062 A heap overflow issue was discovered in the v8 JavaScript library. - CVE-2018-6063 Gal Beniamini discovered errors related to shared memory permissions. - CVE-2018-6064 lokihardt discovered a type confusion error in the v8 JavaScript library. - CVE-2018-6065 Mark Brand discovered an integer overflow issue in the v8 JavaScript library. - CVE-2018-6066 Masato Kinugawa discovered a way to bypass the Same Origin Policy. - CVE-2018-6067 Ned Williamson discovered a buffer overflow issue in the skia library. - CVE-2018-6068 Luan Herrera discovered object lifecycle issues. - CVE-2018-6069 Wanglu and Yangkang discovered a stack overflow issue in the skia library. - CVE-2018-6070 Rob Wu discovered a way to bypass the Content Security Policy. - CVE-2018-6071 A heap overflow issue was discovered in the skia library. - CVE-2018-6072 Atte Kettunen discovered an integer overflow issue in the pdfium library. - CVE-2018-6073 Omair discover a heap overflow issue in the WebGL implementation. - CVE-2018-6074 Abdulrahman Alqabandi discovered a way to cause a downloaded web page to not contain a Mark of the Web. - CVE-2018-6075 Inti De Ceukelaire discovered a way to bypass the Same Origin Policy. - CVE-2018-6076 Mateusz Krzeszowiec discovered that URL fragment identifiers could be handled incorrectly. - CVE-2018-6077 Khalil Zhani discovered a timing issue. - CVE-2018-6078 Khalil Zhani discovered a URL spoofing issue. - CVE-2018-6079 Ivars discovered an information disclosure issue. - CVE-2018-6080 Gal Beniamini discovered an information disclosure issue. - CVE-2018-6081 Rob Wu discovered a cross-site scripting issue. - CVE-2018-6082 WenXu Wu discovered a way to bypass blocked ports. - CVE-2018-6083 Jun Kokatsu discovered that AppManifests could be handled incorrectly. - CVE-2018-6085 Ned Williamson discovered a use-after-free issue. - CVE-2018-6086 Ned Williamson discovered a use-after-free issue. - CVE-2018-6087 A use-after-free issue was discovered in the WebAssembly implementation. - CVE-2018-6088 A use-after-free issue was discovered in the pdfium library. - CVE-2018-6089 Rob Wu discovered a way to bypass the Same Origin Policy. - CVE-2018-6090 ZhanJia Song discovered a heap overflow issue in the skia library. - CVE-2018-6091 Jun Kokatsu discovered that plugins could be handled incorrectly. - CVE-2018-6092 Natalie Silvanovich discovered an integer overflow issue in the WebAssembly implementation. - CVE-2018-6093 Jun Kokatsu discovered a way to bypass the Same Origin Policy. - CVE-2018-6094 Chris Rohlf discovered a regression in garbage collection hardening. - CVE-2018-6095 Abdulrahman Alqabandi discovered files could be uploaded without user interaction. - CVE-2018-6096 WenXu Wu discovered a user interface spoofing issue. - CVE-2018-6097 xisigr discovered a user interface spoofing issue. - CVE-2018-6098 Khalil Zhani discovered a URL spoofing issue. - CVE-2018-6099 Jun Kokatsu discovered a way to bypass the Cross Origin Resource Sharing mechanism. - CVE-2018-6100 Lnyas Zhang discovered a URL spoofing issue. - CVE-2018-6101 Rob Wu discovered an issue in the developer tools remote debugging protocol. - CVE-2018-6102 Khalil Zhani discovered a URL spoofing issue. - CVE-2018-6103 Khalil Zhani discovered a user interface spoofing issue. - CVE-2018-6104 Khalil Zhani discovered a URL spoofing issue. - CVE-2018-6105 Khalil Zhani discovered a URL spoofing issue. - CVE-2018-6106 lokihardt discovered that v8 promises could be handled incorrectly. - CVE-2018-6107 Khalil Zhani discovered a URL spoofing issue. - CVE-2018-6108 Khalil Zhani discovered a URL spoofing issue. - CVE-2018-6109 Dominik Weber discovered a way to misuse the FileAPI feature. - CVE-2018-6110 Wenxiang Qian discovered that local plain text files could be handled incorrectly. - CVE-2018-6111 Khalil Zhani discovered a use-after-free issue in the developer tools. - CVE-2018-6112 Khalil Zhani discovered incorrect handling of URLs in the developer tools. - CVE-2018-6113 Khalil Zhani discovered a URL spoofing issue. - CVE-2018-6114 Lnyas Zhang discovered a way to bypass the Content Security Policy. - CVE-2018-6116 Chengdu Security Response Center discovered an error when memory is low. - CVE-2018-6117 Spencer Dailey discovered an error in form autofill settings. last seen 2020-06-01 modified 2020-06-02 plugin id 109411 published 2018-04-30 reporter This script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof. source https://www.tenable.com/plugins/nessus/109411 title Debian DSA-4182-1 : chromium-browser - security update NASL family Fedora Local Security Checks NASL id FEDORA_2018-FAFF5F661E.NASL description Update to Chromium 65. For EPEL7, it has been a long time since a successful build has been possible, so this will fix a LOT of CVEs. CVE-2017-15396 CVE-2017-15407 CVE-2017-15408 CVE-2017-15409 CVE-2017-15410 CVE-2017-15411 CVE-2017-15412 CVE-2017-15413 CVE-2017-15415 CVE-2017-15416 CVE-2017-15417 CVE-2017-15418 CVE-2017-15419 CVE-2017-15420 CVE-2017-15422 CVE-2018-6056 CVE-2018-6406 CVE-2018-6057 CVE-2018-6058 CVE-2018-6059 CVE-2018-6060 CVE-2018-6061 CVE-2018-6062 CVE-2018-6063 CVE-2018-6064 CVE-2018-6065 CVE-2018-6066 CVE-2018-6067 CVE-2018-6068 CVE-2018-6069 CVE-2018-6070 CVE-2018-6071 Note that Tenable Network Security has extracted the preceding description block directly from the Fedora update system website. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues. last seen 2020-06-05 modified 2018-03-28 plugin id 108679 published 2018-03-28 reporter This script is Copyright (C) 2018-2020 and is owned by Tenable, Inc. or an Affiliate thereof. source https://www.tenable.com/plugins/nessus/108679 title Fedora 27 : chromium (2018-faff5f661e) NASL family FreeBSD Local Security Checks NASL id FREEBSD_PKG_555AF07422B911E8979954EE754AF08E.NASL description Google Chrome Releases reports : 45 security fixes in this release : - [758848] High CVE-2017-11215: Use after free in Flash. Reported by JieZeng of Tencent Zhanlu Lab on 2017-08-25 - [758863] High CVE-2017-11225: Use after free in Flash. Reported by JieZeng of Tencent Zhanlu Lab on 2017-08-25 - [780919] High CVE-2018-6060: Use after free in Blink. Reported by Omair on 2017-11-02 - [794091] High CVE-2018-6061: Race condition in V8. Reported by Guang Gong of Alpha Team, Qihoo 360 on 2017-12-12 - [780104] High CVE-2018-6062: Heap buffer overflow in Skia. Reported by Anonymous on 2017-10-31 - [789959] High CVE-2018-6057: Incorrect permissions on shared memory. Reported by Gal Beniamini of Google Project Zero on 2017-11-30 - [792900] High CVE-2018-6063: Incorrect permissions on shared memory. Reported by Gal Beniamini of Google Project Zero on 2017-12-07 - [798644] High CVE-2018-6064: Type confusion in V8. Reported by lokihardt of Google Project Zero on 2018-01-03 - [808192] High CVE-2018-6065: Integer overflow in V8. Reported by Mark Brand of Google Project Zero on 2018-02-01 - [799477] Medium CVE-2018-6066: Same Origin Bypass via canvas. Reported by Masato Kinugawa on 2018-01-05 - [779428] Medium CVE-2018-6067: Buffer overflow in Skia. Reported by Ned Williamson on 2017-10-30 - [779428] Medium CVE-2018-6067: Buffer overflow in Skia. Reported by Ned Williamson on 2017-10-30 - [799918] Medium CVE-2018-6069: Stack buffer overflow in Skia. Reported by Wanglu and Yangkang(@dnpushme) of Qihoo360 Qex Team on 2018-01-08 - [668645] Medium CVE-2018-6070: CSP bypass through extensions. Reported by Rob Wu on 2016-11-25 - [777318] Medium CVE-2018-6071: Heap bufffer overflow in Skia. Reported by Anonymous on 2017-10-23 - [791048] Medium CVE-2018-6072: Integer overflow in PDFium. Reported by Atte Kettunen of OUSPG on 2017-12-01 - [804118] Medium CVE-2018-6073: Heap bufffer overflow in WebGL. Reported by Omair on 2018-01-20 - [809759] Medium CVE-2018-6074: Mark-of-the-Web bypass. Reported by Abdulrahman Alqabandi (@qab) on 2018-02-06 - [608669] Medium CVE-2018-6075: Overly permissive cross origin downloads. Reported by Inti De Ceukelaire (intigriti.com) on 2016-05-03 - [758523] Medium CVE-2018-6076: Incorrect handling of URL fragment identifiers in Blink. Reported by Mateusz Krzeszowiec on 2017-08-24 - [778506] Medium CVE-2018-6077: Timing attack using SVG filters. Reported by Khalil Zhani on 2017-10-26 - [793628] Medium CVE-2018-6078: URL Spoof in OmniBox. Reported by Khalil Zhani on 2017-12-10 - [788448] Medium CVE-2018-6079: Information disclosure via texture data in WebGL. Reported by Ivars Atteka on 2017-11-24 - [792028] Medium CVE-2018-6080: Information disclosure in IPC call. Reported by Gal Beniamini of Google Project Zero on 2017-12-05 - [797525] Low CVE-2018-6081: XSS in interstitials. Reported by Rob Wu on 2017-12-24 - [767354] Low CVE-2018-6082: Circumvention of port blocking. Reported by WenXu Wu of Tencent last seen 2020-06-01 modified 2020-06-02 plugin id 107243 published 2018-03-09 reporter This script is Copyright (C) 2018-2019 and is owned by Tenable, Inc. or an Affiliate thereof. source https://www.tenable.com/plugins/nessus/107243 title FreeBSD : chromium -- vulnerability (555af074-22b9-11e8-9799-54ee754af08e)
Redhat
advisories |
| ||||
rpms |
|
Seebug
bulletinFamily | exploit |
description | ### VULNERABILITY DETAILS The base::SharedMemory class represents a shared memory resource that processes can map into their virtual address space. As shared memory mechanisms differ across operating systems, specialised implementations exist for each OS. In Android's case, the implementation is largely provided by POSIX-specific code (https://cs.chromium.org/chromium/src/base/memory/shared_memory_posix.cc), with some Android-specific parts (https://cs.chromium.org/chromium/src/base/memory/shared_memory_android.cc). SharedMemory descriptors are often passed via IPC across process boundaries. In some cases, the shared memory descriptors need to be made read-only before being transferred to a different process, in order to ensure that only the owning process can modify the underlying memory. To retrieve a read-only descriptor that can be transferred over IPC, the base::SharedMemory::GetReadOnlyHandle() method (https://cs.chromium.org/chromium/src/base/memory/shared_memory.h?l=211) can be invoked. In Android's case, this implementation is provided by the POSIX-specific code path. Normally, the above code relies on "/dev/shm" in order to produce the shared memory descriptors. Using this approach, the code can keep a descriptor to the same memory region, but opened using O_RDONLY. The same descriptor is then used to provide the read-only handle returned by GetReadOnlyHandle, preventing callers from mapping it as writable. However, on Android the underlying descriptors are provided using Android's shared memory subsystem - "ashmem". Unlike the /dev/shm descriptors used in the generic POSIX implementation, ashmem descriptors do not allow setting mapping permissions on a per-descriptor basis, but rather enforce memory protections on the underlying shared memory region using a special ioctl - ASHMEM_SET_PROT_MASK (http://androidxref.com/kernel_3.18/xref/drivers/staging/android/ashmem.c#763). The above ioctl can be issued on an opened ashmem descriptor to set the "protection mask" associated with the underlying memory region. Subsequent mmap's are compared against the current protection mask to ensure that they are allowed. Permissions can only be dropped from the mask, but never added. Here is a snippet from the Android-specific implementation of base::SharedMemory (https://cs.chromium.org/chromium/src/base/memory/shared_memory_android.cc?l=20): ``` bool SharedMemory::Create(const SharedMemoryCreateOptions& options) { ... int fd = ashmem_create_region( options.name_deprecated == NULL ? "" : options.name_deprecated->c_str(), options.size); ... int err = ashmem_set_prot_region(shm_.GetHandle(), PROT_READ | PROT_WRITE | PROT_EXEC); ... // Android doesn't appear to have a way to drop write access on an ashmem // segment for a single descriptor. http://crbug.com/320865 readonly_shm_ = shm_.Duplicate(); ... } ``` As can be seen above (and as noted in the above comment), since ashmem doesn't allow setting permissions on a per-descriptor basis, this operation is simply skipped on Android, setting the "read-only" copy of the descriptor to a duplicate of the original descriptor, with the same (permissive) protection mask. Android's base::SharedMemory uses the POSIX-specific implementation of GetReadOnlyHandle, which simply returns the "read-only" descriptor above. Therefore, calling base::SharedMemory::GetReadOnlyHandle() on Android produces an ashmem descriptor which can be mapped as writable. This issue is somewhat similar to the one discovered by James Forshaw (https://googleprojectzero.blogspot.com/2014/10/did-man-with-no-name-feel-insecure.html). However, in this case user scripts cannot be used to exploit the issue, as Chromium on Android does not support extensions (and therefore doesn't include user scripts). Nonetheless, some resources are shared on an inter-process boundary and are reliant on the fact that they are made read-only be calling GetReadOnlyHandle(). For example, field trials are shared from the Zygote process to all processes (privileged and non-privileged), by sharing a read-only descriptor acquired via GetReadOnlyHandle(). On Android, this allows unprivileged processes (i.e. an unprivileged renderer) to remap the field trials buffer as writable, injecting new trials and parameter values to other (privileged) processes. Similarly, Mojo relies on GetReadOnlyHandle() to produce read-only memory handles in several different bindings -- for example, the C++ bindings allow the creation of a read-only handle by supplying the mojo::SharedBufferHandle::AccessMode::READ_ONLY flag to SharedBufferHandle::Clone (see https://cs.chromium.org/chromium/src/mojo/public/cpp/system/buffer.cc?type=cs&l=26). This is used by several Mojo services to create read-only handles that can be safely sent to their clients, such as the visited links hash table managed by the browser process (shared to renderers via visitedlink::mojom::VisitedLinkNotificationSink), the status of current sensors (via device::mojom::SensorProvider), the current cursor location, etc. ### VERSION * Chrome Version: 64.0.3242.0 * Revision: e325c0c757496334161119ec57db960b8e792375 * Operating System: Android 8.0.0 AOSP on msm8996 ### REPRODUCTION CASE I'm attaching a patch which maps the field trials descriptor as writable and corrupts the PersistentMemoryAllocator's cookie from the renderer process. Applying the patch and opening a webpage should result in the following logcat output: ``` 11-30 13:52:36.225 29571 29586 D SharedMemoryPoC: Corrupting cookie (was: 408305DC) ... 11-30 13:52:36.891 29608 29627 I chromium: [INFO:library_loader_hooks.cc(36)] Chromium logging enabled: level = 0, default verbosity = 0 11-30 13:52:36.911 29608 29627 E chromium: [ERROR:persistent_memory_allocator.cc(857)] Corruption detected in shared-memory segment ... ``` (where 29571 is the pid of the renderer process, and 29608 is the pid of the privileged (unsandboxed) process). |
id | SSV:97180 |
last seen | 2018-03-15 |
modified | 2018-03-15 |
published | 2018-03-15 |
reporter | Root |
title | Chromium: Read-only SharedMemory descriptors on Android are writable(CVE-2018-6057) |