Описание
Micronaut vulnerable to DoS via crafted form-urlencoded body binding with descending array indices
In JsonBeanPropertyBinder::expandArrayToThreshold in io.micronaut:micronaut-json-core before Micronaut 4 4.10.16 and in Micronaut 3 before 3.10.5 does not correctly handle descending array index order during form-urlencoded body binding, which allows remote attackers to cause a denial of service (non-terminating loop, CPU exhaustion, and OutOfMemoryError) via crafted indexed form parameters (e.g., authors[1].name followed by authors[0].name).
Example
With such an application
Sending curl -v -X POST 'http://127.0.0.1:8080/submit' -H 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'authors[1].name=RobertGalbraith' --data-urlencode 'authors[0].name=JKRowling' causes sustained CPU usage and unbounded memory growth (eventually OutOfMemoryError).
Patches
For Micronaut 4, the problem has been patched in micronaut-core, dependencies with group id io.micronaut, since 4.10.16.
For Micronaut 3, the problem has been patched since 3.10.5
Users upgrade to the latest version of the framework.
Workarounds
There is no way for users to fix or remediate the vulnerability without upgrading.
References
PR Fix: https://github.com/micronaut-projects/micronaut-core/pull/12410
Ссылки
- https://github.com/micronaut-projects/micronaut-core/security/advisories/GHSA-43w5-mmxv-cpvh
- https://nvd.nist.gov/vuln/detail/CVE-2026-33013
- https://github.com/micronaut-projects/micronaut-core/pull/12410
- https://github.com/micronaut-projects/micronaut-core/commit/1afe509677c51b320041b7a2c177366d4a4deb55
- https://github.com/micronaut-projects/micronaut-core/releases/tag/v3.10.5
- https://github.com/micronaut-projects/micronaut-core/releases/tag/v4.10.16
Пакеты
io.micronaut:micronaut-json-core
>= 4.0.0-M1, < 4.10.16
4.10.16
io.micronaut:micronaut-json-core
>= 3.9.0, < 3.10.5
3.10.5
io.micronaut:micronaut-json-core
< 3.8.13
3.8.13
Связанные уязвимости
Micronaut Framework is a JVM-based full stack Java framework designed for building modular, easily testable JVM applications. Versions prior to both 4.10.16 and 3.10.5 do not correctly handle descending array index order during form-urlencoded body binding in theJsonBeanPropertyBinder::expandArrayToThreshold, which allows remote attackers to cause a DoS (non-terminating loop, CPU exhaustion, and OutOfMemoryError) via crafted indexed form parameters (e.g., authors[1].name followed by authors[0].name). This issue has been fixed in versions 4.10.16 and 3.10.5.
Micronaut Framework is a JVM-based full stack Java framework designed for building modular, easily testable JVM applications. Versions prior to both 4.10.16 and 3.10.5 do not correctly handle descending array index order during form-urlencoded body binding in theJsonBeanPropertyBinder::expandArrayToThreshold, which allows remote attackers to cause a DoS (non-terminating loop, CPU exhaustion, and OutOfMemoryError) via crafted indexed form parameters (e.g., authors[1].name followed by authors[0].name). This issue has been fixed in versions 4.10.16 and 3.10.5.