From 04044b071f895f92ec257a85b1333b3b5f462d5f Mon Sep 17 00:00:00 2001 From: Hannes Magnusson Date: Thu, 1 Mar 2007 17:10:22 +0000 Subject: [PATCH] [SECURITY] Initial implementation of the Security Center page The database needs review + severity assignment.. # The page is only available to those with MAGIC_COOKIE cookie to begin with --- security/index.php | 149 ++++++++++++++ security/vulndb.txt | 472 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 621 insertions(+) create mode 100644 security/index.php create mode 100644 security/vulndb.txt diff --git a/security/index.php b/security/index.php new file mode 100644 index 000000000..7aaa74f2c --- /dev/null +++ b/security/index.php @@ -0,0 +1,149 @@ + +
+

Security Center?

+

In an effort to make security related information more readily available, the PHP Security Response Team created a new Security Center on March 1st, 2007. The Security Center will serve as the central location where interested parties can find information about security threats, fixes and/or workarounds and any other related meterial.

+ +

Security related books

+ + +

Other links

+ +
+EOT; + + +site_header("PHP Security center"); +echo "

PHP Security Center

\n"; + +$dbfile = $_SERVER['DOCUMENT_ROOT'] . '/security/vulndb.txt'; +$fp = @fopen($dbfile, "rt"); +if(is_resource($fp)) { + $RECORDS = array(); + $record_no = 1; + while($s = fgets($fp)) { + if($s == "\n") { + if(!isset($RECORDS[$record_no]["id"])) { + $RECORDS[$record_no]["id"] = $record_no; + } + $field = null; + $record_no++; + continue; + } + if(preg_match("/^([-\w]+):\s*(.*)/", $s, $m)) { + // new record + $field = strtolower($m[1]); + $data = $m[2]; + } else { + $data = $s; + } + if($field) { + if(isset($RECORDS[$record_no][$field])) { + $RECORDS[$record_no][$field] .= $data; + } else { + $RECORDS[$record_no][$field] = $data; + } + } + } + } + + //echo "
";print_r($RECORDS);
+    $id = isset($_GET["id"]) ? (int)$_GET["id"] : 0;
+    if(!$id || !isset($RECORDS[$id])) {
+?>
+

PHP Vulnerability Disclosures

+

This page contains information about PHP-related security threats, patches and known workarounds.

+

If you believe you have discovered a security problem in PHP please inform the
PHP Security Response Team in confidence by mailing security@php.net

+
+

The following colors are used to highlight the severity of a bug:

+ += $d) { + if($c > $d) { + return -1; + } + return 0; + } + return 1; + } + usort($RECORDS, "cmp_records"); + + $last_month = ""; + foreach($RECORDS as $record) { + if(!isset($record["summary"])) { + if(strlen($record["description"]) > 80) { + $record["summary"] = substr($record["description"], 0, 70) . "..."; + } else { + $record["summary"] = $record["description"]; + } + } + $current_month = date("Ym", strtotime($record["published"])); + if($current_month != $last_month) { + $last_month = $current_month; + $current_month = $record["affects"]; + + echo "

", date("F Y", strtotime($record["published"])), "

\n"; + } +?> +
"> + +
+
">
+
+
+
+ +%s (%s)\n", $RECORDS[$id]["id"], $date); + echo "
\n"; + foreach($RECORDS[$id] as $field => $data) { + if(!$data) { + continue; + } + $title = ucfirst(strtr($field, "-", " ")); + // Turn urls into links (stolen from master/manage/user-notes.php) + $data = preg_replace( + '!((mailto:|(http|ftp|nntp|news):\/\/).*?)(\s|<|\)|"|\\|\'|$)!', + '\1\4', + $data + ); + echo <<< EOT +
+
$title
+
$data
+
\n +EOT; + } + echo "
\n"; +} + +site_footer(); + diff --git a/security/vulndb.txt b/security/vulndb.txt new file mode 100644 index 000000000..4614915a0 --- /dev/null +++ b/security/vulndb.txt @@ -0,0 +1,472 @@ +Id: 1 +CVE: CVE-2006-0097 +Severity: +Reporter: +Published: 2006-01-06 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: Stack-based buffer overflow in the create_named_pipe function in libmysql.c in PHP 4.3.10 and 4.4.x before 4.4.3 for Windows allows attackers to execute arbitrary code via a long (1) arg_host or (2) arg_unix_socket argument, as demonstrated by a long named pipe variable in the host argument to the mysql_connect function. + +Id: 2 +CVE: CVE-2006-0200 +Severity: +Reporter: +Published: 2006-01-13 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: Format string vulnerability in the error-reporting feature in the mysqli extension in PHP 5.1.0 and 5.1.1 might allow remote attackers to execute arbitrary code via format string specifiers in MySQL error messages. + +Id: 3 +CVE: CVE-2006-0207 +Severity: +Reporter: +Published: 2006-01-13 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: Multiple HTTP response splitting vulnerabilities in PHP 5.1.1 allow remote attackers to inject arbitrary HTTP headers via a crafted Set-Cookie header, related to the (1) session extension (aka ext/session) and the (2) header function. + +Id: 4 +CVE: CVE-2006-0208 +Severity: +Reporter: +Published: 2006-01-13 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: Multiple cross-site scripting (XSS) vulnerabilities in PHP 5.1.1, when display_errors and html_errors are on, allow remote attackers to inject arbitrary web script or HTML via inputs to PHP applications that are not filtered when they are included in the resulting error message. + +Id: 5 +CVE: CVE-2006-0996 +Severity: +Reporter: +Published: 2006-04-10 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: Cross-site scripting (XSS) vulnerability in phpinfo (info.c) in PHP 5.1.2 and 4.4.2 allows remote attackers to inject arbitrary web script or HTML via long array variables, including (1) a large number of dimensions or (2) long values, which prevents HTML tags from being removed. + +Id: 6 +CVE: CVE-2006-1014 +Severity: +Reporter: +Published: 2006-03-06 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: Argument injection vulnerability in certain PHP 4.x and 5.x applications, when used with sendmail and when accepting remote input for the additional_parameters argument to the mb_send_mail function, allows context-dependent attackers to read and create arbitrary files by providing extra -C and -X arguments to sendmail. NOTE: it could be argued that this is a class of technology-specific vulnerability, instead of a particular instance; if so, then this should not be included in CVE. + +Id: 7 +CVE: CVE-2006-1015 +Severity: +Reporter: +Published: 2006-03-06 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: Argument injection vulnerability in certain PHP 3.x, 4.x, and 5.x applications, when used with sendmail and when accepting remote input for the additional_parameters argument to the mail function, allows remote attackers to read and create arbitrary files via the sendmail -C and -X arguments. NOTE: it could be argued that this is a class of technology-specific vulnerability, instead of a particular instance; if so, then this should not be included in CVE. + +Id: 8 +CVE: CVE-2006-1017 +Severity: +Reporter: +Published: 2006-03-06 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: The c-client library 2000, 2001, or 2004 for PHP before 4.4.4 and 5.x before 5.1.5 do not check the (1) safe_mode or (2) open_basedir functions, and when used in applications that accept user-controlled input for the mailbox argument to the imap_open function, allow remote attackers to obtain access to an IMAP stream data structure and conduct unauthorized IMAP actions. + +Id: 9 +CVE: CVE-2006-1490 +Severity: +Reporter: +Published: 2006-03-29 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: PHP before 5.1.3-RC1 might allow remote attackers to obtain portions of memory via crafted binary data sent to a script that processes user input in the html_entity_decode function and sends the encoded results back to the client, aka a "binary safety" issue. NOTE: this issue has been referred to as a "memory leak," but it is an information leak that discloses memory contents. + +Id: 10 +CVE: CVE-2006-1494 +Severity: +Reporter: +Published: 2006-04-10 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: Directory traversal vulnerability in file.c in PHP 4.4.2 and 5.1.2 allows local users to bypass open_basedir restrictions allows remote attackers to create files in arbitrary directories via the tempnam function. + +Id: 11 +CVE: CVE-2006-1549 +Severity: +Reporter: +Published: 2006-04-10 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: PHP 4.4.2 and 5.1.2 allows local users to cause a crash (segmentation fault) by defining and executing a recursive function. + +Id: 12 +CVE: CVE-2006-1608 +Severity: +Reporter: +Published: 2006-04-10 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: The copy function in file.c in PHP 4.4.2 and 5.1.2 allows local users to bypass safe mode and read arbitrary files via a source argument containing a compress.zlib:// URI. + +Id: 13 +CVE: CVE-2006-1990 +Severity: +Reporter: +Published: 2006-04-24 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: Integer overflow in the wordwrap function in string.c in PHP 4.4.2 and 5.1.2 might allow context-dependent attackers to execute arbitrary code via certain long arguments that cause a small buffer to be allocated, which triggers a heap-based buffer overflow in a memcpy function call, a different vulnerability than CVE-2002-1396. + +Id: 14 +CVE: CVE-2006-1991 +Severity: +Reporter: +Published: 2006-04-24 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: The substr_compare function in string.c in PHP 5.1.2 allows context-dependent attackers to cause a denial of service (memory access violation) via an out-of-bounds offset argument. + +Id: 15 +CVE: CVE-2006-2563 +Severity: +Reporter: +Published: 2006-05-29 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: The cURL library (libcurl) in PHP 4.4.2 and 5.1.4 allows attackers to bypass safe mode and read files via a file:// request containing null characters. + +Id: 16 +CVE: CVE-2006-2660 +Severity: +Reporter: +Published: 2006-06-13 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: Buffer consumption vulnerability in the tempnam function in PHP 5.1.4 and 4.x before 4.4.3 allows local users to bypass restrictions and create PHP files with fixed names in other directories via a pathname argument longer than MAXPATHLEN, which prevents a unique string from being appended to the filename. + +Id: 17 +CVE: CVE-2006-3011 +Severity: +Reporter: +Published: 2006-06-26 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: The error_log function in basic_functions.c in PHP before 4.4.4 and 5.x before 5.1.5 allows local users to bypass safe mode and open_basedir restrictions via a "php://" or other scheme in the third argument, which disables safe mode. + +Id: 18 +CVE: CVE-2006-3016 +Severity: +Reporter: +Published: 2006-06-14 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: Unspecified vulnerability in session.c in PHP before 5.1.3 has unknown impact and attack vectors, related to "certain characters in session names," including special characters that are frequently associated with CRLF injection, SQL injection, cross-site scripting (XSS), and HTTP response splitting vulnerabilities. NOTE: while the nature of the vulnerability is unspecified, it is likely that this is related to a violation of an expectation by PHP applications that the session name is alphanumeric, as implied in the PHP manual for session_name(). + +Id: 19 +CVE: CVE-2006-3017 +Severity: +Reporter: +Published: 2006-06-14 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: zend_hash_del_key_or_index in zend_hash.c in PHP before 4.4.3 and 5.x before 5.1.4 can cause zend_hash_del to delete the wrong element, which prevents a variable from being unset even when the PHP unset function is called, which might cause the variable's value to be used in security-relevant operations. + +Id: 20 +CVE: CVE-2006-3018 +Severity: +Reporter: +Published: 2006-06-14 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: Unspecified vulnerability in the session extension functionality in PHP before 5.1.3 has unkown impact and attack vectors related to heap corruption. + +Id: 21 +CVE: CVE-2006-4020 +Severity: +Reporter: +Published: 2006-08-08 +Extension: +Range: +Affects: PHP +Fixed-in: PHP +Description: scanf.c in PHP 5.1.4 and earlier, and 4.4.3 and earlier, allows context-dependent attackers to execute arbitrary code via a sscanf PHP function call that performs argument swapping, which increments an index past the end of an array and triggers a buffer over-read. + +Id: 22 +CVE: CVE-2006-4023 +Severity: +Reporter: +Published: 2006-08-08 +Extension: ext/standard +Range: +Affects: PHP +Fixed-in: PHP +Description: The ip2long function in PHP 5.1.4 and earlier may incorrectly validate an arbitrary string and return a valid network IP address, which allows remote attackers to obtain network information and facilitate other attacks, as demonstrated using SQL injection in the X-FORWARDED-FOR Header in index.php in MiniBB 2.0. NOTE: it could be argued that the ip2long behavior represents a risk for security-relevant issues in a way that is similar to strcpy's role in buffer overflows, in which case this would be a class of implementation bugs that would require separate CVE items for each PHP application that uses ip2long in a security-relevant manner. + +Id: 23 +CVE: CVE-2006-4433 +Severity: +Reporter: +Published: 2006-08-28 +Extension: ext/session +Range: +Affects: PHP +Fixed-in: PHP +Description: PHP before 4.4.3 and 5.x before 5.1.4 does not limit the character set of the session identifier (PHPSESSID) for third party session handlers, which might make it easier for remote attackers to exploit other vulnerabilities by inserting PHP code into the PHPSESSID, which is stored in the session file. NOTE: it could be argued that this not a vulnerability in PHP itself, rather a design limitation that enables certain attacks against session handlers that do not account for this limitation. + +Id: 24 +CVE: CVE-2006-4481 +Severity: +Reporter: +Published: 2006-08-31 +Extension: ext/standard & ext/imap +Range: +Affects: PHP +Fixed-in: PHP +Description: The (1) file_exists and (2) imap_reopen functions in PHP before 5.1.5 do not check for the safe_mode and open_basedir settings, which allows local users to bypass the settings. NOTE: the error_log function is covered by CVE-2006-3011, and the imap_open function is covered by CVE-2006-1017. + +Id: 25 +CVE: CVE-2006-4482 +Severity: +Reporter: +Published: 2006-08-31 +Extension: ext/standard +Range: +Affects: PHP +Fixed-in: PHP +Description: Multiple heap-based buffer overflows in the (1) str_repeat and (2) wordwrap functions in ext/standard/string.c in PHP before 5.1.5, when used on a 64-bit system, have unspecified impact and attack vectors, a different vulnerability than CVE-2006-1990. + +Id: 26 +CVE: CVE-2006-4483 +Severity: +Reporter: +Published: 2006-08-31 +Extension: ext/curl +Range: +Affects: PHP +Fixed-in: PHP +Description: The cURL extension files (1) ext/curl/interface.c and (2) ext/curl/streams.c in PHP before 5.1.5 permit the CURLOPT_FOLLOWLOCATION option when open_basedir or safe_mode is enabled, which allows attackers to perform unauthorized actions, possibly related to the realpath cache. + +Id: 27 +CVE: CVE-2006-4484 +Severity: +Reporter: +Published: 2006-08-31 +Extension: ext/gd +Range: +Affects: PHP +Fixed-in: PHP +Description: Buffer overflow in the LWZReadByte_ function in ext/gd/libgd/gd_gif_in.c in the GD extension in PHP before 5.1.5 allows remote attackers to have an unknown impact via a GIF file with input_code_size greater than MAX_LWZ_BITS, which triggers an overflow when initializing the table array. + +Id: 28 +CVE: CVE-2006-4485 +Severity: +Reporter: +Published: 2006-08-31 +Extension: ext/standard +Range: +Affects: PHP +Fixed-in: PHP +Description: The stripos function in PHP before 5.1.5 has unknown impact and attack vectors related to an out-of-bounds read. + +Id: 29 +CVE: CVE-2006-4486 +Severity: +Reporter: +Published: 2006-08-31 +Extension: core +Range: +Affects: PHP +Fixed-in: PHP +Description: Integer overflow in memory allocation routines in PHP before 5.1.6, when running on a 64-bit system, allows context-dependent attackers to bypass the memory_limit restriction. + +Id: 30 +CVE: CVE-2006-4625 +Severity: +Reporter: +Published: 2006-09-12 +Extension: ext/standard +Range: +Affects: PHP +Fixed-in: PHP +Description: PHP 4.x up to 4.4.4 and PHP 5 up to 5.1.6 allows local users to bypass certain Apache HTTP Server httpd.conf options, such as safe_mode and open_basedir, via the ini_restore function, which resets the values to their php.ini (Master Value) defaults. + +Id: 31 +CVE: CVE-2006-4812 +Severity: +Reporter: +Published: 2006-10-10 +Extension: core +Range: +Affects: PHP +Fixed-in: PHP +Description: Integer overflow in PHP 5 up to 5.1.6 and 4 before 4.3.0 allows remote attackers to execute arbitrary code via an argument to the unserialize PHP function with a large value for the number of array elements, which triggers the overflow in the Zend Engine ecalloc function (Zend/zend_alloc.c). + +Id: 32 +CVE: CVE-2006-5178 +Severity: +Reporter: +Published: 2006-10-10 +Extension: ext/standard +Range: +Affects: PHP +Fixed-in: PHP +Description: Race condition in the symlink function in PHP 5.1.6 and earlier allows local users to bypass the open_basedir restriction by using a combination of symlink, mkdir, and unlink functions to change the file path after the open_basedir check and before the file is opened by the underlying system, as demonstrated by symlinking a symlink into a subdirectory, to point to a parent directory via .. (dot dot) sequences, and then unlinking the resulting symlink. + +Id: 33 +CVE: CVE-2006-5465 +Severity: +Reporter: +Published: 2006-11-03 +Extension: ext/standard +Range: +Affects: PHP +Fixed-in: PHP +Description: Buffer overflow in PHP before 5.2.0 allows remote attackers to execute arbitrary code via crafted UTF-8 inputs to the (1) htmlentities or (2) htmlspecialchars functions. + +Id: 34 +CVE: CVE-2006-5706 +Severity: +Reporter: +Published: 2006-11-03 +Extension: ext/standard +Range: +Affects: PHP +Fixed-in: PHP +Description: Unspecified vulnerabilities in PHP, probably before 5.2.0, allow local users to bypass open_basedir restrictions and perform unspecified actions via unspecified vectors involving the (1) chdir and (2) tempnam functions. NOTE: the tempnam vector might overlap CVE-2006-1494. + +Id: 35 +CVE: CVE-2006-6383 +Severity: +Reporter: +Published: 2006-12-10 +Extension: ext/session +Range: +Affects: PHP +Fixed-in: PHP +Description: PHP 5.2.0 and 4.4 allows local users to bypass safe_mode and open_basedir restrictions via a malicious path and a null byte before a ";" in a session_save_path argument, followed by an allowed path, which causes a parsing inconsistency in which PHP validates the allowed path but sets session.save_path to the malicious path. + +Id: 36 +CVE: CVE-2007-0905 +Severity: +Reporter: unkown +Published: 2007-02-13 +Extension: ext/session +Range: +Affects: PHP 5.2.0 +Fixed-in: PHP 5.2.1 +Description: PHP before 5.2.1 allows attackers to bypass safe_mode and open_basedir restrictions via unspecified vectors in the session extension. NOTE: it is possible that this issue is a duplicate of CVE-2006-6383. + +Id: 37 +CVE: CVE-2007-0906 +Severity: +Reporter: +Published: 2007-02-13 +Extension: various +Range: +Affects: PHP 5.2.0 +Fixed-in: PHP 5.2.1 +Description: Multiple buffer overflows in PHP before 5.2.1 allow attackers to cause a denial of service and possibly execute arbitrary code via unspecified vectors in the (1) session, (2) zip, (3) imap, and (4) sqlite extensions; (5) stream filters; and the (6) str_replace, (7) mail, (8) ibase_delete_user, (9) ibase_add_user, and (10) ibase_modify_user functions. + +Id: 38 +CVE: CVE-2007-0907 +Severity: +Reporter: +Published: 2007-02-13 +Extension: core +Range: +Affects: PHP 5.2.0 +Fixed-in: PHP 5.2.1 +Description: Buffer underflow in PHP before 5.2.1 allows attackers to cause a denial of service via unspecified vectors involving the sapi_header_op function. + +Id: 39 +CVE: CVE-2007-0908 +Severity: +Reporter: +Published: 2007-02-13 +Extension: ext/wddx +Range: +Affects: PHP 5.2.0 +Fixed-in: PHP 5.2.1 +Description: The wddx extension in PHP before 5.2.1 allows remote attackers to obtain sensitive information via unspecified vectors. + +Id: 40 +CVE: CVE-2007-0909 +Severity: +Reporter: +Published: 2007-02-13 +Extension: ext/standard +Range: +Affects: PHP 5.2.0 +Fixed-in: PHP 5.2.1 +Description: Multiple format string vulnerabilities in PHP before 5.2.1 might allow attackers to execute arbitrary code via format string specifiers to (1) all of the *print functions on 64-bit systems, and (2) the odbc_result_all function. + +Id: 41 +CVE: CVE-2007-0910 +Severity: +Reporter: +Published: 2007-02-13 +Extension: core +Range: +Affects: PHP 5.2.0 +Fixed-in: PHP 5.2.1 +Description: Unspecified vulnerability PHP before 5.2.1 allows attackers to "clobber" certain super-global variables via unspecified vectors. + +Id: 42 +CVE: CVE-2007-0911 +Severity: +Reporter: +Published: 2007-02-13 +Extension: ext/standard +Range: +Affects: PHP 5.2.1 +Fixed-in: To be fixed in PHP 5.2.2 +Description: Off-by-one error in the str_ireplace function in PHP 5.2.1 might allow context-dependent attackers to cause a denial of service (crash). + +Id: 43 +CVE: CVE-2007-0988 +Severity: +Reporter: +Published: 2007-02-19 +Extension: core +Range: +Affects: PHP +Fixed-in: To be fixed in PHP 5.2.2 +Description: If unserializing untrusted data on 64-bit platforms, the zend_hash_init() function can be forced to enter an infinite loop, consuming CPU resources for a limited length of time, until the script timeout alarm aborts execution of the script.