summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--failed.txt2
-rw-r--r--php-cve-2026-6735.patch226
-rw-r--r--php-cve-2026-7261.patch150
-rw-r--r--php-cve-2026-7262.patch121
-rw-r--r--php-fpm.service2
-rw-r--r--php.spec20
6 files changed, 516 insertions, 5 deletions
diff --git a/failed.txt b/failed.txt
index 18493f3..c654b29 100644
--- a/failed.txt
+++ b/failed.txt
@@ -1,4 +1,4 @@
-===== 5.6.40-45 (2024-12-06)
+===== 5.6.40-46 (2026-05-19)
$ grep -r 'Tests failed' /var/lib/mock/scl56*/build.log
diff --git a/php-cve-2026-6735.patch b/php-cve-2026-6735.patch
new file mode 100644
index 0000000..ba1dbb0
--- /dev/null
+++ b/php-cve-2026-6735.patch
@@ -0,0 +1,226 @@
+From 3322601b31ccedeb13a3203bbe5fd7b6cb4679a9 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Tue, 19 May 2026 09:47:08 +0200
+Subject: [PATCH 5/5] GHSA-7qg2-v9fj-4mwv: [fpm] XSS within status endpoint
+
+Fixes GHSA-7qg2-v9fj-4mwv
+Fixes CVE-2026-6735
+
+(cherry picked from commit 99a5ad7441de9914246c7863adb6997396008b9d)
+(cherry picked from commit 943de7efee24c0e7d826a3469d3b35b4ad0f4193)
+---
+ NEWS | 4 ++
+ sapi/fpm/fpm/fpm_status.c | 20 ++++--
+ .../tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt | 62 +++++++++++++++++++
+ 3 files changed, 82 insertions(+), 4 deletions(-)
+ create mode 100644 sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt
+
+diff --git a/NEWS b/NEWS
+index b46e2b0c5d..d8ae595068 100644
+--- a/NEWS
++++ b/NEWS
+@@ -3,6 +3,10 @@ PHP NEWS
+
+ Backported from 8.2.31
+
++- FPM:
++ . Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735)
++ (Jakub Zelenka)
++
+ - SOAP:
+ . Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with
+ SOAP_PERSISTENCE_SESSION). (CVE-2026-7261) (ilutov)
+diff --git a/sapi/fpm/fpm/fpm_status.c b/sapi/fpm/fpm/fpm_status.c
+index a2ee398d29..d9a8263089 100644
+--- a/sapi/fpm/fpm/fpm_status.c
++++ b/sapi/fpm/fpm/fpm_status.c
+@@ -384,8 +384,8 @@ int fpm_status_handle_request(TSRMLS_D) /* {{{ */
+ /* no need to test the var 'full' */
+ if (full_syntax) {
+ int i, first;
+- size_t len;
+- char *query_string;
++ size_t len, len_uri;
++ char *query_string, *request_uri_string;
+ struct timeval duration, now;
+ #ifdef HAVE_FPM_LQ
+ float cpu;
+@@ -412,13 +412,22 @@ int fpm_status_handle_request(TSRMLS_D) /* {{{ */
+ }
+ }
+
++ request_uri_string = NULL;
++ len_uri = 0;
++ if (proc.request_uri[0] != '\0') {
++ if (!encode) {
++ request_uri_string = proc.request_uri;
++ } else {
++ request_uri_string = php_escape_html_entities_ex((unsigned char *)proc.request_uri, strlen(proc.request_uri), &len_uri, 1, ENT_DISALLOWED | ENT_HTML_DOC_XML1 | ENT_COMPAT, NULL, 1 TSRMLS_CC);
++ }
++ }
+ query_string = NULL;
+ len = 0;
+ if (proc.query_string[0] != '\0') {
+ if (!encode) {
+ query_string = proc.query_string;
+ } else {
+- query_string = php_escape_html_entities_ex((unsigned char *)proc.query_string, strlen(proc.query_string), &len, 1, ENT_HTML_IGNORE_ERRORS & ENT_COMPAT, NULL, 1 TSRMLS_CC);
++ query_string = php_escape_html_entities_ex((unsigned char *)proc.query_string, strlen(proc.query_string), &len, 1, ENT_DISALLOWED | ENT_HTML_DOC_XML1 | ENT_COMPAT, NULL, 1 TSRMLS_CC);
+ }
+ }
+
+@@ -445,7 +454,7 @@ int fpm_status_handle_request(TSRMLS_D) /* {{{ */
+ proc.requests,
+ duration.tv_sec * 1000000UL + duration.tv_usec,
+ proc.request_method[0] != '\0' ? proc.request_method : "-",
+- proc.request_uri[0] != '\0' ? proc.request_uri : "-",
++ request_uri_string ? request_uri_string: "-",
+ query_string ? "?" : "",
+ query_string ? query_string : "",
+ proc.content_length,
+@@ -461,6 +470,9 @@ int fpm_status_handle_request(TSRMLS_D) /* {{{ */
+ if (len > 0 && query_string) {
+ efree(query_string);
+ }
++ if (len_uri > 0 && request_uri_string) {
++ efree(request_uri_string);
++ }
+ }
+
+ if (full_post) {
+diff --git a/sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt b/sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt
+new file mode 100644
+index 0000000000..55827b1bc8
+--- /dev/null
++++ b/sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt
+@@ -0,0 +1,62 @@
++--TEST--
++FPM: Test status page
++--SKIPIF--
++<?php include "skipif.inc"; ?>
++--FILE--
++<?php
++
++include "include.inc";
++
++$logfile = dirname(__FILE__).'/php-fpm.log.tmp';
++$port = 9000+PHP_INT_SIZE;
++
++$cfg = <<<EOT
++[global]
++error_log = $logfile
++[unconfined]
++listen = 127.0.0.1:$port
++pm.status_path = /status
++pm = dynamic
++pm.max_children = 5
++pm.start_servers = 2
++pm.min_spare_servers = 2
++pm.max_spare_servers = 3
++EOT;
++
++$fpm = run_fpm($cfg, $tail);
++if (is_resource($fpm)) {
++ fpm_display_log($tail, 2);
++ try {
++
++ $html = run_request('127.0.0.1', $port, '/<script>alert(1)</script>', '<script>alert(2)</script>');
++
++ $html = run_request('127.0.0.1', $port, '/status', 'full&html');
++ var_dump(strpos($html, 'text/html') && strpos($html, 'DOCTYPE') && strpos($html, 'PHP-FPM Status Page'));
++ var_dump(strpos($html, 'alert(1)') && strpos($html, 'alert(2)'));
++ var_dump(strpos($html, '<script>'));
++ //var_dump($html);
++
++ echo "IPv4 ok\n";
++ } catch (Exception $e) {
++ echo "IPv4 error\n";
++ }
++
++ proc_terminate($fpm);
++ stream_get_contents($tail);
++ fclose($tail);
++ proc_close($fpm);
++}
++
++?>
++--EXPECTF--
++[%d-%s-%d %d:%d:%d] NOTICE: fpm is running, pid %d
++[%d-%s-%d %d:%d:%d] NOTICE: ready to handle connections
++bool(true)
++bool(true)
++bool(false)
++IPv4 ok
++--CLEAN--
++<?php
++ $logfile = dirname(__FILE__).'/php-fpm.log.tmp';
++ @unlink($logfile);
++?>
+--
+2.54.0
+
+From 630b48523b5a0de368138c421bd3dbae6b0552a0 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Tue, 19 May 2026 11:25:29 +0200
+Subject: [PATCH] relax test (may fail when script not in status page)
+
+(cherry picked from commit 31ed74945eb92e073b51bd8ca114a123c9c20990)
+---
+ sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt b/sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt
+index 55827b1bc8..674b4ddcb3 100644
+--- a/sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt
++++ b/sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt
+@@ -32,9 +32,11 @@ if (is_resource($fpm)) {
+
+ $html = run_request('127.0.0.1', $port, '/status', 'full&html');
+ var_dump(strpos($html, 'text/html') && strpos($html, 'DOCTYPE') && strpos($html, 'PHP-FPM Status Page'));
+- var_dump(strpos($html, 'alert(1)') && strpos($html, 'alert(2)'));
+- var_dump(strpos($html, '<script>'));
+- //var_dump($html);
++
++ // output only if script present but not escaped
++ if (strpos($html, 'alert') && strpos($html, '<script>')) {
++ var_dump($html);
++ }
+
+ echo "IPv4 ok\n";
+ } catch (Exception $e) {
+@@ -52,8 +54,6 @@ if (is_resource($fpm)) {
+ [%d-%s-%d %d:%d:%d] NOTICE: fpm is running, pid %d
+ [%d-%s-%d %d:%d:%d] NOTICE: ready to handle connections
+ bool(true)
+-bool(true)
+-bool(false)
+ IPv4 ok
+ --CLEAN--
+ <?php
+--
+2.54.0
+
+From 4abe506a9863ec2f236689fc6b64549cc2fcb260 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Tue, 19 May 2026 11:40:42 +0200
+Subject: [PATCH 2/2] fix test name
+
+(cherry picked from commit 16802565461621322e97ba7ac22e2699885ed73a)
+---
+ sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt b/sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt
+index 674b4ddcb3..912237c5e2 100644
+--- a/sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt
++++ b/sapi/fpm/tests/ghsa-7qg2-v9fj-4mwv-status-xss.phpt
+@@ -1,5 +1,5 @@
+ --TEST--
+-FPM: Test status page
++FPM: GHSA-7qg2-v9fj-4mwv - status xss
+ --SKIPIF--
+ <?php include "skipif.inc"; ?>
+ --FILE--
+--
+2.54.0
+
diff --git a/php-cve-2026-7261.patch b/php-cve-2026-7261.patch
new file mode 100644
index 0000000..e837601
--- /dev/null
+++ b/php-cve-2026-7261.patch
@@ -0,0 +1,150 @@
+From 7c59254cb466056131b09304c0d1001e6c434fe7 Mon Sep 17 00:00:00 2001
+From: Ilija Tovilo <ilija.tovilo@me.com>
+Date: Sun, 3 May 2026 19:57:16 +0200
+Subject: [PATCH 1/5] GHSA-m33r-qmcv-p97q: [soap] Fix use-after-free after
+ header parsing failure with SOAP_PERSISTENCE_SESSION
+
+Fixes GHSA-m33r-qmcv-p97q
+Fixes CVE-2026-7261
+
+(cherry picked from commit db2a7f9348fd5dda5fd162061786a664c417bf5b)
+(cherry picked from commit 5dd8dd8493d49bb6fcd810a6e9d2ffb6fdc15714)
+(cherry picked from commit 63cf032e9675d7d2bbc007c8c787597187a7567b)
+(cherry picked from commit dd14d36e31dd99b7589f917924840fe4f46ca022)
+(cherry picked from commit 7b354983a33c314b76c594c9c5b790e3b073dcf1)
+
+adapt test for 7.2
+
+(cherry picked from commit f91bcf961ac15eacabf33f86f62c17dbec4a39ab)
+(cherry picked from commit ab6fa685773d4efea4de2df4956c97ffd65637e2)
+(cherry picked from commit f91ab4e04bc2f254ea1e49e1b76ff55adbbe3892)
+
+adapt test for 5.6
+---
+ ext/soap/soap.c | 26 +++++++++--
+ ext/soap/tests/GHSA-m33r-qmcv-p97q.phpt | 62 +++++++++++++++++++++++++
+ 2 files changed, 85 insertions(+), 3 deletions(-)
+ create mode 100644 ext/soap/tests/GHSA-m33r-qmcv-p97q.phpt
+
+diff --git a/ext/soap/soap.c b/ext/soap/soap.c
+index 569701a469..21f11be7fa 100644
+--- a/ext/soap/soap.c
++++ b/ext/soap/soap.c
+@@ -1837,7 +1837,17 @@ PHP_METHOD(SoapServer, handle)
+ php_output_discard(TSRMLS_C);
+ soap_server_fault_ex(function, &h->retval, h TSRMLS_CC);
+ efree(fn_name);
+- if (service->type == SOAP_CLASS && soap_obj) {zval_ptr_dtor(&soap_obj);}
++ if (service->type == SOAP_CLASS && soap_obj) {
++#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
++ if (service->soap_class.persistance != SOAP_PERSISTENCE_SESSION) {
++ zval_ptr_dtor(&soap_obj);
++ soap_obj = NULL;
++ }
++#else
++ zval_ptr_dtor(&soap_obj);
++ soap_obj = NULL;
++#endif
++ }
+ goto fail;
+ } else if (EG(exception)) {
+ php_output_discard(TSRMLS_C);
+@@ -1852,7 +1862,17 @@ PHP_METHOD(SoapServer, handle)
+ soap_server_fault_ex(function, EG(exception), h TSRMLS_CC);
+ }
+ efree(fn_name);
+- if (service->type == SOAP_CLASS && soap_obj) {zval_ptr_dtor(&soap_obj);}
++ if (service->type == SOAP_CLASS && soap_obj) {
++#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
++ if (service->soap_class.persistance != SOAP_PERSISTENCE_SESSION) {
++ zval_ptr_dtor(&soap_obj);
++ soap_obj = NULL;
++ }
++#else
++ zval_ptr_dtor(&soap_obj);
++ soap_obj = NULL;
++#endif
++ }
+ goto fail;
+ }
+ } else if (h->mustUnderstand) {
+@@ -2838,7 +2858,7 @@ static void do_soap_call(zval* this_ptr,
+ } zend_catch {
+ _bailout = 1;
+ } zend_end_try();
+-
++
+ if (SOAP_GLOBAL(encoding) != NULL) {
+ xmlCharEncCloseFunc(SOAP_GLOBAL(encoding));
+ }
+diff --git a/ext/soap/tests/GHSA-m33r-qmcv-p97q.phpt b/ext/soap/tests/GHSA-m33r-qmcv-p97q.phpt
+new file mode 100644
+index 0000000000..ae94c67c96
+--- /dev/null
++++ b/ext/soap/tests/GHSA-m33r-qmcv-p97q.phpt
+@@ -0,0 +1,62 @@
++--TEST--
++GHSA-m33r-qmcv-p97q: Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION
++--CREDITS--
++Ilia Alshanetsky (iliaal)
++--EXTENSIONS--
++soap
++session
++--FILE--
++<?php
++
++class Handler {
++ function __call($name, $args) {
++ if ($name == "return") {
++ return new SoapFault('Server', 'denied');
++ } else if ($name == "throw") {
++ throw new SoapFault('Server', 'denied');
++ } else if ($name == "hello") {
++ return 'ok';
++ } else {
++ return new SoapFault("Server","Function $name doesn't exist");
++ }
++ }
++}
++
++session_start();
++
++$srv = new SoapServer(null, ['uri' => 'urn:a']);
++$srv->setClass(Handler::class);
++$srv->setPersistence(SOAP_PERSISTENCE_SESSION);
++
++$x = <<<XML
++<?xml version="1.0" encoding="UTF-8"?>
++<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="urn:a">
++ <soap:Header>
++ <a:return/>
++ </soap:Header>
++ <soap:Body>
++ <a:hello/>
++ </soap:Body>
++</soap:Envelope>
++XML;
++$srv->handle($x);
++
++$x = <<<XML
++<?xml version="1.0" encoding="UTF-8"?>
++<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="urn:a">
++ <soap:Header>
++ <a:throw/>
++ </soap:Header>
++ <soap:Body>
++ <a:hello/>
++ </soap:Body>
++</soap:Envelope>
++XML;
++$srv->handle($x);
++
++?>
++--EXPECT--
++<?xml version="1.0" encoding="UTF-8"?>
++<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>denied</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
++<?xml version="1.0" encoding="UTF-8"?>
++<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>denied</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+--
+2.54.0
+
diff --git a/php-cve-2026-7262.patch b/php-cve-2026-7262.patch
new file mode 100644
index 0000000..30cc1df
--- /dev/null
+++ b/php-cve-2026-7262.patch
@@ -0,0 +1,121 @@
+From 2000ef9d03eec8264287a4bcbd642496fe982f2d Mon Sep 17 00:00:00 2001
+From: Ilija Tovilo <ilija.tovilo@me.com>
+Date: Sat, 25 Apr 2026 00:44:37 +0200
+Subject: [PATCH 2/5] GHSA-hmxp-6pc4-f3vv: [soap] Fix broken Apache map value
+ NULL check
+
+Fixes GHSA-hmxp-6pc4-f3vv
+Fixes CVE-2026-7262
+
+(cherry picked from commit 79551ab8b1a97760c739e372f9bc359619f3554d)
+(cherry picked from commit aed3e63e282235b32a07ca28cc20728eedfcfec3)
+(cherry picked from commit 8c897384b867a573d52a04b455fe2da30671d0ea)
+(cherry picked from commit b41a11a9786cc5b6b343b47c37ad8c1fdc2dbf33)
+(cherry picked from commit 254773b5b1d0ef25409c35e74b87c5ef93459115)
+(cherry picked from commit c21561700dcfc3304322845c2d3da028c3c73345)
+(cherry picked from commit 16c2b25d363d73d72a3139e747cc9d5c8d5bef2b)
+(cherry picked from commit b1bc3b191eb9ff6ca90f90572ba8fac016163fe9)
+---
+ ext/soap/php_encoding.c | 2 +-
+ ext/soap/tests/GHSA-hmxp-6pc4-f3vv.phpt | 39 +++++++++++++++++++++++++
+ 2 files changed, 40 insertions(+), 1 deletion(-)
+ create mode 100644 ext/soap/tests/GHSA-hmxp-6pc4-f3vv.phpt
+
+diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
+index 0f85ddde1b..40e87f238e 100644
+--- a/ext/soap/php_encoding.c
++++ b/ext/soap/php_encoding.c
+@@ -2850,7 +2850,7 @@ static zval *to_zval_map(encodeTypePtr type, xmlNodePtr data TSRMLS_DC)
+ }
+
+ xmlValue = get_node(item->children, "value");
+- if (!xmlKey) {
++ if (!xmlValue) {
+ soap_error0(E_ERROR, "Encoding: Can't decode apache map, missing value");
+ }
+
+diff --git a/ext/soap/tests/GHSA-hmxp-6pc4-f3vv.phpt b/ext/soap/tests/GHSA-hmxp-6pc4-f3vv.phpt
+new file mode 100644
+index 0000000000..e46ab2e460
+--- /dev/null
++++ b/ext/soap/tests/GHSA-hmxp-6pc4-f3vv.phpt
+@@ -0,0 +1,39 @@
++--TEST--
++GHSA-hmxp-6pc4-f3vv: Null pointer dereference on missing Apache map value
++--CREDITS--
++Ilia Alshanetsky (iliaal)
++--EXTENSIONS--
++soap
++--FILE--
++<?php
++
++$request = <<<XML
++<?xml version="1.0" encoding="UTF-8"?>
++<soap:Envelope
++ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
++ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
++ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
++ xmlns:apache="http://xml.apache.org/xml-soap">
++
++ <soap:Body>
++ <test>
++ <map xsi:type="apache:Map">
++ <item><key>hello</key></item>
++ </map>
++ </test>
++ </soap:Body>
++</soap:Envelope>
++XML;
++
++$server = new SoapServer(null, [
++ 'uri' => 'urn:test',
++ 'typemap' => [['type_name' => 'anything']],
++]);
++$server->addFunction('test');
++function test($m) { return null; }
++$server->handle($request);
++
++?>
++--EXPECT--
++<?xml version="1.0" encoding="UTF-8"?>
++<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>SOAP-ERROR: Encoding: Can't decode apache map, missing value</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+--
+2.54.0
+
+From 873ac18f30679150c499b240062cf8895df7c664 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Thu, 7 May 2026 09:01:35 +0200
+Subject: [PATCH 4/5] NEWS from 8.2.31
+
+(cherry picked from commit 7dff10e9a31d469fcd436e10b06f8b2bf2758a68)
+(cherry picked from commit 1cbf0c27044bd54fb77de8a6bf993a7ab53892a4)
+(cherry picked from commit 6b9f5d1673522bb3cf5d77889919084024565c7f)
+(cherry picked from commit 5be222339cd6d299aa9170e6fa9edd51a5c42f39)
+(cherry picked from commit 8884e113e8351693eb4b5f1c58485ad0e4508d3a)
+(cherry picked from commit 5cf6ff5fcde53a1a941fea374b483e9ff89a9f9f)
+---
+ NEWS | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/NEWS b/NEWS
+index 24fa47ec2b..b46e2b0c5d 100644
+--- a/NEWS
++++ b/NEWS
+@@ -1,6 +1,14 @@
+ PHP NEWS
+ |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
++Backported from 8.2.31
++
++- SOAP:
++ . Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with
++ SOAP_PERSISTENCE_SESSION). (CVE-2026-7261) (ilutov)
++ . Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check).
++ (CVE-2026-7262) (ilutov)
++
+ Backported from 8.1.31
+
+ - CLI:
+--
+2.54.0
+
diff --git a/php-fpm.service b/php-fpm.service
index 687dfc0..0712a11 100644
--- a/php-fpm.service
+++ b/php-fpm.service
@@ -4,7 +4,7 @@
[Unit]
Description=The PHP FastCGI Process Manager
-After=syslog.target network.target
+After=network.target
[Service]
Type=notify
diff --git a/php.spec b/php.spec
index 121579e..9645f14 100644
--- a/php.spec
+++ b/php.spec
@@ -65,7 +65,7 @@
%global oraclelib 19.1
%global oracledir 19.24
%else
-%global oraclever 23.6
+%global oraclever 23.26.2
%global oraclemax 24
%global oraclelib 23.1
%global oracledir 23
@@ -141,7 +141,7 @@
Summary: PHP scripting language for creating dynamic web sites
Name: %{?scl_prefix}php
Version: 5.6.40
-Release: 45%{?dist}
+Release: 46%{?dist}
# All files licensed under PHP version 3.01, except
# Zend is licensed under Zend
# TSRM is licensed under BSD
@@ -272,6 +272,9 @@ Patch273: php-cve-2024-11234.patch
Patch274: php-cve-2024-8932.patch
Patch275: php-cve-2024-11233.patch
Patch276: php-ghsa-4w77-75f9-2c8w.patch
+Patch277: php-cve-2026-7261.patch
+Patch278: php-cve-2026-7262.patch
+Patch279: php-cve-2026-6735.patch
# Fixes for tests (300+)
# Factory is droped from system tzdata
@@ -1079,6 +1082,9 @@ sed -e 's/php-devel/%{?scl_prefix}php-devel/' -i scripts/phpize.in
%patch -P274 -p1 -b .cve8932
%patch -P275 -p1 -b .cve11233
%patch -P276 -p1 -b .ghsa4w77
+%patch -P277 -p1 -b .cve7261
+%patch -P278 -p1 -b .cve7262
+%patch -P279 -p1 -b .cve6735
# Fixes for tests
%patch -P300 -p1 -b .datetests
@@ -1851,7 +1857,7 @@ cat << EOF
WARNING : PHP 5.6 have reached its "End of Life" in
January 2019. Even, if this package includes some of
- the important security fixes, backported from 8.1, the
+ the important security fixes, backported from 8.2, the
UPGRADE to a maintained version is very strongly RECOMMENDED.
=====================================================================
@@ -2029,6 +2035,14 @@ EOF
%changelog
+* Tue May 12 2026 Remi Collet <remi@remirepo.net> - 5.6.40-46
+- Fix XSS within status endpoint
+ CVE-2026-6735
+- Fix Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION
+ CVE-2026-7261
+- Fix Broken Apache map value NULL check
+ CVE-2026-7262
+
* Fri Dec 6 2024 Remi Collet <remi@remirepo.net> - 5.6.40-45
- Add support for MySQL 8's Unicode types (utf8mb4)
https://github.com/remicollet/remirepo/issues/280