Lucene search

K
nessusThis script is Copyright (C) 2015-2021 and is owned by Tenable, Inc. or an Affiliate thereof.WORDPRESS_4_1_2.NASL
HistoryApr 24, 2015 - 12:00 a.m.

WordPress < 3.7.6 / 3.8.6 / 3.9.4 / 4.1.2 Multiple Vulnerabilities

2015-04-2400:00:00
This script is Copyright (C) 2015-2021 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
15

According to its version number, the WordPress application running on the remote web server is potentially affected by multiple vulnerabilities :

  • An unspecified flaw exists that allows an attacker to upload arbitrary files with invalid or unsafe names.
    Note that this only affects versions 4.1 and higher.

  • A cross-site scripting vulnerability exists due to improper validation of user-supplied input. A remote attacker, using a specially crafted request, can exploit this to execute arbitrary script code in a user’s browser session.

  • A limited cross-site scripting vulnerability exists due to improper validation of user-supplied input. A remote attacker, using a specially crafted request, can exploit this to execute arbitrary script code in a user’s browser session. Note that this only affects versions 3.9 and higher.

  • An unspecified SQL injection vulnerability exists in some plugins.

Note that Nessus has not tested for these issues but has instead relied only on the application’s self-reported version number.

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

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

if (description)
{
  script_id(83053);
  script_version("1.15");
  script_set_attribute(attribute:"plugin_modification_date", value:"2021/01/19");

  script_cve_id("CVE-2015-3438", "CVE-2015-3439");
  script_bugtraq_id(74269, 75146);

  script_name(english:"WordPress < 3.7.6 / 3.8.6 / 3.9.4 / 4.1.2 Multiple Vulnerabilities");
  script_summary(english:"Checks the version of WordPress.");

  script_set_attribute(attribute:"synopsis", value:
"The remote web server contains a PHP application that is affected by
multiple vulnerabilities.");
  script_set_attribute(attribute:"description", value:
"According to its version number, the WordPress application running
on the remote web server is potentially affected by multiple
vulnerabilities :

  - An unspecified flaw exists that allows an attacker to
    upload arbitrary files with invalid or unsafe names.
    Note that this only affects versions 4.1 and higher.

  - A cross-site scripting vulnerability exists due to
    improper validation of user-supplied input. A remote
    attacker, using a specially crafted request, can exploit
    this to execute arbitrary script code in a user's
    browser session.

  - A limited cross-site scripting vulnerability exists due
    to improper validation of user-supplied input. A remote
    attacker, using a specially crafted request, can exploit
    this to execute arbitrary script code in a user's
    browser session. Note that this only affects versions
    3.9 and higher.

  - An unspecified SQL injection vulnerability exists in
    some plugins.

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://wordpress.org/news/2015/04/wordpress-4-1-2/");
  script_set_attribute(attribute:"see_also", value:"https://codex.wordpress.org/Version_4.1.2");
  script_set_attribute(attribute:"see_also", value:"https://codex.wordpress.org/Version_3.9.4");
  script_set_attribute(attribute:"see_also", value:"https://codex.wordpress.org/Version_3.8.6");
  script_set_attribute(attribute:"see_also", value:"https://codex.wordpress.org/Version_3.7.6");
  script_set_attribute(attribute:"solution", value:
"Upgrade to WordPress 3.7.6 / 3.8.6 / 3.9.4 / 4.1.2 or later.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:N/I:P/A:N");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2015-3439");

  script_set_attribute(attribute:"exploitability_ease", value:"No exploit is required");
  script_set_attribute(attribute:"exploit_available", value:"false");

  script_set_attribute(attribute:"vuln_publication_date", value:"2015/04/21");
  script_set_attribute(attribute:"patch_publication_date", value:"2015/04/21");
  script_set_attribute(attribute:"plugin_publication_date", value:"2015/04/24");

  script_set_attribute(attribute:"potential_vulnerability", value:"true");
  script_set_attribute(attribute:"plugin_type", value:"remote");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:wordpress:wordpress");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"CGI abuses");

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

  script_dependencies("wordpress_detect.nasl");
  script_require_keys("www/PHP", "installed_sw/WordPress", "Settings/ParanoidReport");
  script_require_ports("Services/www", 80);

  exit(0);
}

include("audit.inc");
include("global_settings.inc");
include("misc_func.inc");
include("http.inc");
include("install_func.inc");

app = "WordPress";
get_install_count(app_name:app, exit_if_zero:TRUE);

port = get_http_port(default:80, php:TRUE);

install = get_single_install(
  app_name : app,
  port     : port,
  exit_if_unknown_ver : TRUE
);

dir = install['path'];
version = install['version'];
install_url = build_url(port:port, qs:dir);

if (report_paranoia < 2) audit(AUDIT_PARANOID);

ver = split(version, sep:".", keep:FALSE);
for (i=0; i<max_index(ver); i++)
  ver[i] = int(ver[i]);

# Versions less than 4.1.2 are vulnerable
# https://wordpress.org/download/release-archive/
if (
  # Short version
  version == "3.7" ||
  version == "3.8" ||
  version == "3.9" ||
  version == "4.1" ||
  # Longer versions
  (ver[0] < 3) ||
  (ver[0] == 3 && ver[1] < 7) ||
  (ver[0] == 3 && ver[1] == 7 && ver[2] < 6) ||
  (ver[0] == 3 && ver[1] == 8 && ver[2] < 6) ||
  (ver[0] == 3 && ver[1] == 9 && ver[2] < 4) ||
  (ver[0] == 4 && ver[1] < 1) ||
  (ver[0] == 4 && ver[1] == 1 && ver[2] < 2) ||
  # Short alpha / beta / RC versions
  version =~ "^(3\.[789]|4\.1)-(alpha|beta|RC)(\d+|$|[^0-9])" ||
  # Longer alpha / beta / RC versions
  version =~ "^(3\.7\.6|3\.8\.6|3\.9\.4|4\.1\.2)-(alpha|beta|RC)(\d+|$|[^0-9])"
)
{
  set_kb_item(name:'www/'+port+'/XSS', value:TRUE);
  set_kb_item(name:'www/'+port+'/SQLInjection', value:TRUE);

  if (report_verbosity > 0)
  {
    report =
      '\n  URL               : ' +install_url+
      '\n  Installed version : ' +version+
      '\n  Fixed version     : 3.7.6 / 3.8.6 / 3.9.4 / 4.1.2' +
      '\n';
    security_warning(port:port, extra:report);
  }
  else security_warning(port);
}
else audit(AUDIT_WEB_APP_NOT_AFFECTED, app, install_url, version);
VendorProductVersionCPE
wordpresswordpresscpe:/a:wordpress:wordpress