Summary
CVE-2026-47891 is a resource allocation vulnerability affecting Spring Framework. In Spring WebFlux applications that use the Aalto XML processor to parse XML input, the maxInMemorySize limit is not correctly enforced, allowing unbounded memory consumption while processing XML content. The issue is rated CRITICAL with a CVSS v3.1 base score of 9.8.
Technical details
- Root cause: when a Spring WebFlux application relies on the Aalto XML processor (via
Jaxb2Decoder) to decode XML request bodies, the configuredmaxInMemorySizerestriction, intended to cap the amount of data buffered in memory, is bypassed. - Trigger condition: an XML payload is submitted to an endpoint that decodes it through the affected WebFlux/Aalto XML decoding path.
- Attack vector: network-based; no authentication or user interaction is required to submit the crafted request.
- Impact: because the memory limit is not honored, an attacker can cause excessive memory allocation, leading to resource exhaustion and potential denial of service on the affected application.
Affected software
- Spring Framework 7.0.0 through 7.0.8
- Spring Framework 6.2.0 through 6.2.19
- Spring Framework 6.1.0 through 6.1.28
- Spring Framework 6.0.0 through 6.0.30
- Spring Framework 5.3.0 through 5.3.49
- Spring Framework 5.2.25.RELEASE and earlier
Severity
CVSS v3.1 Base Score: 9.8 (CRITICAL)
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Mitigation and recommended actions
- Immediate: upgrade to the fixed release for your branch — Spring Framework 7.0.9 (open source); enterprise-supported customers on older lines should apply 7.0.8.1, 6.2.20, 6.1.29, 6.0.31, 5.3.50, or 5.2.26 as applicable to their support entitlement.
- If no patch can be applied immediately: review any WebFlux endpoints that decode XML via the Aalto processor and restrict or disable XML payload decoding where not required, and apply external request-size/network-level controls to limit exposure until the upgrade is completed.
How IONIX identifies potentially affected assets
IONIX matches the following signals against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Raw response body:
Caused by: org.springframework.data.(also matchesat: org.springframework.data.),org.springframework.data.mapping.MappingException,org.springframework.data.repository.RepositoryCreationException,/WEB-INF/lib/spring-data-commons-<version>.jar,spring-data-commons-<version>.jar,/META-INF/MANIFEST.MF ... spring-data-commons

