diff --git a/UPGRADING b/UPGRADING
index 1f9d36a142700..3684ca6e229c6 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -45,6 +45,11 @@ PHP 8.5 UPGRADE NOTES
change, but should more closely match user expectations, demonstrated by
GH-15753 and GH-16198.
+- DOM:
+ . Cloning a DOMNamedNodeMap, DOMNodeList, Dom\NamedNodeMap, Dom\NodeList,
+ Dom\HTMLCollection, and Dom\DtdNamedNodeMap. This never actually resulted
+ in a working object, so the impact should actually be zero.
+
- FileInfo:
. finfo_file() and finfo::file() now throws a ValueError instead of a
TypeError when $filename contains nul bytes.
diff --git a/ext/dom/php_dom.c b/ext/dom/php_dom.c
index 5df8a1cb1e1ce..66a25d816e6b9 100644
--- a/ext/dom/php_dom.c
+++ b/ext/dom/php_dom.c
@@ -806,6 +806,7 @@ PHP_MINIT_FUNCTION(dom)
dom_nnodemap_object_handlers.free_obj = dom_nnodemap_objects_free_storage;
dom_nnodemap_object_handlers.read_dimension = dom_nodemap_read_dimension;
dom_nnodemap_object_handlers.has_dimension = dom_nodemap_has_dimension;
+ dom_nnodemap_object_handlers.clone_obj = NULL;
memcpy(&dom_nodelist_object_handlers, &dom_nnodemap_object_handlers, sizeof(zend_object_handlers));
dom_nodelist_object_handlers.read_dimension = dom_nodelist_read_dimension;
@@ -823,7 +824,6 @@ PHP_MINIT_FUNCTION(dom)
dom_html_collection_object_handlers.read_dimension = dom_html_collection_read_dimension;
dom_html_collection_object_handlers.has_dimension = dom_html_collection_has_dimension;
dom_html_collection_object_handlers.get_gc = dom_html_collection_get_gc;
- dom_html_collection_object_handlers.clone_obj = NULL;
memcpy(&dom_object_namespace_node_handlers, &dom_object_handlers, sizeof(zend_object_handlers));
dom_object_namespace_node_handlers.offset = XtOffsetOf(dom_object_namespace_node, dom.std);
diff --git a/ext/dom/tests/clone_list_map_collection.phpt b/ext/dom/tests/clone_list_map_collection.phpt
new file mode 100644
index 0000000000000..1eb91c46069be
--- /dev/null
+++ b/ext/dom/tests/clone_list_map_collection.phpt
@@ -0,0 +1,50 @@
+--TEST--
+Cloning node lists, maps, and collections should fail
+--EXTENSIONS--
+dom
+--FILE--
+loadXML('');
+try {
+ clone $dom->documentElement->attributes;
+} catch (Error $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ clone $dom->documentElement->childNodes;
+} catch (Error $e) {
+ echo $e->getMessage(), "\n";
+}
+
+$dom = Dom\XMLDocument::createFromString(']>');
+try {
+ clone $dom->documentElement->attributes;
+} catch (Error $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ clone $dom->documentElement->childNodes;
+} catch (Error $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ clone $dom->documentElement->children;
+} catch (Error $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ clone $dom->doctype->entities;
+} catch (Error $e) {
+ echo $e->getMessage(), "\n";
+}
+
+?>
+--EXPECT--
+Trying to clone an uncloneable object of class DOMNamedNodeMap
+Trying to clone an uncloneable object of class DOMNodeList
+Trying to clone an uncloneable object of class Dom\NamedNodeMap
+Trying to clone an uncloneable object of class Dom\NodeList
+Trying to clone an uncloneable object of class Dom\HTMLCollection
+Trying to clone an uncloneable object of class Dom\DtdNamedNodeMap