CentOS 3 / 4 / 5 : php (CESA-2010:0040)

2010-01-14T00:00:00
ID CENTOS_RHSA-2010-0040.NASL
Type nessus
Reporter This script is Copyright (C) 2010-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
Modified 2020-06-02T00:00:00

Description

Updated php packages that fix several security issues are now available for Red Hat Enterprise Linux 3, 4, and 5.

This update has been rated as having moderate security impact by the Red Hat Security Response Team.

PHP is an HTML-embedded scripting language commonly used with the Apache HTTP Web server.

Multiple missing input sanitization flaws were discovered in PHP

                                        
                                            #%NASL_MIN_LEVEL 80502
#
# (C) Tenable Network Security, Inc.
#
# The descriptive text and package checks in this plugin were  
# extracted from Red Hat Security Advisory RHSA-2010:0040 and 
# CentOS Errata and Security Advisory 2010:0040 respectively.
#

include("compat.inc");

if (description)
{
  script_id(43878);
  script_version("1.22");
  script_cvs_date("Date: 2019/10/25 13:36:05");

  script_cve_id("CVE-2009-2687", "CVE-2009-3291", "CVE-2009-3292", "CVE-2009-3546", "CVE-2009-4017", "CVE-2009-4142");
  script_bugtraq_id(35440, 36449, 36712, 37079);
  script_xref(name:"RHSA", value:"2010:0040");

  script_name(english:"CentOS 3 / 4 / 5 : php (CESA-2010:0040)");
  script_summary(english:"Checks rpm output for the updated packages");

  script_set_attribute(
    attribute:"synopsis", 
    value:"The remote CentOS host is missing one or more security updates."
  );
  script_set_attribute(
    attribute:"description", 
    value:
"Updated php packages that fix several security issues are now
available for Red Hat Enterprise Linux 3, 4, and 5.

This update has been rated as having moderate security impact by the
Red Hat Security Response Team.

PHP is an HTML-embedded scripting language commonly used with the
Apache HTTP Web server.

Multiple missing input sanitization flaws were discovered in PHP's
exif extension. A specially crafted image file could cause the PHP
interpreter to crash or, possibly, disclose portions of its memory
when a PHP script tried to extract Exchangeable image file format
(Exif) metadata from the image file. (CVE-2009-2687, CVE-2009-3292)

A missing input sanitization flaw, leading to a buffer overflow, was
discovered in PHP's gd library. A specially crafted GD image file
could cause the PHP interpreter to crash or, possibly, execute
arbitrary code when opened. (CVE-2009-3546)

It was discovered that PHP did not limit the maximum number of files
that can be uploaded in one request. A remote attacker could use this
flaw to instigate a denial of service by causing the PHP interpreter
to use lots of system resources dealing with requests containing large
amounts of files to be uploaded. This vulnerability depends on file
uploads being enabled (which it is, in the default PHP configuration).
(CVE-2009-4017)

Note: This update introduces a new configuration option,
max_file_uploads, used for limiting the number of files that can be
uploaded in one request. By default, the limit is 20 files per
request.

It was discovered that PHP was affected by the previously published
'null prefix attack', caused by incorrect handling of NUL characters
in X.509 certificates. If an attacker is able to get a
carefully-crafted certificate signed by a trusted Certificate
Authority, the attacker could use the certificate during a
man-in-the-middle attack and potentially confuse PHP into accepting it
by mistake. (CVE-2009-3291)

It was discovered that PHP's htmlspecialchars() function did not
properly recognize partial multi-byte sequences for some multi-byte
encodings, sending them to output without them being escaped. An
attacker could use this flaw to perform a cross-site scripting attack.
(CVE-2009-4142)

All php users should upgrade to these updated packages, which contain
backported patches to resolve these issues. After installing the
updated packages, the httpd daemon must be restarted for the update to
take effect."
  );
  # https://lists.centos.org/pipermail/centos-announce/2010-January/016443.html
  script_set_attribute(
    attribute:"see_also",
    value:"http://www.nessus.org/u?2d66cbd6"
  );
  # https://lists.centos.org/pipermail/centos-announce/2010-January/016444.html
  script_set_attribute(
    attribute:"see_also",
    value:"http://www.nessus.org/u?d3805ee3"
  );
  # https://lists.centos.org/pipermail/centos-announce/2010-January/016461.html
  script_set_attribute(
    attribute:"see_also",
    value:"http://www.nessus.org/u?419e28cb"
  );
  # https://lists.centos.org/pipermail/centos-announce/2010-January/016462.html
  script_set_attribute(
    attribute:"see_also",
    value:"http://www.nessus.org/u?e469459b"
  );
  # https://lists.centos.org/pipermail/centos-announce/2010-January/016463.html
  script_set_attribute(
    attribute:"see_also",
    value:"http://www.nessus.org/u?c0db61c4"
  );
  # https://lists.centos.org/pipermail/centos-announce/2010-January/016464.html
  script_set_attribute(
    attribute:"see_also",
    value:"http://www.nessus.org/u?b10b9002"
  );
  script_set_attribute(attribute:"solution", value:"Update the affected php packages.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");
  script_cwe_id(20, 79);

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-bcmath");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-cli");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-common");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-dba");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-domxml");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-gd");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-imap");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-ldap");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-mbstring");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-mysql");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-ncurses");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-odbc");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-pdo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-pear");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-pgsql");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-snmp");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-soap");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-xml");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:centos:centos:php-xmlrpc");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:centos:centos:3");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:centos:centos:4");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:centos:centos:5");

  script_set_attribute(attribute:"vuln_publication_date", value:"2009/08/05");
  script_set_attribute(attribute:"patch_publication_date", value:"2010/01/13");
  script_set_attribute(attribute:"plugin_publication_date", value:"2010/01/14");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_copyright(english:"This script is Copyright (C) 2010-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
  script_family(english:"CentOS Local Security Checks");

  script_dependencies("ssh_get_info.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/CentOS/release", "Host/CentOS/rpm-list");

  exit(0);
}


include("audit.inc");
include("global_settings.inc");
include("rpm.inc");


if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
release = get_kb_item("Host/CentOS/release");
if (isnull(release) || "CentOS" >!< release) audit(AUDIT_OS_NOT, "CentOS");
os_ver = pregmatch(pattern: "CentOS(?: Linux)? release ([0-9]+)", string:release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "CentOS");
os_ver = os_ver[1];
if (! preg(pattern:"^(3|4|5)([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, "CentOS 3.x / 4.x / 5.x", "CentOS " + os_ver);

if (!get_kb_item("Host/CentOS/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);


cpu = get_kb_item("Host/cpu");
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ("x86_64" >!< cpu && "ia64" >!< cpu && cpu !~ "^i[3-6]86$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "CentOS", cpu);


flag = 0;
if (rpm_check(release:"CentOS-3", cpu:"i386", reference:"php-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"x86_64", reference:"php-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"i386", reference:"php-devel-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"x86_64", reference:"php-devel-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"i386", reference:"php-imap-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"x86_64", reference:"php-imap-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"i386", reference:"php-ldap-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"x86_64", reference:"php-ldap-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"i386", reference:"php-mysql-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"x86_64", reference:"php-mysql-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"i386", reference:"php-odbc-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"x86_64", reference:"php-odbc-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"i386", reference:"php-pgsql-4.3.2-54.ent")) flag++;
if (rpm_check(release:"CentOS-3", cpu:"x86_64", reference:"php-pgsql-4.3.2-54.ent")) flag++;

if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-devel-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-devel-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-domxml-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-domxml-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-gd-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-gd-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-imap-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-imap-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-ldap-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-ldap-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-mbstring-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-mbstring-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-mysql-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-mysql-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-ncurses-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-ncurses-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-odbc-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-odbc-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-pear-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-pear-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-pgsql-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-pgsql-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-snmp-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-snmp-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"i386", reference:"php-xmlrpc-4.3.9-3.29")) flag++;
if (rpm_check(release:"CentOS-4", cpu:"x86_64", reference:"php-xmlrpc-4.3.9-3.29")) flag++;

if (rpm_check(release:"CentOS-5", reference:"php-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-bcmath-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-cli-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-common-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-dba-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-devel-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-gd-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-imap-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-ldap-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-mbstring-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-mysql-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-ncurses-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-odbc-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-pdo-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-pgsql-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-snmp-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-soap-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-xml-5.1.6-24.el5_4.5")) flag++;
if (rpm_check(release:"CentOS-5", reference:"php-xmlrpc-5.1.6-24.el5_4.5")) flag++;


if (flag)
{
  security_report_v4(
    port       : 0,
    severity   : SECURITY_HOLE,
    extra      : rpm_report_get()
  );
  exit(0);
}
else
{
  tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, "php / php-bcmath / php-cli / php-common / php-dba / php-devel / etc");
}