Vulnerabilities > CVE-2018-4996 - Use After Free vulnerability in Adobe Acrobat DC
Attack vector
NETWORK Attack complexity
LOW Privileges required
NONE Confidentiality impact
HIGH Integrity impact
HIGH Availability impact
HIGH Summary
Adobe Acrobat and Reader versions 2018.011.20038 and earlier, 2017.011.30079 and earlier, and 2015.006.30417 and earlier have a Use-after-free vulnerability. Successful exploitation could lead to arbitrary code execution in the context of the current user.
Vulnerable Configurations
Common Weakness Enumeration (CWE)
Nessus
NASL family Windows NASL id ADOBE_READER_APSB18-09.NASL description The version of Adobe Reader installed on the remote Windows host is a version prior or equal to 2015.006.30417, 2017.011.30079, or 2018.011.20038. It is, therefore, affected by multiple vulnerabilities. Note that Nessus has not tested for these issues but has instead relied only on the application last seen 2020-06-01 modified 2020-06-02 plugin id 109896 published 2018-05-17 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/109896 title Adobe Reader <= 2015.006.30417 / 2017.011.30079 / 2018.011.20038 Multiple Vulnerabilities (APSB18-09) code # # (C) Tenable Network Security, Inc. # include("compat.inc"); if (description) { script_id(109896); script_version("1.10"); script_cvs_date("Date: 2019/04/08 10:48:58"); script_cve_id( "CVE-2018-4947", "CVE-2018-4948", "CVE-2018-4949", "CVE-2018-4950", "CVE-2018-4951", "CVE-2018-4952", "CVE-2018-4953", "CVE-2018-4954", "CVE-2018-4955", "CVE-2018-4956", "CVE-2018-4957", "CVE-2018-4958", "CVE-2018-4959", "CVE-2018-4960", "CVE-2018-4961", "CVE-2018-4962", "CVE-2018-4963", "CVE-2018-4964", "CVE-2018-4965", "CVE-2018-4966", "CVE-2018-4967", "CVE-2018-4968", "CVE-2018-4969", "CVE-2018-4970", "CVE-2018-4971", "CVE-2018-4972", "CVE-2018-4973", "CVE-2018-4974", "CVE-2018-4975", "CVE-2018-4976", "CVE-2018-4977", "CVE-2018-4978", "CVE-2018-4979", "CVE-2018-4980", "CVE-2018-4981", "CVE-2018-4982", "CVE-2018-4983", "CVE-2018-4984", "CVE-2018-4985", "CVE-2018-4986", "CVE-2018-4987", "CVE-2018-4988", "CVE-2018-4989", "CVE-2018-4990", "CVE-2018-4993", "CVE-2018-4995", "CVE-2018-4996", "CVE-2018-12812", "CVE-2018-12815" ); script_bugtraq_id( 104102, 104167, 104168, 104169, 104171, 104172, 104173, 104174, 104175, 104176, 104177 ); script_name(english:"Adobe Reader <= 2015.006.30417 / 2017.011.30079 / 2018.011.20038 Multiple Vulnerabilities (APSB18-09)"); script_summary(english:"Checks the version of Adobe Reader."); script_set_attribute(attribute:"synopsis", value: "The version of Adobe Reader installed on the remote Windows host is affected by multiple vulnerabilities."); script_set_attribute(attribute:"description", value: "The version of Adobe Reader installed on the remote Windows host is a version prior or equal to 2015.006.30417, 2017.011.30079, or 2018.011.20038. It is, therefore, affected by multiple vulnerabilities. Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version number."); script_set_attribute(attribute:"see_also", value:"https://helpx.adobe.com/security/products/acrobat/apsb18-09.html"); script_set_attribute(attribute:"solution", value: "Upgrade to Adobe Reader 2015.006.30418 / 2017.011.30080 / 2018.011.20040 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:H/RL:OF/RC:C"); script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"); script_set_cvss3_temporal_vector("CVSS:3.0/E:H/RL:O/RC:C"); script_set_attribute(attribute:"cvss_score_source", value:"CVE-2018-4947"); script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available"); script_set_attribute(attribute:"exploit_available", value:"true"); script_set_attribute(attribute:"exploit_framework_core", value:"true"); script_set_attribute(attribute:"exploited_by_malware", value:"true"); script_set_attribute(attribute:"vuln_publication_date", value:"2018/05/14"); script_set_attribute(attribute:"patch_publication_date", value:"2018/05/14"); script_set_attribute(attribute:"plugin_publication_date", value:"2018/05/17"); script_set_attribute(attribute:"plugin_type", value:"local"); script_set_attribute(attribute:"cpe", value:"cpe:/a:adobe:acrobat_reader"); 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("adobe_reader_installed.nasl"); script_require_keys("SMB/Registry/Enumerated", "installed_sw/Adobe Reader"); exit(0); } include("vcf.inc"); include("vcf_extras.inc"); get_kb_item_or_exit("SMB/Registry/Enumerated"); app_info = vcf::adobe_reader::get_app_info(); constraints = [ { "min_version" : "15.6", "max_version" : "15.6.30417", "fixed_version" : "15.6.30418" }, { "min_version" : "17.8", "max_version" : "17.11.30079", "fixed_version" : "17.11.30080" }, { "min_version" : "15.7", "max_version" : "18.11.20038", "fixed_version" : "18.11.20040" } ]; # using adobe_reader namespace check_version_and_report to properly detect Continuous vs Classic, # and limit ver segments to 3 (18.x.y vs 18.x.y.12345) with max_segs:3 vcf::adobe_reader::check_version_and_report(app_info:app_info, constraints:constraints, severity:SECURITY_HOLE, max_segs:3);
NASL family Windows NASL id ADOBE_ACROBAT_APSB18-09.NASL description The version of Adobe Acrobat installed on the remote Windows host is a version prior to 2015.006.30418, 2017.011.30080, or 2018.011.20040. It is, therefore, affected by multiple vulnerabilities. Note that Nessus has not tested for these issues but has instead relied only on the application last seen 2020-06-01 modified 2020-06-02 plugin id 109895 published 2018-05-17 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/109895 title Adobe Acrobat < 2015.006.30418 / 2017.011.30080 / 2018.011.20040 Multiple Vulnerabilities (APSB18-09) code # # (C) Tenable Network Security, Inc. # include("compat.inc"); if (description) { script_id(109895); script_version("1.9"); script_cvs_date("Date: 2019/04/08 10:48:58"); script_cve_id( "CVE-2018-4947", "CVE-2018-4948", "CVE-2018-4949", "CVE-2018-4950", "CVE-2018-4951", "CVE-2018-4952", "CVE-2018-4953", "CVE-2018-4954", "CVE-2018-4955", "CVE-2018-4956", "CVE-2018-4957", "CVE-2018-4958", "CVE-2018-4959", "CVE-2018-4960", "CVE-2018-4961", "CVE-2018-4962", "CVE-2018-4963", "CVE-2018-4964", "CVE-2018-4965", "CVE-2018-4966", "CVE-2018-4967", "CVE-2018-4968", "CVE-2018-4969", "CVE-2018-4970", "CVE-2018-4971", "CVE-2018-4972", "CVE-2018-4973", "CVE-2018-4974", "CVE-2018-4975", "CVE-2018-4976", "CVE-2018-4977", "CVE-2018-4978", "CVE-2018-4979", "CVE-2018-4980", "CVE-2018-4981", "CVE-2018-4982", "CVE-2018-4983", "CVE-2018-4984", "CVE-2018-4985", "CVE-2018-4986", "CVE-2018-4987", "CVE-2018-4988", "CVE-2018-4989", "CVE-2018-4990", "CVE-2018-4993", "CVE-2018-4995", "CVE-2018-4996", "CVE-2018-12812", "CVE-2018-12815" ); script_bugtraq_id( 104102, 104167, 104168, 104169, 104171, 104172, 104173, 104174, 104175, 104176, 104177 ); script_name(english:"Adobe Acrobat < 2015.006.30418 / 2017.011.30080 / 2018.011.20040 Multiple Vulnerabilities (APSB18-09)"); script_summary(english:"Checks the version of Adobe Acrobat."); script_set_attribute(attribute:"synopsis", value: "The version of Adobe Acrobat installed on the remote Windows host is affected by multiple vulnerabilities."); script_set_attribute(attribute:"description", value: "The version of Adobe Acrobat installed on the remote Windows host is a version prior to 2015.006.30418, 2017.011.30080, or 2018.011.20040. It is, therefore, affected by multiple vulnerabilities. Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version number."); script_set_attribute(attribute:"see_also", value:"https://helpx.adobe.com/security/products/acrobat/apsb18-09.html"); script_set_attribute(attribute:"solution", value: "Upgrade to Adobe Acrobat 2015.006.30418 / 2017.011.30080 / 2018.011.20040 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:H/RL:OF/RC:C"); script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"); script_set_cvss3_temporal_vector("CVSS:3.0/E:H/RL:O/RC:C"); script_set_attribute(attribute:"cvss_score_source", value:"CVE-2018-4947"); script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available"); script_set_attribute(attribute:"exploit_available", value:"true"); script_set_attribute(attribute:"exploit_framework_core", value:"true"); script_set_attribute(attribute:"exploited_by_malware", value:"true"); script_set_attribute(attribute:"vuln_publication_date", value:"2018/05/14"); script_set_attribute(attribute:"patch_publication_date", value:"2018/05/14"); script_set_attribute(attribute:"plugin_publication_date", value:"2018/05/17"); script_set_attribute(attribute:"plugin_type", value:"local"); script_set_attribute(attribute:"cpe", value:"cpe:/a:adobe:acrobat"); 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("adobe_acrobat_installed.nasl"); script_require_keys("SMB/Registry/Enumerated", "installed_sw/Adobe Acrobat"); exit(0); } include("vcf.inc"); include("vcf_extras.inc"); get_kb_item_or_exit("SMB/Registry/Enumerated"); app_info = vcf::get_app_info(app:"Adobe Acrobat", win_local:TRUE); constraints = [ { "min_version" : "15.6", "max_version" : "15.6.30417", "fixed_version" : "15.6.30418" }, { "min_version" : "17.8", "max_version" : "17.11.30079", "fixed_version" : "17.11.30080" }, { "min_version" : "15.7", "max_version" : "18.11.20038", "fixed_version" : "18.11.20040" } ]; # using adobe_reader namespace check_version_and_report to properly detect Continuous vs Classic, # and limit ver segments to 3 (18.x.y vs 18.x.y.12345) with max_segs:3 vcf::adobe_reader::check_version_and_report(app_info:app_info, constraints:constraints, severity:SECURITY_HOLE, max_segs:3);
NASL family MacOS X Local Security Checks NASL id MACOSX_ADOBE_READER_APSB18-09.NASL description The version of Adobe Reader installed on the remote macOS or Mac OS X host is a version prior to 2015.006.30419, 2017.011.30080, or 2018.011.20040. It is, therefore, affected by multiple vulnerabilities. Note that Nessus has not tested for these issues but has instead relied only on the application last seen 2020-06-01 modified 2020-06-02 plugin id 109898 published 2018-05-17 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/109898 title Adobe Reader < 2015.006.30418 / 2017.011.30080 / 2018.011.20040 Multiple Vulnerabilities (APSB18-09) (macOS) code # # (C) Tenable Network Security, Inc. # include("compat.inc"); if (description) { script_id(109898); script_version("1.8"); script_cvs_date("Date: 2019/11/04"); script_cve_id( "CVE-2018-4947", "CVE-2018-4948", "CVE-2018-4949", "CVE-2018-4950", "CVE-2018-4951", "CVE-2018-4952", "CVE-2018-4953", "CVE-2018-4954", "CVE-2018-4955", "CVE-2018-4956", "CVE-2018-4957", "CVE-2018-4958", "CVE-2018-4959", "CVE-2018-4960", "CVE-2018-4961", "CVE-2018-4962", "CVE-2018-4963", "CVE-2018-4964", "CVE-2018-4965", "CVE-2018-4966", "CVE-2018-4967", "CVE-2018-4968", "CVE-2018-4969", "CVE-2018-4970", "CVE-2018-4971", "CVE-2018-4972", "CVE-2018-4973", "CVE-2018-4974", "CVE-2018-4975", "CVE-2018-4976", "CVE-2018-4977", "CVE-2018-4978", "CVE-2018-4979", "CVE-2018-4980", "CVE-2018-4981", "CVE-2018-4982", "CVE-2018-4983", "CVE-2018-4984", "CVE-2018-4985", "CVE-2018-4986", "CVE-2018-4987", "CVE-2018-4988", "CVE-2018-4989", "CVE-2018-4990", "CVE-2018-4993", "CVE-2018-4995", "CVE-2018-4996", "CVE-2018-12812", "CVE-2018-12815" ); script_bugtraq_id( 104102, 104167, 104168, 104169, 104171, 104172, 104173, 104174, 104175, 104176, 104177 ); script_name(english:"Adobe Reader < 2015.006.30418 / 2017.011.30080 / 2018.011.20040 Multiple Vulnerabilities (APSB18-09) (macOS)"); script_summary(english:"Checks the version of Adobe Reader."); script_set_attribute(attribute:"synopsis", value: "The version of Adobe Reader installed on the remote host is affected by multiple vulnerabilities."); script_set_attribute(attribute:"description", value: "The version of Adobe Reader installed on the remote macOS or Mac OS X host is a version prior to 2015.006.30419, 2017.011.30080, or 2018.011.20040. It is, therefore, affected by multiple vulnerabilities. Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version number."); script_set_attribute(attribute:"see_also", value:"https://helpx.adobe.com/security/products/acrobat/apsb18-09.html"); script_set_attribute(attribute:"solution", value: "Upgrade to Adobe Reader 2015.006.30418 / 2017.011.30080 / 2018.011.20040 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:H/RL:OF/RC:C"); script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"); script_set_cvss3_temporal_vector("CVSS:3.0/E:H/RL:O/RC:C"); script_set_attribute(attribute:"cvss_score_source", value:"CVE-2018-4996"); script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available"); script_set_attribute(attribute:"exploit_available", value:"true"); script_set_attribute(attribute:"exploit_framework_core", value:"true"); script_set_attribute(attribute:"exploited_by_malware", value:"true"); script_set_attribute(attribute:"vuln_publication_date", value:"2018/05/14"); script_set_attribute(attribute:"patch_publication_date", value:"2018/05/14"); script_set_attribute(attribute:"plugin_publication_date", value:"2018/05/17"); script_set_attribute(attribute:"plugin_type", value:"local"); script_set_attribute(attribute:"cpe", value:"cpe:/a:adobe:acrobat_reader"); 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_adobe_reader_installed.nasl"); script_require_keys("Host/local_checks_enabled", "Host/MacOSX/Version", "installed_sw/Adobe Reader"); exit(0); } include("vcf.inc"); get_kb_item_or_exit("Host/local_checks_enabled"); os = get_kb_item("Host/MacOSX/Version"); if (empty_or_null(os)) audit(AUDIT_OS_NOT, "Mac OS X"); app_info = vcf::get_app_info(app:"Adobe Reader"); base_dir = app_info['path'] - "/Applications"; track = get_kb_item("MacOSX/Adobe_Reader"+base_dir+"/Track"); if (!empty_or_null(track) && track == '2017') { constraints = [ { "min_version" : "17.8", "fixed_version" : "17.11.30080" } ]; } else { constraints = [ { "min_version" : "15.6", "fixed_version" : "15.6.30418" }, { "min_version" : "18.8", "fixed_version" : "18.11.20040" } ]; } vcf::check_version_and_report(app_info:app_info, constraints:constraints, severity:SECURITY_HOLE);
NASL family MacOS X Local Security Checks NASL id MACOSX_ADOBE_ACROBAT_APSB18-09.NASL description The version of Adobe Acrobat installed on the remote macOS or Mac OS X host is a version prior to 2015.006.30418, 2017.011.30080, or 2018.011.20040. It is, therefore, affected by multiple vulnerabilities. Note that Nessus has not tested for these issues but has instead relied only on the application last seen 2020-06-01 modified 2020-06-02 plugin id 109897 published 2018-05-17 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/109897 title Adobe Acrobat < 2015.006.30418 / 2017.011.30080 / 2018.011.20040 Multiple Vulnerabilities (APSB18-09) (macOS) code # # (C) Tenable Network Security, Inc. # include("compat.inc"); if (description) { script_id(109897); script_version("1.9"); script_cvs_date("Date: 2019/04/22 9:47:13"); script_cve_id( "CVE-2018-4947", "CVE-2018-4948", "CVE-2018-4949", "CVE-2018-4950", "CVE-2018-4951", "CVE-2018-4952", "CVE-2018-4953", "CVE-2018-4954", "CVE-2018-4955", "CVE-2018-4956", "CVE-2018-4957", "CVE-2018-4958", "CVE-2018-4959", "CVE-2018-4960", "CVE-2018-4961", "CVE-2018-4962", "CVE-2018-4963", "CVE-2018-4964", "CVE-2018-4965", "CVE-2018-4966", "CVE-2018-4967", "CVE-2018-4968", "CVE-2018-4969", "CVE-2018-4970", "CVE-2018-4971", "CVE-2018-4972", "CVE-2018-4973", "CVE-2018-4974", "CVE-2018-4975", "CVE-2018-4976", "CVE-2018-4977", "CVE-2018-4978", "CVE-2018-4979", "CVE-2018-4980", "CVE-2018-4981", "CVE-2018-4982", "CVE-2018-4983", "CVE-2018-4984", "CVE-2018-4985", "CVE-2018-4986", "CVE-2018-4987", "CVE-2018-4988", "CVE-2018-4989", "CVE-2018-4990", "CVE-2018-4993", "CVE-2018-4995", "CVE-2018-4996", "CVE-2018-12812", "CVE-2018-12815" ); script_bugtraq_id( 104102, 104167, 104168, 104169, 104171, 104172, 104173, 104174, 104175, 104176, 104177 ); script_name(english:"Adobe Acrobat < 2015.006.30418 / 2017.011.30080 / 2018.011.20040 Multiple Vulnerabilities (APSB18-09) (macOS)"); script_summary(english:"Checks the version of Adobe Acrobat."); script_set_attribute(attribute:"synopsis", value: "The version of Adobe Acrobat installed on the remote host is affected by multiple vulnerabilities."); script_set_attribute(attribute:"description", value: "The version of Adobe Acrobat installed on the remote macOS or Mac OS X host is a version prior to 2015.006.30418, 2017.011.30080, or 2018.011.20040. It is, therefore, affected by multiple vulnerabilities. Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version number."); script_set_attribute(attribute:"see_also", value:"https://helpx.adobe.com/security/products/acrobat/apsb18-09.html"); script_set_attribute(attribute:"solution", value: "Upgrade to Adobe Acrobat 2015.006.30418 / 2017.011.30080 / 2018.011.20040 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:H/RL:OF/RC:C"); script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"); script_set_cvss3_temporal_vector("CVSS:3.0/E:H/RL:O/RC:C"); script_set_attribute(attribute:"cvss_score_source", value:"CVE-2018-4947"); script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available"); script_set_attribute(attribute:"exploit_available", value:"true"); script_set_attribute(attribute:"exploit_framework_core", value:"true"); script_set_attribute(attribute:"exploited_by_malware", value:"true"); script_set_attribute(attribute:"vuln_publication_date", value:"2018/05/14"); script_set_attribute(attribute:"patch_publication_date", value:"2018/05/14"); script_set_attribute(attribute:"plugin_publication_date", value:"2018/05/17"); script_set_attribute(attribute:"plugin_type", value:"local"); script_set_attribute(attribute:"cpe", value:"cpe:/a:adobe:acrobat"); 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_adobe_acrobat_installed.nbin"); script_require_keys("Host/local_checks_enabled", "Host/MacOSX/Version", "installed_sw/Adobe Acrobat"); exit(0); } include("vcf.inc"); include("vcf_extras.inc"); get_kb_item_or_exit("Host/local_checks_enabled"); os = get_kb_item("Host/MacOSX/Version"); if (empty_or_null(os)) audit(AUDIT_OS_NOT, "Mac OS X"); app_info = vcf::get_app_info(app:"Adobe Acrobat"); constraints = [ { "min_version" : "15.6", "fixed_version" : "15.6.30418" }, { "min_version" : "17.8", "fixed_version" : "17.11.30080" }, { "min_version" : "18.8", "fixed_version" : "18.11.20040" } ]; vcf::adobe_reader::check_version_and_report(app_info:app_info, constraints:constraints, severity:SECURITY_HOLE, max_segs:3);
Seebug
bulletinFamily | exploit |
description | ### Summary A specific Javascript script embedded in a PDF file can lead to a pointer to previously freed object to be reused when opening a PDF document in Adobe Acrobat Reader DC 2018.009.20044. With careful memory manipulation, this can potentially lead to sensitive memory disclosure or arbitrary code execution. In order to trigger this vulnerability, the victim would need to open the malicious file or access a malicious web page. ### Tested Versions Adobe Acrobat Reader DC 2018.009.20044 ### Product URLs https://get.adobe.com/reader/ ### CVSSv3 Score 7.1 - CVSS:3.0/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H ### CWE CWE-416: Use After Free ### Details Adobe Acrobat Reader is the most popular and most feature-rich PDF reader. It has a big user base, is usually a default PDF reader on systems and integrates into web browsers as a plugin for rendering PDFs. As such, tricking a user into visiting a malicious web page or sending a specially crafted email attachment can be enough to trigger this vulnerability. Adobe Acrobat Reader DC supports embedded Javascript scripts in the PDF to allow for interactive PDF forms. This give the potential attacker the ability to precisely control memory layout and poses additional attack surface. When executing a following piece of Javascript in a suitable PDF document, a Use-After-Free condition can be triggered: ``` try{this.Net.Discovery.queryServices( "", {} ); }catch(e){app.alert(e);} ``` With page heap enabled, this leads to a crash: ``` eax=17a6acb8 ebx=29464fe0 ecx=29464fe0 edx=771f6c74 esi=2a064fd8 edi=2a064fd0 eip=520e2961 esp=0031f01c ebp=0031f02c iopl=0 nv up ei pl zr na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010246 Annots!PlugInMain+0x9ea60: 520e2961 ff7318 push dword ptr [ebx+18h] ds:0023:29464ff8=???????? 0:000> ``` The memory pointed to by `ebx` is freed an invalid, leading to a crash. The method `Net.Discovery.queryServices` requires privileges, and by default it would be blocked by security permissions. But if the source of the document is trusted, it will execute without problems and lead to a crash. In order to trigger a crash, the first argument needs to be an invalid service name. An empty string suffices. If we track back the allocations, we can see that pointer in `ebx` is actually used as `this` in previous function calls. The pointer in `ebx` actually comes from an array of size 0x30 allocated at `Annots!PlugInMain+0x4c01`: ``` 0:000> !heap -p -a eax address 292c2fd0 found in _DPH_HEAP_ROOT @ 191000 in busy allocation ( DPH_HEAP_BLOCK: UserAddr UserSize - VirtAddr VirtSize) 292215b0: 292c2fd0 30 - 292c2000 2000 6b258e89 verifier!AVrfDebugPageHeapAllocate+0x00000229 77276206 ntdll!RtlDebugAllocateHeap+0x00000030 7723a127 ntdll!RtlpAllocateHeap+0x000000c4 77205950 ntdll!RtlAllocateHeap+0x0000023a 62f8ed43 MSVCR120!malloc+0x00000049 55848b02 Annots!PlugInMain+0x00004c01 55848ab1 Annots!PlugInMain+0x00004bb0 55a4ba1b Annots!PlugInMain+0x00207b1a 558e1e29 Annots!PlugInMain+0x0009df28 558e2308 Annots!PlugInMain+0x0009e407 56b4267d EScript!mozilla::HashBytes+0x0004201b 56b275b6 EScript!mozilla::HashBytes+0x00026f54 56b217c2 EScript!mozilla::HashBytes+0x00021160 56b205f0 EScript!mozilla::HashBytes+0x0001ff8e 56b204fb EScript!mozilla::HashBytes+0x0001fe99 56b20442 EScript!mozilla::HashBytes+0x0001fde0 56b09e18 EScript!mozilla::HashBytes+0x000097b6 56b48697 EScript!mozilla::HashBytes+0x00048035 56b4841a EScript!mozilla::HashBytes+0x00047db8 56b47e8d EScript!mozilla::HashBytes+0x0004782b 56b46d7f EScript!mozilla::HashBytes+0x0004671d 56bb622c EScript!double_conversion::DoubleToStringConverter::CreateDecimalRepresentation+0x0005f52d 6023b42f AcroRd32!AIDE::PixelPartInfo::operator=+0x000e3aaf 60179c7d AcroRd32!AIDE::PixelPartInfo::operator=+0x000222fd 601763b1 AcroRd32!AIDE::PixelPartInfo::operator=+0x0001ea31 5ffcd185 AcroRd32!AX_PDXlateToHostEx+0x00159618 5ffcd683 AcroRd32!AX_PDXlateToHostEx+0x00159b16 601799da AcroRd32!AIDE::PixelPartInfo::operator=+0x0002205a 5fc6426f AcroRd32!PDAlternatesGetCosObj+0x0001d51f 5fc2b14b AcroRd32!CTJPEGWriter::CTJPEGWriter+0x000b9c1b 5fba268b AcroRd32!CTJPEGWriter::CTJPEGWriter+0x0003115b 5fba1761 AcroRd32!CTJPEGWriter::CTJPEGWriter+0x00030231 ``` Setting a write access breakpoint on the dword where the final dereferenced pointer is stored reveals where it comes from: ``` 0:000> ba w 4 292c2ffc 0:000> dd 292c2ffc 0:000> g Breakpoint 6 hit eax=29d26fe0 ebx=29d26fe0 ecx=55a494c0 edx=771f6c74 esi=28a2cff8 edi=292c2fd0 eip=55a49408 esp=0018c9e4 ebp=0018ca0c iopl=0 nv up ei pl zr na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246 Annots!PlugInMain+0x205507: 55a49408 e86941e0ff call Annots!PlugInMain+0x9675 (5584d576) 0:000> dd 292c2ffc 292c2ffc 29d26fe0 ???????? ???????? ???????? 0:000> !heap -p -a 29d26fe0 address 29d26fe0 found in _DPH_HEAP_ROOT @ 191000 in busy allocation ( DPH_HEAP_BLOCK: UserAddr UserSize - VirtAddr VirtSize) 2a3221d4: 29d26fe0 1c - 29d26000 2000 6b258e89 verifier!AVrfDebugPageHeapAllocate+0x00000229 77276206 ntdll!RtlDebugAllocateHeap+0x00000030 7723a127 ntdll!RtlpAllocateHeap+0x000000c4 77205950 ntdll!RtlAllocateHeap+0x0000023a 62f8ed43 MSVCR120!malloc+0x00000049 55848b02 Annots!PlugInMain+0x00004c01 55848ab1 Annots!PlugInMain+0x00004bb0 558e22e7 Annots!PlugInMain+0x0009e3e6 56b4267d EScript!mozilla::HashBytes+0x0004201b 56b275b6 EScript!mozilla::HashBytes+0x00026f54 56b217c2 EScript!mozilla::HashBytes+0x00021160 56b205f0 EScript!mozilla::HashBytes+0x0001ff8e 56b204fb EScript!mozilla::HashBytes+0x0001fe99 56b20442 EScript!mozilla::HashBytes+0x0001fde0 56b09e18 EScript!mozilla::HashBytes+0x000097b6 56b48697 EScript!mozilla::HashBytes+0x00048035 56b4841a EScript!mozilla::HashBytes+0x00047db8 56b47e8d EScript!mozilla::HashBytes+0x0004782b 56b46d7f EScript!mozilla::HashBytes+0x0004671d 56bb622c EScript!double_conversion::DoubleToStringConverter::CreateDecimalRepresentation+0x0005f52d 6023b42f AcroRd32!AIDE::PixelPartInfo::operator=+0x000e3aaf 60179c7d AcroRd32!AIDE::PixelPartInfo::operator=+0x000222fd 601763b1 AcroRd32!AIDE::PixelPartInfo::operator=+0x0001ea31 5ffcd185 AcroRd32!AX_PDXlateToHostEx+0x00159618 5ffcd683 AcroRd32!AX_PDXlateToHostEx+0x00159b16 601799da AcroRd32!AIDE::PixelPartInfo::operator=+0x0002205a 5fc6426f AcroRd32!PDAlternatesGetCosObj+0x0001d51f 5fc2b14b AcroRd32!CTJPEGWriter::CTJPEGWriter+0x000b9c1b 5fba268b AcroRd32!CTJPEGWriter::CTJPEGWriter+0x0003115b 5fba1761 AcroRd32!CTJPEGWriter::CTJPEGWriter+0x00030231 5fb860d4 AcroRd32!CTJPEGWriter::CTJPEGWriter+0x00014ba4 5fb85688 AcroRd32!CTJPEGWriter::CTJPEGWriter+0x00014158 ``` This 0x1c chunk of memory is subsequently freed but is later reused resulting in a crash: ``` (c20.5e8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=17d2acb8 ebx=29d26fe0 ecx=29d26fe0 edx=771f6c74 esi=292c2fd8 edi=292c2fd0 eip=558e2961 esp=0018eee8 ebp=0018eef8 iopl=0 nv up ei pl zr na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010246 Annots!PlugInMain+0x9ea60: 558e2961 ff7318 push dword ptr [ebx+18h] ds:0023:29d26ff8=???????? 0:000> dd ebx 29d26fe0 ???????? ???????? ???????? ???????? 29d26ff0 ???????? ???????? ???????? ???????? 29d27000 ???????? ???????? ???????? ???????? 29d27010 ???????? ???????? ???????? ???????? 29d27020 ???????? ???????? ???????? ???????? 29d27030 ???????? ???????? ???????? ???????? 29d27040 ???????? ???????? ???????? ???????? 29d27050 ???????? ???????? ???????? ???????? ``` With page heap disabled, this stale pointer dereference will usually succeed and result in further memory corruption. With proper memory layout manipulation, it could be abused to achieve arbitrary code execution. Do note that in order for the PoC to trigger this memory corruption, the PoC file needs to be added to trusted locations list in “Security(Enhanced)” in preferences. ### Timeline * 2018-01-23 - Vendor Disclosure * 2018-05-15 - Public Release |
id | SSV:97293 |
last seen | 2018-06-08 |
modified | 2018-05-17 |
published | 2018-05-17 |
reporter | Knownsec |
title | Adobe Acrobat Reader DC Net.Discovery.queryServices Remote Code Execution Vulnerability(CVE-2018-4996) |
Talos
id | TALOS-2018-0517 |
last seen | 2019-05-29 |
published | 2018-05-15 |
reporter | Talos Intelligence |
source | http://www.talosintelligence.com/vulnerability_reports/TALOS-2018-0517 |
title | Adobe Acrobat Reader DC Net.Discovery.queryServices Remote Code Execution Vulnerability |