mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-01-27 12:01:38 +01:00
php 8.2.29: CVE-2025-14177
Upstream Repository: https://github.com/php/php-src.git Bug Details: https://nvd.nist.gov/vuln/detail/CVE-2025-14177 Type: Security Fix CVE: CVE-2025-14177 Score: 7.5 Patch: https://github.com/php/php-src/commit/c5f28c7cf0a0 Signed-off-by: Anil Dongare <adongare@cisco.com> Signed-off-by: Anuj Mittal <anuj.mittal@oss.qualcomm.com>
This commit is contained in:
parent
0feefa82c0
commit
2759d8870e
84
meta-oe/recipes-devtools/php/php/CVE-2025-14177.patch
Normal file
84
meta-oe/recipes-devtools/php/php/CVE-2025-14177.patch
Normal file
|
|
@ -0,0 +1,84 @@
|
||||||
|
From 7aac95c5280ea395ccfcd624cae7e87749ff6eeb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Niels Dossche <7771979+ndossche@users.noreply.github.com>
|
||||||
|
Date: Tue, 25 Nov 2025 23:11:38 +0100
|
||||||
|
Subject: [PATCH] Fix GH-20584: Information Leak of Memory
|
||||||
|
|
||||||
|
The string added had uninitialized memory due to
|
||||||
|
php_read_stream_all_chunks() not moving the buffer position, resulting
|
||||||
|
in the same data always being overwritten instead of new data being
|
||||||
|
added to the end of the buffer.
|
||||||
|
|
||||||
|
This is backport as there is a security impact as described in
|
||||||
|
GHSA-3237-qqm7-mfv7 .
|
||||||
|
|
||||||
|
CVE: CVE-2025-14177
|
||||||
|
Upstream-Status: Backport [https://github.com/php/php-src/commit/c5f28c7cf0a0]
|
||||||
|
|
||||||
|
(cherry picked from commit c5f28c7cf0a052f48e47877c7aa5c5bcc54f1cfc)
|
||||||
|
Signed-off-by: Anil Dongare <adongare@cisco.com>
|
||||||
|
---
|
||||||
|
ext/standard/image.c | 1 +
|
||||||
|
ext/standard/tests/image/gh20584.phpt | 39 +++++++++++++++++++++++++++
|
||||||
|
2 files changed, 40 insertions(+)
|
||||||
|
create mode 100644 ext/standard/tests/image/gh20584.phpt
|
||||||
|
|
||||||
|
diff --git a/ext/standard/image.c b/ext/standard/image.c
|
||||||
|
index 2bd5429efac..15761364c34 100644
|
||||||
|
--- a/ext/standard/image.c
|
||||||
|
+++ b/ext/standard/image.c
|
||||||
|
@@ -403,6 +403,7 @@ static size_t php_read_stream_all_chunks(php_stream *stream, char *buffer, size_
|
||||||
|
if (read_now < stream->chunk_size && read_total != length) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
+ buffer += read_now;
|
||||||
|
} while (read_total < length);
|
||||||
|
|
||||||
|
return read_total;
|
||||||
|
diff --git a/ext/standard/tests/image/gh20584.phpt b/ext/standard/tests/image/gh20584.phpt
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..d117f218202
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/ext/standard/tests/image/gh20584.phpt
|
||||||
|
@@ -0,0 +1,39 @@
|
||||||
|
+--TEST--
|
||||||
|
+GH-20584 (Information Leak of Memory)
|
||||||
|
+--CREDITS--
|
||||||
|
+Nikita Sveshnikov (Positive Technologies)
|
||||||
|
+--FILE--
|
||||||
|
+<?php
|
||||||
|
+// Minimal PoC: corruption/uninitialized memory leak when reading APP1 via php://filter
|
||||||
|
+$file = __DIR__ . '/gh20584.jpg';
|
||||||
|
+
|
||||||
|
+// Make APP1 large enough so it is read in multiple chunks
|
||||||
|
+$chunk = 8192;
|
||||||
|
+$tail = 123;
|
||||||
|
+$payload = str_repeat('A', $chunk) . str_repeat('B', $chunk) . str_repeat('Z',
|
||||||
|
+$tail);
|
||||||
|
+$app1Len = 2 + strlen($payload);
|
||||||
|
+
|
||||||
|
+// Minimal JPEG: SOI + APP1 + SOF0(1x1) + EOI
|
||||||
|
+$sof = "\xFF\xC0" . pack('n', 11) . "\x08" . pack('n',1) . pack('n',1) .
|
||||||
|
+"\x01\x11\x00";
|
||||||
|
+$jpeg = "\xFF\xD8" . "\xFF\xE1" . pack('n', $app1Len) . $payload . $sof .
|
||||||
|
+"\xFF\xD9";
|
||||||
|
+file_put_contents($file, $jpeg);
|
||||||
|
+
|
||||||
|
+// Read through a filter to enforce multiple reads
|
||||||
|
+$src = 'php://filter/read=string.rot13|string.rot13/resource=' . $file;
|
||||||
|
+$info = null;
|
||||||
|
+@getimagesize($src, $info);
|
||||||
|
+$exp = $payload;
|
||||||
|
+$ret = $info['APP1'];
|
||||||
|
+
|
||||||
|
+var_dump($ret === $exp);
|
||||||
|
+
|
||||||
|
+?>
|
||||||
|
+--CLEAN--
|
||||||
|
+<?php
|
||||||
|
+@unlink(__DIR__ . '/gh20584.jpg');
|
||||||
|
+?>
|
||||||
|
+--EXPECT--
|
||||||
|
+bool(true)
|
||||||
|
--
|
||||||
|
2.43.5
|
||||||
|
|
||||||
|
|
@ -20,6 +20,7 @@ SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
|
||||||
file://0009-php-don-t-use-broken-wrapper-for-mkdir.patch \
|
file://0009-php-don-t-use-broken-wrapper-for-mkdir.patch \
|
||||||
file://0010-iconv-fix-detection.patch \
|
file://0010-iconv-fix-detection.patch \
|
||||||
file://0001-Change-whether-to-inline-XXH3_hashLong_withSecret-to.patch \
|
file://0001-Change-whether-to-inline-XXH3_hashLong_withSecret-to.patch \
|
||||||
|
file://CVE-2025-14177.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI:append:class-target = " \
|
SRC_URI:append:class-target = " \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user