Flash Player <= 16.0.0.296 Unspecified Code Execution (APSA15-02 / APSB15-04) - Nessus

Critical   Plugin ID: 81127

This page contains detailed information about the Flash Player <= 16.0.0.296 Unspecified Code Execution (APSA15-02 / APSB15-04) Nessus plugin including available exploits and PoCs found on GitHub, in Metasploit or Exploit-DB for verifying of this vulnerability.

Plugin Overview


ID: 81127
Name: Flash Player <= 16.0.0.296 Unspecified Code Execution (APSA15-02 / APSB15-04)
Filename: flash_player_apsa15-02.nasl
Vulnerability Published: 2015-02-02
This Plugin Published: 2015-02-02
Last Modification Time: 2022-04-22
Plugin Version: 1.23
Plugin Type: local
Plugin Family: Windows
Dependencies: flash_player_installed.nasl
Required KB Items [?]: SMB/Flash_Player/installed

Vulnerability Information


Severity: Critical
Vulnerability Published: 2015-02-02
Patch Published: 2015-02-05
CVE [?]: CVE-2015-0313, CVE-2015-0314, CVE-2015-0315, CVE-2015-0316, CVE-2015-0317, CVE-2015-0318, CVE-2015-0319, CVE-2015-0320, CVE-2015-0321, CVE-2015-0322, CVE-2015-0323, CVE-2015-0324, CVE-2015-0325, CVE-2015-0326, CVE-2015-0327, CVE-2015-0328, CVE-2015-0329, CVE-2015-0330, CVE-2015-0331
CPE [?]: cpe:/a:adobe:flash_player
Exploited by Malware: True

Synopsis

The remote Windows host has a browser plugin that is affected by multiple code execution vulnerabilities.

Description

According to its version, the Adobe Flash Player installed on the remote Windows host is equal or prior to 16.0.0.296. It is, therefore, affected by the following vulnerabilities :

- Several use-after-free errors exist that allow arbitrary code execution. (CVE-2015-0313, CVE-2015-0315, CVE-2015-0320, CVE-2015-0322)

- Several memory corruption errors exist that allow arbitrary code execution. (CVE-2015-0314, CVE-2015-0316, CVE-2015-0318, CVE-2015-0321, CVE-2015-0329, CVE-2015-0330)

- Several type confusion errors exist that allow arbitrary code execution. (CVE-2015-0317, CVE-2015-0319)

- Several heap-based buffer-overflow errors exist that allow arbitrary code execution. (CVE-2015-0323, CVE-2015-0327)

- A buffer overflow error exists that allows arbitrary code execution. (CVE-2015-0324)

- Several null pointer dereference errors exist that have unspecified impacts. (CVE-2015-0325, CVE-2015-0326, CVE-2015-0328).

- A user-after-free error exists within the processing of invalid m3u8 playlists. A remote attacker, with a specially crafted m3u8 playlist file, can force a dangling pointer to be reused after it has been freed, allowing the execution of arbitrary code. (CVE-2015-0331)

Solution

Upgrade to Adobe Flash Player version 16.0.0.305 or later.

Alternatively, Adobe has made version 13.0.0.269 available for those installations that cannot be upgraded to 16.x.

Public Exploits


Target Network Port(s): N/A
Target Asset(s): N/A
Exploit Available: True (Metasploit Framework, Exploit-DB, GitHub, Immunity Canvas, Core Impact)
Exploit Ease: Exploits are available

Here's the list of publicly known exploits and PoCs for verifying the Flash Player <= 16.0.0.296 Unspecified Code Execution (APSA15-02 / APSB15-04) vulnerability:

  1. Metasploit: exploit/windows/browser/adobe_flash_worker_byte_array_uaf
    [Adobe Flash Player ByteArray With Workers Use After Free]
  2. Metasploit: exploit/windows/browser/adobe_flash_pcre
    [Adobe Flash Player PCRE Regex Vulnerability]
  3. Exploit-DB: exploits/windows/remote/36420.rb
    [EDB-36420: Adobe Flash Player - PCRE Regex (Metasploit)]
  4. Exploit-DB: exploits/windows/remote/36491.txt
    [EDB-36491: Adobe Flash Player - Arbitrary Code Execution]
  5. Exploit-DB: exploits/windows/remote/36579.rb
    [EDB-36579: Adobe Flash Player - ByteArray With Workers Use-After-Free (Metasploit)]
  6. GitHub: https://github.com/SecurityObscurity/cve-2015-0313
    [CVE-2015-0313]
  7. GitHub: https://github.com/google/honggfuzz
    [CVE-2015-0316]
  8. GitHub: https://github.com/r3p3r/nixawk-honggfuzz
    [CVE-2015-0316]
  9. GitHub: https://github.com/offensive-security/exploitdb-bin-sploits/blob/master/bin-sploits/36491.zip
    [EDB-36491]
  10. Immunity Canvas: CANVAS

Before running any exploit against any system, make sure you are authorized by the owner of the target system(s) to perform such activity. In any other case, this would be considered as an illegal activity.

WARNING: Beware of using unverified exploits from sources such as GitHub or Exploit-DB. These exploits and PoCs could contain malware. For more information, see how to use exploits safely.

Risk Information


CVSS Score Source [?]: CVE-2015-0331
CVSS V2 Vector: AV:N/AC:L/Au:N/C:C/I:C/A:C/E:H/RL:OF/RC:C
CVSS Base Score:10.0 (High)
Impact Subscore:10.0
Exploitability Subscore:10.0
CVSS Temporal Score:8.7 (High)
CVSS Environmental Score:NA (None)
Modified Impact Subscore:NA
Overall CVSS Score:8.7 (High)

Go back to menu.

Plugin Source


This is the flash_player_apsa15-02.nasl nessus plugin source code. This script is Copyright (C) 2015-2022 and is owned by Tenable, Inc. or an Affiliate thereof.

#%NASL_MIN_LEVEL 70300
#
# (C) Tenable Network Security, Inc.
#

include('deprecated_nasl_level.inc');
include('compat.inc');

if (description)
{
  script_id(81127);
  script_version("1.23");
  script_set_attribute(attribute:"plugin_modification_date", value:"2022/04/22");

  script_cve_id(
    "CVE-2015-0313",
    "CVE-2015-0314",
    "CVE-2015-0315",
    "CVE-2015-0316",
    "CVE-2015-0317",
    "CVE-2015-0318",
    "CVE-2015-0319",
    "CVE-2015-0320",
    "CVE-2015-0321",
    "CVE-2015-0322",
    "CVE-2015-0323",
    "CVE-2015-0324",
    "CVE-2015-0325",
    "CVE-2015-0326",
    "CVE-2015-0327",
    "CVE-2015-0328",
    "CVE-2015-0329",
    "CVE-2015-0330",
    "CVE-2015-0331"
  );
  script_bugtraq_id(72429, 72514, 72698);
  script_xref(name:"CISA-KNOWN-EXPLOITED", value:"2022/05/04");

  script_name(english:"Flash Player <= 16.0.0.296 Unspecified Code Execution (APSA15-02 / APSB15-04)");

  script_set_attribute(attribute:"synopsis", value:
"The remote Windows host has a browser plugin that is affected by
multiple code execution vulnerabilities.");
  script_set_attribute(attribute:"description", value:
"According to its version, the Adobe Flash Player installed on the
remote Windows host is equal or prior to 16.0.0.296. It is, therefore,
affected by the following vulnerabilities :

  - Several use-after-free errors exist that allow arbitrary
    code execution. (CVE-2015-0313, CVE-2015-0315,
    CVE-2015-0320, CVE-2015-0322)

  - Several memory corruption errors exist that allow
    arbitrary code execution. (CVE-2015-0314,
    CVE-2015-0316, CVE-2015-0318, CVE-2015-0321,
    CVE-2015-0329, CVE-2015-0330)

  - Several type confusion errors exist that allow
    arbitrary code execution. (CVE-2015-0317, CVE-2015-0319)

  - Several heap-based buffer-overflow errors exist that
    allow arbitrary code execution. (CVE-2015-0323,
    CVE-2015-0327)

  - A buffer overflow error exists that allows arbitrary
    code execution. (CVE-2015-0324)

  - Several null pointer dereference errors exist that have
    unspecified impacts. (CVE-2015-0325, CVE-2015-0326,
    CVE-2015-0328).

  - A user-after-free error exists within the processing of
    invalid m3u8 playlists. A remote attacker, with a
    specially crafted m3u8 playlist file, can force a
    dangling pointer to be reused after it has been freed,
    allowing the execution of arbitrary code.
    (CVE-2015-0331)");
  script_set_attribute(attribute:"see_also", value:"https://helpx.adobe.com/security/products/flash-player/apsa15-02.html");
  script_set_attribute(attribute:"see_also", value:"https://helpx.adobe.com/security/products/flash-player/apsb15-04.html");
  script_set_attribute(attribute:"see_also", value:"http://www.zerodayinitiative.com/advisories/ZDI-15-047/");
  script_set_attribute(attribute:"solution", value:
"Upgrade to Adobe Flash Player version 16.0.0.305 or later.

Alternatively, Adobe has made version 13.0.0.269 available for those
installations that cannot be upgraded to 16.x.");
  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_attribute(attribute:"cvss_score_source", value:"CVE-2015-0331");

  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:"metasploit_name", value:'Adobe Flash Player ByteArray With Workers Use After Free');
  script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
  script_set_attribute(attribute:"exploit_framework_canvas", value:"true");
  script_set_attribute(attribute:"canvas_package", value:"CANVAS");

  script_set_attribute(attribute:"vuln_publication_date", value:"2015/02/02");
  script_set_attribute(attribute:"patch_publication_date", value:"2015/02/05");
  script_set_attribute(attribute:"plugin_publication_date", value:"2015/02/02");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:adobe:flash_player");
  script_set_attribute(attribute:"thorough_tests", value:"true");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Windows");

  script_copyright(english:"This script is Copyright (C) 2015-2022 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("flash_player_installed.nasl");
  script_require_keys("SMB/Flash_Player/installed");

  exit(0);
}

include("global_settings.inc");
include("misc_func.inc");

get_kb_item_or_exit("SMB/Flash_Player/installed");

# Identify vulnerable versions.
info = "";

# we're checking for versions less than *or equal to* the cutoff!
foreach variant (make_list("Plugin", "ActiveX", "Chrome", "Chrome_Pepper"))
{
  vers = get_kb_list("SMB/Flash_Player/"+variant+"/Version/*");
  files = get_kb_list("SMB/Flash_Player/"+variant+"/File/*");
  if (!isnull(vers) && !isnull(files))
  {
    foreach key (keys(vers))
    {
      ver = vers[key];

      if (ver)
      {
        iver = split(ver, sep:'.', keep:FALSE);
        for (i=0; i<max_index(iver); i++)
          iver[i] = int(iver[i]);

        if (
          (
            # Chrome Flash <= 16.0.0.296
            variant == "Chrome_Pepper" &&
            (
              (iver[0] < 16) ||
              (iver[0] == 16 && iver[1] == 0 && iver[2] == 0 && iver[3] <= 296)
            )
          ) ||
          (variant != "Chrome_Pepper" &&
            (
             (
               # < 13
               (
                 iver[0] < 13 ||
                 # 13.0.0.x <= 13.0.0.264
                 (
                   iver[0] == 13 &&
                   (
                     iver[1] == 0 &&
                     (
                       iver[2] == 0 &&
                       (
                         iver[3] <= 264
                       )
                     )
                   )
                 )
               ) ||
               # 14.0.0.x <= 16.0.0.296
               (
                 iver[0] == 14 ||
                 (
                   iver[0] == 15 ||
                   (
                     iver[0] == 16 &&
                     (
                       iver[1] == 0 &&
                       (
                         iver[2] == 0 &&
                         (
                           iver[3] <= 296
                         )
                       )
                     )
                   )
                 )
               )
             )
           )
         )
        )
        {
          num = key - ("SMB/Flash_Player/"+variant+"/Version/");
          file = files["SMB/Flash_Player/"+variant+"/File/"+num];
          if (variant == "Plugin")
          {
            info += '\n Product : Browser Plugin (for Firefox / Netscape / Opera)';
            fix = "16.0.0.305 / 13.0.0.269";
          }
          else if (variant == "ActiveX")
          {
            info += '\n Product : ActiveX control (for Internet Explorer)';
            fix = "16.0.0.305 / 13.0.0.269";
          }
          else if ("Chrome" >< variant)
          {
            info += '\n Product : Browser Plugin (for Google Chrome)';
          }
          info += '\n  Path              : ' + file +
                  '\n  Installed version : ' + ver;
          if (variant == "Chrome_Pepper")
            info += '\n  Fixed version     : 16.0.0.305 (Chrome PepperFlash)';
          else
            info += '\n  Fixed version     : '+fix;
          info += '\n';
        }
      }
    }
  }
}

if (info)
{
  port = get_kb_item("SMB/transport");
  if (!port) port = 445;

  if (report_verbosity > 0) security_hole(port:port, extra:info);
  else security_hole(port);
}
else
{
  if (thorough_tests)
    exit(0, 'No vulnerable versions of Adobe Flash Player were found.');
  else
    exit(1, 'Google Chrome\'s built-in Flash Player may not have been detected because the \'Perform thorough tests\' setting was not enabled.');
}

The latest version of this script can be found in these locations depending on your platform:

  • Linux / Unix:
    /opt/nessus/lib/nessus/plugins/flash_player_apsa15-02.nasl
  • Windows:
    C:\ProgramData\Tenable\Nessus\nessus\plugins\flash_player_apsa15-02.nasl
  • Mac OS X:
    /Library/Nessus/run/lib/nessus/plugins/flash_player_apsa15-02.nasl

Go back to menu.

How to Run


Here is how to run the Flash Player <= 16.0.0.296 Unspecified Code Execution (APSA15-02 / APSB15-04) as a standalone plugin via the Nessus web user interface (https://localhost:8834/):

  1. Click to start a New Scan.
  2. Select Advanced Scan.
  3. Navigate to the Plugins tab.
  4. On the top right corner click to Disable All plugins.
  5. On the left side table select Windows plugin family.
  6. On the right side table select Flash Player <= 16.0.0.296 Unspecified Code Execution (APSA15-02 / APSB15-04) plugin ID 81127.
  7. Specify the target on the Settings tab and click to Save the scan.
  8. Run the scan.

Here are a few examples of how to run the plugin in the command line. Note that the examples below demonstrate the usage on the Linux / Unix platform.

Basic usage:

/opt/nessus/bin/nasl flash_player_apsa15-02.nasl -t <IP/HOST>

Run the plugin with audit trail message on the console:

/opt/nessus/bin/nasl -a flash_player_apsa15-02.nasl -t <IP/HOST>

Run the plugin with trace script execution written to the console (useful for debugging):

/opt/nessus/bin/nasl -T - flash_player_apsa15-02.nasl -t <IP/HOST>

Run the plugin with using a state file for the target and updating it (useful for running multiple plugins on the target):

/opt/nessus/bin/nasl -K /tmp/state flash_player_apsa15-02.nasl -t <IP/HOST>

Go back to menu.

References


BID | SecurityFocus Bugtraq ID: See also: Similar and related Nessus plugins:
  • 81225 - GLSA-201502-02 : Adobe Flash Player: Multiple vulnerabilities
  • 81207 - Google Chrome < 40.0.2214.111 Multiple Vulnerabilities
  • 81128 - Flash Player For Mac <= 16.0.0.296 Unspecified Code Execution (APSA15-02 / APSB15-04)
  • 81208 - Google Chrome < 40.0.2214.111 Multiple Vulnerabilities (Mac OS X)
  • 81243 - openSUSE Security Update : flash-player (openSUSE-2015-118)
  • 81244 - RHEL 5 / 6 : flash-plugin (RHSA-2015:0140)
  • 81209 - MS KB3021953: Update for Vulnerabilities in Adobe Flash Player in Internet Explorer
  • 81245 - SuSE 11.3 Security Update : flash-player, flash-player-gnome, flash-player-kde4 (SAT Patch Number 10287)
  • 52673 - Flash Player < 10.2.153.1 Unspecified Memory Corruption (APSB11-05)
  • 80998 - Flash Player <= 16.0.0.287 Unspecified Code Execution (APSA15-01 / APSB15-03)
  • 31799 - Flash Player < 8.0.42.0 / 9.0.124.0 Multiple Vulnerabilities (APSB08-11)
  • 40434 - Flash Player < 9.0.246.0 / 10.0.32.18 Multiple Vulnerabilities (APSB09-10)
  • 46859 - Flash Player < 9.0.277.0 / 10.1.53.63 Multiple Vulnerabilities (ASPB10-14)
  • 49307 - Flash Player < 9.0.283 / 10.1.85.3 Unspecified Code Execution (APSB10-22)
  • 50493 - Flash Player < 9.0.289 / 10.1.102.64 Multiple Vulnerabilities (APSB10-26)
  • 53472 - Flash Player < 10.2.159.1 ActionScript Predefined Class Prototype Addition Remote Code Execution (APSB11-07)
  • 55140 - Flash Player < 10.3.181.26 Multiple Vulnerabilities (APSB11-18)
  • 55803 - Flash Player <= 10.3.181.36 Multiple Vulnerabilities (APSB11-21)
  • 58001 - Flash Player <= 10.3.183.14 / 11.1.102.55 Multiple Vulnerabilities (APSB12-03)
  • 58994 - Flash Player <= 10.3.183.18 / 11.2.202.233 Object Confusion Vulnerability (APSB12-09)
  • 61550 - Flash Player <= 11.3.300.270 Code Execution (APSB12-18)
  • 64506 - Flash Player <= 10.3.183.50 / 11.5.502.146 Multiple Vulnerabilities (APSB13-04)
  • 71351 - Flash Player <= 11.7.700.252 / 11.9.900.152 Multiple Vulnerabilities (APSB13-28)
  • 72284 - Flash Player <= 11.7.700.260 / 12.0.0.43 Unspecified Remote Code Execution (APSB14-04)
  • 73740 - Flash Player <= 11.7.700.275 / 13.0.0.182 Pixel Bender Component Buffer Overflow (APSB14-13)
  • 76413 - Flash Player <= 14.0.0.125 Multiple Vulnerabilities (APSB14-17)
  • 77172 - Flash Player <= 14.0.0.145 Multiple Vulnerabilities (APSB14-18)
  • 77577 - Flash Player <= 14.0.0.179 Multiple Vulnerabilities (APSB14-21)
  • 78441 - Flash Player <= 15.0.0.167 Multiple Vulnerabilities (APSB14-22)
  • 79140 - Flash Player <= 15.0.0.189 Multiple Vulnerabilities (APSB14-24)
  • 81819 - Flash Player <= 16.0.0.305 Multiple Vulnerabilities (APSB15-05)

Version


This page has been produced using Nessus Professional 10.1.2 (#68) LINUX, Plugin set 202205072148.
Plugin file flash_player_apsa15-02.nasl version 1.23. For more plugins, visit the Nessus Plugin Library.

Go back to menu.