Lucene search

K
nessusThis script is Copyright (C) 2015-2022 and is owned by Tenable, Inc. or an Affiliate thereof.PHP_5_4_37.NASL
HistoryJan 29, 2015 - 12:00 a.m.

PHP 5.4.x < 5.4.37 Multiple Vulnerabilities

2015-01-2900:00:00
This script is Copyright (C) 2015-2022 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
85

According to its banner, the version of PHP 5.4.x installed on the remote host is prior to 5.4.37. It is, therefore, affected by multiple vulnerabilities:

  • The CGI component has an out-of-bounds read flaw in file ‘cgi_main.c’ when nmap is used to process an invalid file that begins with a hash character (#) but lacks a newline character. A remote attacker, using a specially crafted PHP file, can exploit this vulnerability to disclose memory contents, cause a denial of service, or possibly execute code. (CVE-2014-9427)

  • A use-after-free memory error exists in the function ‘process_nested_data’ within ‘var_unserializer.re’ due to the improper handling of duplicate numerical keys within the serialized properties of an object. A remote attacker, using a crafted unserialize method call, can exploit this vulnerability to execute arbitrary code.
    (CVE-2015-0231)

  • A flaw exists in function ‘exif_process_unicode’ within ‘exif.c’ that allows freeing an uninitialized pointer. A remote attacker, using specially crafted EXIF data in a JPEG image, can exploit this to cause a denial of service or to execute arbitrary code. (CVE-2015-0232)

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(81080);
  script_version("1.17");
  script_set_attribute(attribute:"plugin_modification_date", value:"2022/04/11");

  script_cve_id(
    "CVE-2014-9427",
    "CVE-2014-9652",
    "CVE-2015-0231",
    "CVE-2015-0232"
  );
  script_bugtraq_id(
    71833,
    72505,
    72539,
    72541
  );

  script_name(english:"PHP 5.4.x < 5.4.37 Multiple Vulnerabilities");

  script_set_attribute(attribute:"synopsis", value:
"The remote web server uses a version of PHP that is affected by
multiple vulnerabilities.");
  script_set_attribute(attribute:"description", value:
"According to its banner, the version of PHP 5.4.x installed on the
remote host is prior to 5.4.37. It is, therefore, affected by multiple
vulnerabilities:

  - The CGI component has an out-of-bounds read flaw in file
    'cgi_main.c' when nmap is used to process an invalid
    file that begins with a hash character (#) but lacks a
    newline character. A remote attacker, using a specially
    crafted PHP file, can exploit this vulnerability to
    disclose memory contents, cause a denial of service, or
    possibly execute code. (CVE-2014-9427)

  - A use-after-free memory error exists in the function
    'process_nested_data' within 'var_unserializer.re' due
    to the improper handling of duplicate numerical keys
    within the serialized properties of an object. A remote
    attacker, using a crafted unserialize method call, can
    exploit this vulnerability to execute arbitrary code.
    (CVE-2015-0231)

  - A flaw exists in function 'exif_process_unicode' within
    'exif.c' that allows freeing an uninitialized pointer. A
    remote attacker, using specially crafted EXIF data in a
    JPEG image, can exploit this to cause a denial of
    service or to execute arbitrary code. (CVE-2015-0232)

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:"http://php.net/ChangeLog-5.php#5.4.37");
  script_set_attribute(attribute:"see_also", value:"https://bugs.php.net/bug.php?id=68618");
  script_set_attribute(attribute:"see_also", value:"https://bugs.php.net/bug.php?id=68710");
  script_set_attribute(attribute:"see_also", value:"https://bugs.php.net/bug.php?id=68799");
  script_set_attribute(attribute:"solution", value:
"Upgrade to PHP version 5.4.37 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:L/I:L/A:L");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2014-9427");

  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:"2014/12/17");
  script_set_attribute(attribute:"patch_publication_date", value:"2015/01/22");
  script_set_attribute(attribute:"plugin_publication_date", value:"2015/01/29");

  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) 2015-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");

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

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

version = php["ver"];
source = php["src"];

backported = get_kb_item('www/php/'+port+'/'+version+'/backported');

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

# Check that it is the correct version of PHP
if (version =~ "^5(\.4)?$") audit(AUDIT_VER_NOT_GRANULAR, "PHP", port, version);
if (version !~ "^5\.4\.") audit(AUDIT_NOT_DETECT, "PHP version 5.4.x", port);

if (version =~ "^5\.4\.([0-9]|[12][0-9]|3[0-6])($|[^0-9])")
{
  if (report_verbosity > 0)
  {
    report =
      '\n  Version source    : '+source +
      '\n  Installed version : '+version +
      '\n  Fixed version     : 5.4.37' +
      '\n';
    security_hole(port:port, extra:report);
  }
  else security_hole(port);
  exit(0);
}
else audit(AUDIT_LISTEN_NOT_VULN, "PHP", port, version);
VendorProductVersionCPE
phpphpcpe:/a:php:php