Vulnerabilities > CVE-2007-1883 - Denial-Of-Service vulnerability in PHP

047910
CVSS 7.8 - HIGH
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
COMPLETE
Integrity impact
NONE
Availability impact
NONE
network
low complexity
php
nessus

Summary

PHP 4.0.0 through 4.4.6 and 5.0.0 through 5.2.1 allows context-dependent attackers to read arbitrary memory locations via an interruption that triggers a user space error handler that changes a parameter to an arbitrary pointer, as demonstrated via the iptcembed function, which calls certain convert_to_* functions with its input parameters.

Nessus

  • NASL familyGentoo Local Security Checks
    NASL idGENTOO_GLSA-200710-02.NASL
    descriptionThe remote host is affected by the vulnerability described in GLSA-200710-02 (PHP: Multiple vulnerabilities) Several vulnerabilities were found in PHP. Mattias Bengtsson and Philip Olausson reported integer overflows in the gdImageCreate() and gdImageCreateTrueColor() functions of the GD library which can cause heap-based buffer overflows (CVE-2007-3996). Gerhard Wagner discovered an integer overflow in the chunk_split() function that can lead to a heap-based buffer overflow (CVE-2007-2872). Its incomplete fix caused incorrect buffer size calculation due to precision loss, also resulting in a possible heap-based buffer overflow (CVE-2007-4661 and CVE-2007-4660). A buffer overflow in the sqlite_decode_binary() of the SQLite extension found by Stefan Esser that was addressed in PHP 5.2.1 was not fixed correctly (CVE-2007-1887). Stefan Esser discovered an error in the zend_alter_ini_entry() function handling a memory_limit violation (CVE-2007-4659). Stefan Esser also discovered a flaw when handling interruptions with userspace error handlers that can be exploited to read arbitrary heap memory (CVE-2007-1883). Disclosure of sensitive memory can also be triggered due to insufficient boundary checks in the strspn() and strcspn() functions, an issue discovered by Mattias Bengtsson and Philip Olausson (CVE-2007-4657) Stefan Esser reported incorrect validation in the FILTER_VALIDATE_EMAIL filter of the Filter extension allowing arbitrary email header injection (CVE-2007-1900). NOTE: This CVE was referenced, but not fixed in GLSA 200705-19. Stanislav Malyshev found an error with unknown impact in the money_format() function when processing
    last seen2020-06-01
    modified2020-06-02
    plugin id26942
    published2007-10-09
    reporterThis script is Copyright (C) 2007-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/26942
    titleGLSA-200710-02 : PHP: Multiple vulnerabilities
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Gentoo Linux Security Advisory GLSA 200710-02.
    #
    # The advisory text is Copyright (C) 2001-2018 Gentoo Foundation, Inc.
    # and licensed under the Creative Commons - Attribution / Share Alike 
    # license. See http://creativecommons.org/licenses/by-sa/3.0/
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(26942);
      script_version("1.25");
      script_cvs_date("Date: 2019/08/02 13:32:44");
    
      script_cve_id("CVE-2007-1883", "CVE-2007-1887", "CVE-2007-1900", "CVE-2007-2756", "CVE-2007-2872", "CVE-2007-3007", "CVE-2007-3378", "CVE-2007-3806", "CVE-2007-3996", "CVE-2007-3997", "CVE-2007-3998", "CVE-2007-4652", "CVE-2007-4657", "CVE-2007-4658", "CVE-2007-4659", "CVE-2007-4660", "CVE-2007-4661", "CVE-2007-4662", "CVE-2007-4663", "CVE-2007-4670", "CVE-2007-4727", "CVE-2007-4782", "CVE-2007-4783", "CVE-2007-4784", "CVE-2007-4825", "CVE-2007-4840", "CVE-2007-4887");
      script_xref(name:"GLSA", value:"200710-02");
    
      script_name(english:"GLSA-200710-02 : PHP: Multiple vulnerabilities");
      script_summary(english:"Checks for updated package(s) in /var/db/pkg");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:
    "The remote Gentoo host is missing one or more security-related
    patches."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "The remote host is affected by the vulnerability described in GLSA-200710-02
    (PHP: Multiple vulnerabilities)
    
        Several vulnerabilities were found in PHP. Mattias Bengtsson and Philip
        Olausson reported integer overflows in the gdImageCreate() and
        gdImageCreateTrueColor() functions of the GD library which can cause
        heap-based buffer overflows (CVE-2007-3996). Gerhard Wagner discovered
        an integer overflow in the chunk_split() function that can lead to a
        heap-based buffer overflow (CVE-2007-2872). Its incomplete fix caused
        incorrect buffer size calculation due to precision loss, also resulting
        in a possible heap-based buffer overflow (CVE-2007-4661 and
        CVE-2007-4660). A buffer overflow in the sqlite_decode_binary() of the
        SQLite extension found by Stefan Esser that was addressed in PHP 5.2.1
        was not fixed correctly (CVE-2007-1887).
        Stefan Esser discovered an error in the zend_alter_ini_entry() function
        handling a memory_limit violation (CVE-2007-4659). Stefan Esser also
        discovered a flaw when handling interruptions with userspace error
        handlers that can be exploited to read arbitrary heap memory
        (CVE-2007-1883). Disclosure of sensitive memory can also be triggered
        due to insufficient boundary checks in the strspn() and strcspn()
        functions, an issue discovered by Mattias Bengtsson and Philip Olausson
        (CVE-2007-4657)
        Stefan Esser reported incorrect validation in the FILTER_VALIDATE_EMAIL
        filter of the Filter extension allowing arbitrary email header
        injection (CVE-2007-1900). NOTE: This CVE was referenced, but not fixed
        in GLSA 200705-19.
        Stanislav Malyshev found an error with unknown impact in the
        money_format() function when processing '%i' and '%n' tokens
        (CVE-2007-4658). zatanzlatan reported a buffer overflow in the
        php_openssl_make_REQ() function with unknown impact when providing a
        manipulated SSL configuration file (CVE-2007-4662). Possible memory
        corruption when trying to read EXIF data in exif_read_data() and
        exif_thumbnail() occurred with unknown impact.
        Several vulnerabilities that allow bypassing of open_basedir and other
        restrictions were reported, including the glob() function
        (CVE-2007-4663), the session_save_path(), ini_set(), and error_log()
        functions which can allow local command execution (CVE-2007-3378),
        involving the readfile() function (CVE-2007-3007), via the Session
        extension (CVE-2007-4652), via the MySQL extension (CVE-2007-3997) and
        in the dl() function which allows loading extensions outside of the
        specified directory (CVE-2007-4825).
        Multiple Denial of Service vulnerabilities were discovered, including a
        long 'library' parameter in the dl() function (CVE-2007-4887), in
        several iconv and xmlrpc functions (CVE-2007-4840 and CVE-2007-4783),
        in the setlocale() function (CVE-2007-4784), in the glob() and
        fnmatch() function (CVE-2007-4782 and CVE-2007-3806), a floating point
        exception in the wordwrap() function (CVE-2007-3998), a stack
        exhaustion via deeply nested arrays (CVE-2007-4670), an infinite loop
        caused by a specially crafted PNG image in the png_read_info() function
        of libpng (CVE-2007-2756) and several issues related to array
        conversion.
      
    Impact :
    
        Remote attackers might be able to exploit these issues in PHP
        applications making use of the affected functions, potentially
        resulting in the execution of arbitrary code, Denial of Service,
        execution of scripted contents in the context of the affected site,
        security bypass or information leak.
      
    Workaround :
    
        There is no known workaround at this time."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security.gentoo.org/glsa/200705-19"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security.gentoo.org/glsa/200710-02"
      );
      script_set_attribute(
        attribute:"solution", 
        value:
    "All PHP users should upgrade to the latest version:
        # emerge --sync
        # emerge --ask --oneshot --verbose '>=dev-lang/php-5.2.4_p20070914-r2'"
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:N/A:N");
      script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"true");
      script_set_attribute(attribute:"exploit_framework_core", value:"true");
      script_set_attribute(attribute:"exploit_framework_canvas", value:"true");
      script_set_attribute(attribute:"canvas_package", value:'D2ExploitPack');
      script_cwe_id(20, 22, 94, 119, 189, 264, 362, 399);
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:gentoo:linux:php");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:gentoo:linux");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2007/10/07");
      script_set_attribute(attribute:"plugin_publication_date", value:"2007/10/09");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2007-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"Gentoo Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/Gentoo/release", "Host/Gentoo/qpkg-list");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("global_settings.inc");
    include("qpkg.inc");
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    if (!get_kb_item("Host/Gentoo/release")) audit(AUDIT_OS_NOT, "Gentoo");
    if (!get_kb_item("Host/Gentoo/qpkg-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    flag = 0;
    
    if (qpkg_check(package:"dev-lang/php", unaffected:make_list("ge 5.2.4_p20070914-r2"), vulnerable:make_list("lt 5.2.4_p20070914-r2"))) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_hole(port:0, extra:qpkg_report_get());
      else security_hole(0);
      exit(0);
    }
    else
    {
      tested = qpkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "PHP");
    }
    
  • NASL familyCGI abuses
    NASL idPHP_4_4_7_OR_5_2_2.NASL
    descriptionAccording to its banner, the version of PHP installed on the remote host is older than 4.4.7 / 5.2.2. Such versions may be affected by several issues, including buffer overflows in the GD library.
    last seen2020-06-01
    modified2020-06-02
    plugin id25159
    published2007-05-04
    reporterThis script is Copyright (C) 2007-2018 Westpoint Limited.
    sourcehttps://www.tenable.com/plugins/nessus/25159
    titlePHP < 4.4.7 / 5.2.2 Multiple Vulnerabilities
    code
    #
    # Copyright (C) Westpoint Limited
    #
    # Based on scripts written by Tenable Network Security.
    #
    # Changes made by Tenable:
    # -Add audit.inc include and adjust get_kb_item code to obtain
    # PHP version and source after updates to php_version.nasl (9/5/2013)
    #
    
    
    include("compat.inc");
    
    if(description)
    {
      script_id(25159);
      script_version("1.37");
      script_cvs_date("Date: 2018/07/24 18:56:10");
    
      script_cve_id(
        "CVE-2007-0455",
        "CVE-2007-0911",
        "CVE-2007-1001",
        "CVE-2007-1521",
        "CVE-2007-1285",
        "CVE-2007-1375",
        "CVE-2007-1396",
        "CVE-2007-1399",
        "CVE-2007-1460",
        "CVE-2007-1461",
        "CVE-2007-1484",
        "CVE-2007-1522",
        "CVE-2007-1582",
        "CVE-2007-1583",
        "CVE-2007-1709",
        "CVE-2007-1710",
        "CVE-2007-1717",
        "CVE-2007-1718",
        "CVE-2007-1864",
        "CVE-2007-1883",
        "CVE-2007-2509",
        "CVE-2007-2510",
        "CVE-2007-2511",
        "CVE-2007-2727",
        "CVE-2007-2748",
        "CVE-2007-3998",
        "CVE-2007-4670"
      );
      script_bugtraq_id(
        22289,
        22764,
        22990,
        23357,
        23813,
        23818,
        23984,
        24012
      );
    
      script_name(english:"PHP < 4.4.7 / 5.2.2 Multiple Vulnerabilities");
      script_summary(english:"Checks version of PHP");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote web server uses a version of PHP that is affected by
    multiple flaws.");
      script_set_attribute(attribute:"description", value:
    "According to its banner, the version of PHP installed on the remote
    host is older than 4.4.7 / 5.2.2.  Such versions may be affected by
    several issues, including buffer overflows in the GD library.");
      script_set_attribute(attribute:"see_also", value:"http://www.php.net/releases/4_4_7.php");
      script_set_attribute(attribute:"see_also", value:"http://www.php.net/releases/5_2_2.php");
      script_set_attribute(attribute:"solution", value:
    "Upgrade to PHP 4.4.7 / 5.2.2 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:POC/RL:OF/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"No exploit is required");
      script_set_attribute(attribute:"exploit_available", value:"false");
      script_cwe_id(20, 119);
    
      script_set_attribute(attribute:"plugin_publication_date", value:"2007/05/04");
      script_set_attribute(attribute:"vuln_publication_date", value:"2007/01/29");
    
      script_set_attribute(attribute:"plugin_type", value:"remote");
      script_set_attribute(attribute:"cpe", value:"cpe:/a:php:php");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_family(english:"CGI abuses");
    
      script_copyright(english:"This script is Copyright (C) 2007-2018 Westpoint Limited.");
    
      script_dependencies("php_version.nasl");
      script_require_ports("Services/www", 80);
      script_require_keys("www/PHP", "Settings/ParanoidReport");
      exit(0);
    }
    
    #
    # The script code starts here
    #
    
    include("global_settings.inc");
    include("misc_func.inc");
    include("http.inc");
    include("audit.inc");
    
    # Banner checks of PHP are prone to false-positives so we only run the
    # check if the reporting is paranoid.
    if (report_paranoia <= 1) audit(AUDIT_PARANOID);
    
    port = get_http_port(default:80, php:TRUE);
    
    version = get_kb_item_or_exit('www/php/'+port+'/version');
    match = eregmatch(string:version, pattern:'(.+) under (.+)$');
    if (!isnull(match))
    {
      version = match[1];
      source = match[2];
    }
    
    backported = get_kb_item('www/php/'+port+'/'+version+'/backported');
    if (report_paranoia < 2 && backported)
      audit(AUDIT_BACKPORT_SERVICE, port, "PHP "+version+" install");
    
    if (version =~ "^3\.|4\.[0-3]\." ||
        version =~ "^4\.4\.[0-6]($|[^0-9])" ||
        version =~ "^5\.[01]\." ||
        version =~ "^5\.2\.[01]($|[^0-9])"
    )
    {
      if (report_verbosity > 0)
      {
        report =
          '\n  Version source     : '+source +
          '\n  Installed version  : '+version+
          '\n  Fixed version      : 4.4.7 / 5.2.2\n';
        security_hole(port:port, extra:report);
      }
      else security_hole(port);
      exit(0);
    }
    else audit(AUDIT_LISTEN_NOT_VULN, "PHP", port, version);
    

Statements

contributorMark J Cox
lastmodified2007-04-16
organizationRed Hat
statementThe PHP interpreter does not offer a reliable &quot;sandboxed&quot; security layer (as found in, say, a JVM) in which untrusted scripts can be run; any script run by the PHP interpreter must be trusted with the privileges of the interpreter itself. We therefore do not classify this issue as security-sensitive since no trust boundary is crossed.