CVE-2026-53723
Awaiting Analysis Awaiting Analysis - Queue
XML External Entity Injection in Guzzle Services

Publication date: 2026-06-11

Last updated on: 2026-06-11

Assigner: GitHub, Inc.

Description
Guzzle Services provides an implementation of the Guzzle Command library that uses Guzzle service descriptions to describe web services, serialize requests, and parse responses into easy to use model structures. Versions prior ro 1.5.4 do not safely serialize scalar XML element values containing the CDATA terminator `]]>`. The XML request serializer writes values containing `<`, `>`, or `&` with `XMLWriter::writeCData($value)`. If attacker-controlled input contains `]]>`, the CDATA section closes early and the remainder is interpreted as XML markup. This is an outgoing request-body integrity issue, not a response parsing issue. The attacker does not need to control the service description or schema. Users are affected when all of the following are true: the application uses `guzzlehttp/guzzle-services` to serialize outgoing requests; a request parameter or `additionalParameters` schema uses `location: xml`; the value is serialized as XML element text, not an XML attribute; the value can contain attacker-controlled, user-controlled, tenant-controlled, or otherwise untrusted input; the value is not constrained by a safe `enum`, `pattern`, or custom filter that excludes `]]>`; and the downstream service parses the generated XML structurally and may act on unexpected, duplicated, or injected elements. Applications that serialize untrusted input into `location: xml` request parameters can emit XML containing attacker-controlled elements outside the intended text node. Depending on the receiving service, this can alter operation semantics, smuggle privileged fields, bypass modeled parameter boundaries, or create conflicting duplicated elements. Fixed service descriptions are sufficient if they contain an XML element parameter populated from attacker-controlled input. Users are not directly affected if they only use Guzzle Services to deserialize HTTP response bodies. Response XML parsing uses the response XML location visitor and does not invoke the vulnerable request XML serializer. Response bodies matter only in a second-order flow, such as parsing attacker-controlled response XML, storing or forwarding a parsed string value, and later using it as a `location: xml` request parameter. The issue is patched in `1.5.3` and later by safely splitting embedded CDATA terminators before serialization. The fix preserves the original scalar value as XML text and prevents injected nodes. As a workaround, constrain attacker-controlled XML element values with a strict `enum`, `pattern`, or custom filter that excludes `]]>`, or avoid serializing untrusted data into `location: xml` element text until patched. Where appropriate for the service schema, XML attributes are not affected because they are written with XMLWriter attribute APIs rather than CDATA sections. To determine whether action is needed, search service descriptions for request parameters using `location: xml`, including operation `parameters` and `additionalParameters`. Response-only `models` are not directly affected unless parsed values are reused for request serialization. For object and array parameters, review nested scalar properties because leaf element values can still be affected.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-06-11
Last Modified
2026-06-11
Generated
2026-06-11
AI Q&A
2026-06-11
EPSS Evaluated
N/A
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
guzzlehttp guzzle-services to 1.5.4 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-91 The product does not properly neutralize special elements that are used in XML, allowing attackers to modify the syntax, content, or commands of the XML before it is processed by an end system.
CWE-20 The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Compliance Impact

The vulnerability in guzzlehttp/guzzle-services allows attacker-controlled input to be injected into XML request bodies, potentially altering operation semantics or smuggling privileged fields. This could lead to unauthorized data manipulation or disclosure if the downstream service acts on the injected XML elements.

Such unauthorized data manipulation or injection could impact compliance with standards and regulations like GDPR or HIPAA, which require data integrity, confidentiality, and protection against unauthorized access or modification.

Therefore, if an application using affected versions of guzzlehttp/guzzle-services serializes untrusted input into XML requests without proper constraints or patches, it may risk violating these compliance requirements due to potential data integrity and security breaches.

Executive Summary

The vulnerability in guzzlehttp/guzzle-services versions prior to 1.5.4 involves unsafe serialization of scalar XML element values containing the CDATA terminator "]]>" during XML request serialization.

When attacker-controlled input includes "]]>", the CDATA section closes early, causing the remainder to be interpreted as XML markup outside the intended text node.

This allows injection of XML elements that can alter operation semantics, smuggle privileged fields, or bypass parameter boundaries in downstream services.

The issue affects applications that serialize untrusted input into XML element text parameters located in "location: xml" and is not related to response parsing.

The vulnerability is fixed in version 1.5.4 by safely splitting embedded CDATA terminators before serialization.

Impact Analysis

This vulnerability can impact you by allowing an attacker to inject malicious XML elements into outgoing requests.

Such injection can alter the intended operation semantics of the downstream service, smuggle privileged fields, bypass modeled parameter boundaries, or create conflicting duplicated elements.

Because the attacker does not need to control the service description or schema, any untrusted input serialized into XML element text parameters can be exploited.

This can lead to unauthorized actions or data manipulation in the downstream service that processes the crafted XML.

Detection Guidance

To detect this vulnerability, review your application's use of guzzlehttp/guzzle-services, specifically looking for request parameters or additionalParameters in service descriptions that use location: xml.

Search your service descriptions for parameters that serialize outgoing requests as XML element text and check if any of these values can contain untrusted input that includes the CDATA terminator sequence "]]>".

You can use commands like the following to search for location: xml parameters in your codebase or service description files:

  • grep -r 'location: xml' ./path-to-service-descriptions
  • grep -r 'additionalParameters' ./path-to-service-descriptions | grep 'location: xml'

Additionally, inspect logs or outgoing XML requests for presence of the CDATA terminator sequence "]]>" within element text values, which could indicate vulnerable serialization.

Mitigation Strategies

The primary mitigation is to upgrade guzzlehttp/guzzle-services to version 1.5.4 or later, where the vulnerability is patched by safely splitting embedded CDATA terminators before serialization.

If upgrading immediately is not possible, apply workarounds such as constraining untrusted input values that are serialized into location: xml element text using strict enums, patterns, or custom filters that exclude the CDATA terminator sequence "]]>".

Alternatively, avoid serializing untrusted data into location: xml element text parameters until the patch can be applied.

Review your service descriptions and code to identify and remediate any parameters that may be vulnerable.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-53723. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart