diff --git a/vendor/magento/framework/Webapi/ServiceInputProcessor.php b/vendor/magento/framework/Webapi/ServiceInputProcessor.php index 9d7fd443508..65987772c23 100644 --- a/vendor/magento/framework/Webapi/ServiceInputProcessor.php +++ b/vendor/magento/framework/Webapi/ServiceInputProcessor.php @@ -275,6 +275,12 @@ class ServiceInputProcessor implements ServicePayloadConverterInterface // convert to string directly to avoid situations when $className is object // which implements __toString method like \ReflectionObject $className = (string) $className; + if (is_subclass_of($className, \SimpleXMLElement::class) + || is_subclass_of($className, \DOMElement::class)) { + throw new SerializationException( + new Phrase('Invalid data type') + ); + } $class = new ClassReflection($className); if (is_subclass_of($className, self::EXTENSION_ATTRIBUTES_TYPE)) { $className = substr($className, 0, -strlen('Interface'));