CVSS2
Attack Vector
NETWORK
Attack Complexity
LOW
Authentication
NONE
Confidentiality Impact
NONE
Integrity Impact
PARTIAL
Availability Impact
NONE
AV:N/AC:L/Au:N/C:N/I:P/A:N
CVSS3
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
NONE
Integrity Impact
HIGH
Availability Impact
NONE
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
AI Score
Confidence
High
EPSS
Percentile
78.9%
According to its self-reported version number, the phpMyAdmin application hosted on the remote web server is 4.0.x prior to 4.0.10.13, 4.4.x prior to 4.4.15.3, or 4.5.x prior to 4.5.4. It is, therefore, affected by the following vulnerabilities :
A security bypass vulnerability exists due to the use of the Math.random() JavaScript function which does not provide cryptographically secure random numbers. A remote attacker can exploit this to guess passwords via a brute-force attack. (CVE-2016-1927)
An information disclosure vulnerability exists in multiple scripts that allows a remote attacker, via a specially crafted request, to disclose the software’s installation path. (CVE-2016-2038)
A security bypass vulnerability exists due to generating XSRF tokens with cryptographically insecure values. A remote attacker can exploit this to bypass intended access restrictions by predicting a value.
(CVE-2016-2039)
Multiple cross-site scripting vulnerabilities exist due to improper validation of user-supplied input to the home, database search, and zoom search pages. An authenticated, remote attacker can exploit this, via a specially crafted request, to execute arbitrary script code in a user’s browser session. (CVE-2016-2040)
A security bypass vulnerability exists due to a failure to use a constant-time algorithm for comparing XSRF tokens. A remote attacker can exploit this, via a timing attack, to bypass intended access restrictions.
(CVE-2016-2041)
Note that Nessus has not attempted to exploit 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(88985);
script_version("1.7");
script_set_attribute(attribute:"plugin_modification_date", value:"2024/06/04");
script_cve_id(
"CVE-2016-1927",
"CVE-2016-2038",
"CVE-2016-2039",
"CVE-2016-2040",
"CVE-2016-2041"
);
script_bugtraq_id(
81210,
82075,
82076,
82077,
82084
);
script_name(english:"phpMyAdmin 4.0.x < 4.0.10.13 / 4.4.x < 4.4.15.3 / 4.5.x < 4.5.4 Multiple Vulnerabilities (PMASA-2016-1 - PMASA-2016-5)");
script_set_attribute(attribute:"synopsis", value:
"The remote web server hosts a PHP application that is affected by
multiple vulnerabilities.");
script_set_attribute(attribute:"description", value:
"According to its self-reported version number, the phpMyAdmin
application hosted on the remote web server is 4.0.x prior to
4.0.10.13, 4.4.x prior to 4.4.15.3, or 4.5.x prior to 4.5.4. It is,
therefore, affected by the following vulnerabilities :
- A security bypass vulnerability exists due to the use of
the Math.random() JavaScript function which does not
provide cryptographically secure random numbers. A
remote attacker can exploit this to guess passwords via
a brute-force attack. (CVE-2016-1927)
- An information disclosure vulnerability exists in
multiple scripts that allows a remote attacker, via a
specially crafted request, to disclose the software's
installation path. (CVE-2016-2038)
- A security bypass vulnerability exists due to generating
XSRF tokens with cryptographically insecure values. A
remote attacker can exploit this to bypass intended
access restrictions by predicting a value.
(CVE-2016-2039)
- Multiple cross-site scripting vulnerabilities exist due
to improper validation of user-supplied input to the
home, database search, and zoom search pages. An
authenticated, remote attacker can exploit this, via a
specially crafted request, to execute arbitrary script
code in a user's browser session. (CVE-2016-2040)
- A security bypass vulnerability exists due to a failure
to use a constant-time algorithm for comparing XSRF
tokens. A remote attacker can exploit this, via a timing
attack, to bypass intended access restrictions.
(CVE-2016-2041)
Note that Nessus has not attempted to exploit these issues but has
instead relied only on the application's self-reported version number.");
script_set_attribute(attribute:"see_also", value:"https://www.phpmyadmin.net/security/PMASA-2016-1/");
script_set_attribute(attribute:"see_also", value:"https://www.phpmyadmin.net/security/PMASA-2016-2/");
script_set_attribute(attribute:"see_also", value:"https://www.phpmyadmin.net/security/PMASA-2016-3/");
script_set_attribute(attribute:"see_also", value:"https://www.phpmyadmin.net/security/PMASA-2016-4/");
script_set_attribute(attribute:"see_also", value:"https://www.phpmyadmin.net/security/PMASA-2016-5/");
script_set_attribute(attribute:"solution", value:
"Upgrade to phpMyAdmin version 4.0.10.13 / 4.4.15.3 / 4.5.4 or later.
Alternatively, apply the patch referenced in the vendor advisory.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:P/A:N");
script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N");
script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2016-2041");
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/01/23");
script_set_attribute(attribute:"patch_publication_date", value:"2015/01/23");
script_set_attribute(attribute:"plugin_publication_date", value:"2016/02/26");
script_set_attribute(attribute:"potential_vulnerability", value:"true");
script_set_attribute(attribute:"plugin_type", value:"remote");
script_set_attribute(attribute:"cpe", value:"cpe:/a:phpmyadmin:phpmyadmin");
script_set_attribute(attribute:"thorough_tests", value:"true");
script_set_attribute(attribute:"enable_cgi_scanning", value:"true");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"CGI abuses");
script_copyright(english:"This script is Copyright (C) 2016-2024 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("phpMyAdmin_detect.nasl");
script_require_keys("www/PHP", "installed_sw/phpMyAdmin", "Settings/ParanoidReport");
script_exclude_keys("Settings/disable_cgi_scanning");
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");
appname = "phpMyAdmin";
get_install_count(app_name:appname, exit_if_zero:TRUE);
port = get_http_port(default:80, php:TRUE);
install = get_single_install(app_name:appname, port:port, exit_if_unknown_ver:TRUE);
dir = install['path'];
url = build_url(qs:dir, port:port);
version = install['version'];
if (version =~ "^4(\.[045])?$") audit(AUDIT_VER_NOT_GRANULAR, appname, port, version);
if (version !~ "^4\.[045][^0-9]") audit(AUDIT_WEB_APP_NOT_INST, appname + " 4.0.x / 4.4.x / 4.5.x", port);
if (report_paranoia < 2) audit(AUDIT_PARANOID);
re = make_array(
-2, "-beta(\d+)",
-1, "-rc(\d+)"
);
# Affected version
# 4.0.x < 4.0.10.13
# 4.4.x < 4.4.15.3
# 4.5.x < 4.5.4
cut_off = NULL;
fixed_ver = NULL;
if (version =~ "^4\.0\.")
{
cut_off = '4.0.0';
fixed_ver = '4.0.10.13';
}
else if (version =~ "^4\.4\.")
{
cut_off = '4.4.0';
fixed_ver = '4.4.15.3';
}
else if (version =~ "^4\.5\.")
{
cut_off = '4.5.0';
fixed_ver = '4.5.4';
}
else
{
audit(AUDIT_WEB_APP_NOT_AFFECTED, appname, url, version);
}
if (
ver_compare(ver:version, fix:cut_off, regexes:re) >= 0 &&
ver_compare(ver:version, fix:fixed_ver, regexes:re) == -1
)
{
report =
'\n URL : ' + url +
'\n Installed version : ' + version +
'\n Fixed version : ' + fixed_ver +
'\n';
set_kb_item(name:'www/'+port+'/XSRF', value:TRUE);
set_kb_item(name:'www/'+port+'/XSS', value:TRUE);
security_report_v4(port:port, severity:SECURITY_WARNING, extra:report);
}
else audit(AUDIT_WEB_APP_NOT_AFFECTED, appname, url, version);
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1927
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2038
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2039
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2040
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2041
www.phpmyadmin.net/security/PMASA-2016-1/
www.phpmyadmin.net/security/PMASA-2016-2/
www.phpmyadmin.net/security/PMASA-2016-3/
www.phpmyadmin.net/security/PMASA-2016-4/
www.phpmyadmin.net/security/PMASA-2016-5/
CVSS2
Attack Vector
NETWORK
Attack Complexity
LOW
Authentication
NONE
Confidentiality Impact
NONE
Integrity Impact
PARTIAL
Availability Impact
NONE
AV:N/AC:L/Au:N/C:N/I:P/A:N
CVSS3
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
NONE
Integrity Impact
HIGH
Availability Impact
NONE
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
AI Score
Confidence
High
EPSS
Percentile
78.9%