From 7128dafa9be98efcf6d9fcac940205009bc5149e Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Nov 01 2019 12:23:19 +0000 Subject: import rh-php71-php-7.1.30-2.el7 --- diff --git a/SOURCES/php-7.1.30-CVE-2019-11043.patch b/SOURCES/php-7.1.30-CVE-2019-11043.patch new file mode 100644 index 0000000..b992e59 --- /dev/null +++ b/SOURCES/php-7.1.30-CVE-2019-11043.patch @@ -0,0 +1,132 @@ +From ab061f95ca966731b1c84cf5b7b20155c0a1c06a Mon Sep 17 00:00:00 2001 +From: Jakub Zelenka +Date: Sat, 12 Oct 2019 15:56:16 +0100 +Subject: [PATCH] Fix bug #78599 (env_path_info underflow can lead to RCE) + (CVE-2019-11043) + +--- + NEWS | 4 +- + sapi/fpm/fpm/fpm_main.c | 4 +- + .../tests/bug78599-path-info-underflow.phpt | 61 +++++++++++++++++++ + sapi/fpm/tests/tester.inc | 11 +++- + 4 files changed, 75 insertions(+), 5 deletions(-) + create mode 100644 sapi/fpm/tests/bug78599-path-info-underflow.phpt + +diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c +index 24a7e5d56ac6..50f92981f1fb 100644 +--- a/sapi/fpm/fpm/fpm_main.c ++++ b/sapi/fpm/fpm/fpm_main.c +@@ -1209,8 +1209,8 @@ static void init_request_info(void) + path_info = script_path_translated + ptlen; + tflag = (slen != 0 && (!orig_path_info || strcmp(orig_path_info, path_info) != 0)); + } else { +- path_info = env_path_info ? env_path_info + pilen - slen : NULL; +- tflag = (orig_path_info != path_info); ++ path_info = (env_path_info && pilen > slen) ? env_path_info + pilen - slen : NULL; ++ tflag = path_info && (orig_path_info != path_info); + } + + if (tflag) { +diff --git a/sapi/fpm/tests/bug78599-path-info-underflow.phpt b/sapi/fpm/tests/bug78599-path-info-underflow.phpt +new file mode 100644 +index 000000000000..edd4e0d49699 +--- /dev/null ++++ b/sapi/fpm/tests/bug78599-path-info-underflow.phpt +@@ -0,0 +1,61 @@ ++--TEST-- ++FPM: bug78599 - env_path_info underflow - CVE-2019-11043 ++--SKIPIF-- ++ ++--FILE-- ++start(); ++$tester->expectLogStartNotices(); ++$uri = $tester->makeSourceFile(); ++$tester ++ ->request( ++ '', ++ [ ++ 'SCRIPT_FILENAME' => $uri . "/" . str_repeat('A', 35), ++ 'PATH_INFO' => '', ++ 'HTTP_HUI' => str_repeat('PTEST', 1000), ++ ], ++ $uri ++ ) ++ ->expectBody( ++ [ ++ 'Test Start', ++ 'string(0) ""', ++ 'Test End' ++ ] ++ ); ++$tester->terminate(); ++$tester->close(); ++ ++?> ++Done ++--EXPECT-- ++Done ++--CLEAN-- ++ +diff --git a/sapi/fpm/tests/tester.inc b/sapi/fpm/tests/tester.inc +index 70c03ad70f1c..3b6702866cc1 100644 +--- a/sapi/fpm/tests/tester.inc ++++ b/sapi/fpm/tests/tester.inc +@@ -513,7 +513,7 @@ class Tester + return new Response(null, true); + } + if (is_null($uri)) { +- $uri = $this->makeFile('src.php', $this->code); ++ $uri = $this->makeSourceFile(); + } + + $params = array_merge( +@@ -538,7 +538,6 @@ class Tester + ], + $headers + ); +- + try { + $this->response = new Response( + $this->getClient($address, $connKeepAlive)->request_data($params, false) +@@ -944,6 +943,14 @@ class Tester + return $filePath; + } + ++ /** ++ * @return string ++ */ ++ public function makeSourceFile() ++ { ++ return $this->makeFile('src.php', $this->code); ++ } ++ + /** + * @param string|null $msg + */ diff --git a/SPECS/php.spec b/SPECS/php.spec index f009b61..23e407c 100644 --- a/SPECS/php.spec +++ b/SPECS/php.spec @@ -88,7 +88,7 @@ Summary: PHP scripting language for creating dynamic web sites Name: %{?scl_prefix}php Version: 7.1.30 -Release: 1%{?dist} +Release: 2%{?dist} # All files licensed under PHP version 3.01, except # Zend is licensed under Zend # TSRM is licensed under BSD @@ -135,6 +135,7 @@ Patch47: php-5.6.3-phpinfo.patch # Upstream fixes (100+) # Security fixes (200+) +Patch200: php-7.1.30-CVE-2019-11043.patch # Fixes for tests (300+) # Factory is droped from system tzdata @@ -682,6 +683,7 @@ sed -e 's/php-devel/%{?scl_prefix}php-devel/' -i scripts/phpize.in # upstream patches # security patches +%patch200 -p1 -b .cve11043 # Fixes for tests %patch300 -p1 -b .datetests @@ -1575,6 +1577,9 @@ fi %changelog +* Tue Oct 29 2019 Remi Collet - 7.1.30-2 +- fix underflow in env_path_info in fpm_main.c CVE-2019-11043 + * Wed Jul 10 2019 Remi Collet - 7.1.30-1 - rebase to 7.1.30 #1631672