Lucene search

K
nessusThis script is Copyright (C) 2019-2022 and is owned by Tenable, Inc. or an Affiliate thereof.PHP_7_1_27.NASL
HistoryApr 08, 2019 - 12:00 a.m.

PHP 7.1.x < 7.1.27 Multiple vulnerabilities.

2019-04-0800:00:00
This script is Copyright (C) 2019-2022 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
112

According to its banner, the version of PHP running on the remote web server is 7.1.x prior to 7.1.27. It is, therefore, affected by multiple vulnerabilities:

  • Uninitialized reads in the EXIF component of PHP due to the mishandling of data in exif_process_IFD_in_MAKERNOTE, and exif_process_IFD_in_TIFF. (CVE-2019-9638, CVE-2019-9639, CVE-2019-9641)

  • An invalid read in the EXIF component of PHP due to a mishandling of data in exif_process_SOFn. (CVE-2019-9640)

  • An access control bypass vulnerability exists due to the way rename() is implemented. This could allow unauthorized users to access data they otherwise would not have access to (CVE-2019-9637).

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

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

if (description)
{
  script_id(123827);
  script_version("1.4");
  script_set_attribute(attribute:"plugin_modification_date", value:"2022/04/11");

  script_cve_id(
    "CVE-2019-9637",
    "CVE-2019-9638",
    "CVE-2019-9639",
    "CVE-2019-9640",
    "CVE-2019-9641"
  );
  script_bugtraq_id(107379);

  script_name(english:"PHP 7.1.x < 7.1.27 Multiple vulnerabilities.");

  script_set_attribute(attribute:"synopsis", value:
"An application installed on the remote host is affected by
 multiple vulnerabilities.");
  script_set_attribute(attribute:"description", value:
"According to its banner, the version of PHP running on the remote web
server is 7.1.x prior to 7.1.27. It is, therefore, affected by
multiple vulnerabilities:

  - Uninitialized reads in the EXIF component of PHP due
    to the mishandling of data in exif_process_IFD_in_MAKERNOTE,
    and exif_process_IFD_in_TIFF. (CVE-2019-9638, CVE-2019-9639,
    CVE-2019-9641)

  - An invalid read in the EXIF component of PHP due to a
    mishandling of data in exif_process_SOFn. (CVE-2019-9640)

  - An access control bypass vulnerability exists due to the
    way rename() is implemented. This could allow unauthorized
    users to access data they otherwise would not have access
    to (CVE-2019-9637).");
  script_set_attribute(attribute:"see_also", value:"http://php.net/ChangeLog-7.php#7.1.27");
  script_set_attribute(attribute:"solution", value:
"Upgrade to PHP version 7.1.27 or later.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
  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:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2019-9641");

  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");

  script_set_attribute(attribute:"vuln_publication_date", value:"2019/03/07");
  script_set_attribute(attribute:"patch_publication_date", value:"2019/03/07");
  script_set_attribute(attribute:"plugin_publication_date", value:"2019/04/08");

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

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

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

  script_dependencies("php_version.nasl");
  script_require_keys("www/PHP");
  script_require_ports("Services/www", 80);

  exit(0);
}

include('audit.inc');
include('global_settings.inc');
include('misc_func.inc');
include('http.inc');
include('webapp_func.inc');

fix = '7.1.27';
minver = '7.1.0alpha1';

regexes = make_array(
  -3, 'alpha(\\d+)',
  -2, 'beta(\\d+)',
  -1, 'RC(\\d+)'
);

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

php = get_php_from_kb(
  port : port,
  exit_on_fail : TRUE
);

ver = php["ver"];
source = php["src"];
backported = get_kb_item('www/php/' + port + '/' + ver + '/backported');

if ((report_paranoia < 2) && backported)
  audit(AUDIT_BACKPORT_SERVICE, port, 'PHP ' + ver + ' install');

vulnerable = ver_compare(minver:minver, ver:ver, fix:fix, regexes:regexes);
if (isnull(vulnerable)) exit(1, 'The version of PHP ' + ver + ' is not within the checked ranges.');
if (vulnerable > -1) audit(AUDIT_LISTEN_NOT_VULN, 'PHP', port, ver);

report =
'\n  Version source    : ' + source +
'\n  Installed version : ' + ver +
'\n  Fixed version     : ' + fix +
'\n';
security_report_v4(port:port, extra:report, severity:SECURITY_HOLE);
VendorProductVersionCPE
phpphpcpe:/a:php:php