CVE-2026-92932: MISP sachertortephp Xml::build() Operator Precedence Bypass Allows Unintended HTTPS SSRF When readFile Is Disabled

Published Sep 17, 2026
·
Updated

In the MISP sachertortephp library, the Xml::build() static method in lib/Cake/Utility/Xml.php contains a logic error in the conditional that gates network-based XML fetching. The original condition was written as: $options['readFile'] && strpos($input, 'http://') === 0 || strpos($input, 'https://') === 0. Because PHP's && operator has higher precedence than ||, the expression is evaluated as ($options['readFile'] && strpos($input, 'http://') === 0) || strpos($input, 'https://') === 0. As a result, when a caller explicitly sets the readFile option to false to disable file and URL reading, an input string beginning with https:// still satisfies the condition and triggers a network fetch via HttpSocket (configured to follow up to 10 redirects). The http:// branch is correctly gated by the readFile flag, but the https:// branch is not. An attacker who can influence the $input parameter passed to Xml::build() can therefore force the application to issue an outbound HTTPS request to an attacker-controlled or internal URL, even though the caller intended to suppress all remote reads. The fetched response is parsed as XML and may be returned to the caller, enabling information disclosure from internal services or external targets. This constitutes a Server-Side Request Forgery (SSRF) weakness with an information-disclosure impact. The vulnerability requires that the code path in Xml::build() be reachable with attacker-controlled input and that the readFile option be set to false (or the caller expects it to be false).

Affected Software

1 affected component
MISP sachertortephp

Event History

Sep 17, 2026
CVE Published
via MITRE·12:33 PM
Data Sourced
via MITRE·12:33 PM
RemedyDescriptionWeakness

Frequently Asked Questions

1

Who is exposed to this issue?

Applications using the affected Xml::build() method are exposed when an attacker can control its input and the application explicitly sets readFile to false. The bypass applies to inputs beginning with https://; http:// inputs remain gated by the flag.

2

What does an attacker need to exploit it?

The attacker needs to influence the string passed as the $input parameter to Xml::build() and make it begin with an HTTPS URL. No ability to enable readFile is required, because the HTTPS branch bypasses that setting.

3

What network behavior can exploitation trigger?

The application can make an outbound HTTPS request through HttpSocket to an attacker-controlled or internal URL. HttpSocket is configured to follow up to 10 redirects, and the fetched response is parsed as XML and may be returned to the caller.

4

How can I reduce exposure if I cannot apply the referenced fix immediately?

Do not pass attacker-influenced strings to Xml::build(), particularly strings that may begin with https://. Enforce an allowlist or reject URL-like input before it reaches this method, and restrict outbound network access from the application where possible.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203