Executive brief
Zeep is a Python library used to communicate with SOAP-based web services. A vulnerability exists where the library fails to block external web requests when parsing service definitions, even if specifically configured to do so. An attacker could use this to force the server to make unauthorized requests to internal systems or cloud metadata services, potentially exposing sensitive internal information.
Technical details
A regression introduced in version 4.0.0 caused the 'Settings.forbid_external' option to be disconnected from the underlying logic. When parsing WSDL or XSD documents, Zeep follows transitive references such as xsd:import, xsd:include, and wsdl:import. Because the security toggle was non-functional, an attacker providing a malicious WSDL can coerce the application into performing outbound HTTP/HTTPS requests to arbitrary internal or external URLs. This SSRF can be used to target internal services or cloud provider metadata endpoints (e.g., 169.254.169.254). The issue is fixed in version 4.3.3 by correctly wiring the configuration to the transport layer.
Affected products
- mvantellingen zeep >= 4.0.0, < 4.3.3
Timeline
- 2026-06-18: patched: Fix committed to repository
- 2026-06-19: advisory: GitHub Advisory published
References
- https://github.com/mvantellingen/python-zeep/security/advisories/GHSA-4cc2-g9w2-fhf6
- https://github.com/mvantellingen/python-zeep/commit/83eb07bc6c84d841329d4f88856fecdba86f753e
- https://github.com/mvantellingen/python-zeep/releases/tag/4.3.3
- https://api.github.com/repos/mvantellingen/python-zeep/security-advisories/GHSA-4cc2-g9w2-fhf6