pajoye Tue, 30 Nov 2010 11:04:06 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=305848
Log:
Fixed crash in zip extract method (possible CWE-170)
Changed paths:
U php/php-src/branches/PHP_5_2/NEWS
U php/php-src/branches/PHP_5_2/ext/zip/php_zip.c
U php/php-src/branches/PHP_5_3/NEWS
U php/php-src/branches/PHP_5_3/ext/zip/php_zip.c
U php/php-src/trunk/ext/zip/php_zip.c
Modified: php/php-src/branches/PHP_5_2/NEWS
===================================================================
--- php/php-src/branches/PHP_5_2/NEWS 2010-11-30 10:20:33 UTC (rev 305847)
+++ php/php-src/branches/PHP_5_2/NEWS 2010-11-30 11:04:06 UTC (rev 305848)
@@ -5,6 +5,8 @@
EXTR_OVERWRITE. (jorto at redhat dot com)
18 Nov 2010, PHP 5.2.15RC1
+- Fixed crash in zip extract method (possible CWE-170).
+ (Maksymilian Arciemowicz, Pierre)
- Fixed a possible double free in imap extension (Identified by Mateusz
Kocielski). (CVE-2010-4150). (Ilia)
- Fixed possible flaw in open_basedir (CVE-2010-3436). (Pierre)
Modified: php/php-src/branches/PHP_5_2/ext/zip/php_zip.c
===================================================================
--- php/php-src/branches/PHP_5_2/ext/zip/php_zip.c 2010-11-30 10:20:33 UTC
(rev 305847)
+++ php/php-src/branches/PHP_5_2/ext/zip/php_zip.c 2010-11-30 11:04:06 UTC
(rev 305848)
@@ -413,6 +413,9 @@
return 0;
}
path_cleaned = php_zip_make_relative_path(new_state.cwd,
new_state.cwd_length);
+ if(!path_cleaned) {
+ return 0;
+ }
path_cleaned_len = strlen(path_cleaned);
if (path_cleaned_len >= MAXPATHLEN || zip_stat(za, file, 0, &sb) != 0) {
Modified: php/php-src/branches/PHP_5_3/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3/NEWS 2010-11-30 10:20:33 UTC (rev 305847)
+++ php/php-src/branches/PHP_5_3/NEWS 2010-11-30 11:04:06 UTC (rev 305848)
@@ -49,6 +49,8 @@
- Upgraded bundled PCRE to version 8.10. (Ilia)
- Security enhancements:
+ . Fixed crash in zip extract method (possible CWE-170).
+ (Maksymilian Arciemowicz, Pierre)
. Paths with NULL in them (foo\0bar.txt) are now considered as invalid.
(Rasmus)
. Fixed a possible double free in imap extension (Identified by Mateusz
Kocielski). (CVE-2010-4150). (Ilia)
Modified: php/php-src/branches/PHP_5_3/ext/zip/php_zip.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/zip/php_zip.c 2010-11-30 10:20:33 UTC
(rev 305847)
+++ php/php-src/branches/PHP_5_3/ext/zip/php_zip.c 2010-11-30 11:04:06 UTC
(rev 305848)
@@ -162,6 +162,9 @@
*/
virtual_file_ex(&new_state, file, NULL, CWD_EXPAND);
path_cleaned = php_zip_make_relative_path(new_state.cwd,
new_state.cwd_length);
+ if(!path_cleaned) {
+ return 0;
+ }
path_cleaned_len = strlen(path_cleaned);
if (path_cleaned_len >= MAXPATHLEN || zip_stat(za, file, 0, &sb) != 0) {
Modified: php/php-src/trunk/ext/zip/php_zip.c
===================================================================
--- php/php-src/trunk/ext/zip/php_zip.c 2010-11-30 10:20:33 UTC (rev 305847)
+++ php/php-src/trunk/ext/zip/php_zip.c 2010-11-30 11:04:06 UTC (rev 305848)
@@ -162,6 +162,9 @@
*/
virtual_file_ex(&new_state, file, NULL, CWD_EXPAND TSRMLS_CC);
path_cleaned = php_zip_make_relative_path(new_state.cwd,
new_state.cwd_length);
+ if(!path_cleaned) {
+ return 0;
+ }
path_cleaned_len = strlen(path_cleaned);
if (path_cleaned_len >= MAXPATHLEN || zip_stat(za, file, 0, &sb) != 0) {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php