File php7-CVE-2021-21707.patch of Package php7.24162
Index: php-7.2.5/ext/dom/domimplementation.c
===================================================================
--- php-7.2.5.orig/ext/dom/domimplementation.c 2018-04-24 17:09:53.000000000 +0200
+++ php-7.2.5/ext/dom/domimplementation.c 2021-11-26 11:33:06.574495527 +0100
@@ -114,6 +114,11 @@ PHP_METHOD(domimplementation, createDocu
pch2 = (xmlChar *) systemid;
}
+ if (strstr(name, "%00")) {
+ php_error_docref(NULL, E_WARNING, "URI must not contain percent-encoded NUL bytes");
+ RETURN_FALSE;
+ }
+
uri = xmlParseURI(name);
if (uri != NULL && uri->opaque != NULL) {
localname = xmlStrdup((xmlChar *) uri->opaque);
Index: php-7.2.5/ext/libxml/libxml.c
===================================================================
--- php-7.2.5.orig/ext/libxml/libxml.c 2018-04-24 17:09:55.000000000 +0200
+++ php-7.2.5/ext/libxml/libxml.c 2021-11-26 11:33:06.574495527 +0100
@@ -308,6 +308,10 @@ static void *php_libxml_streams_IO_open_
int isescaped=0;
xmlURI *uri;
+ if (strstr(filename, "%00")) {
+ php_error_docref(NULL, E_WARNING, "URI must not contain percent-encoded NUL bytes");
+ return NULL;
+ }
uri = xmlParseURI(filename);
if (uri && (uri->scheme == NULL ||
@@ -438,6 +442,11 @@ php_libxml_output_buffer_create_filename
if (URI == NULL)
return(NULL);
+ if (strstr(URI, "%00")) {
+ php_error_docref(NULL, E_WARNING, "URI must not contain percent-encoded NUL bytes");
+ return NULL;
+ }
+
puri = xmlParseURI(URI);
if (puri != NULL) {
if (puri->scheme != NULL)