Low, CVSS 3.7MavenPublished
Micronaut has Unbounded bundleCache in ResourceBundleMessageSource that Allows Memory Exhaustion via Accept-Language Header
CVE-2026-44242 · GHSA-3rfq-4wpf-qqw3
- Affected
- Maven io.micronaut:micronaut-inject >= 4.10.0, < 4.10.22; >= 3.10.0, < 3.10.6; < 3.8.14
- Fixed in
- 3.8.144.10.223.10.6· Vendor fix available
- Issue
- ResourceBundleMessageSource maintains two caches: messageCache (bounded at 100 entries via ConcurrentLinkedHashMap) and bundleCache (unbounded ConcurrentHashMap). The bundleCache is keyed by (Locale, baseName) where the locale originates from the HTTP Accept-Language header. In applications that explicitly register a ResourceBundleMessageSource bean and serve HTML error responses, an unauthenticated attacker can exhaust heap memory by sending requests with large numbers of unique Accept-Language values, each causing a new entry in the unbounded bundleCache. Unlike GHSA-2hcp-gjrf-7fhc and the sibling messageCache (both bounded), bundleCache was not updated to use a bounded cache implementation. Details The bundleCache is initialized in inject/src/main/java/io/micronaut/context/i18n/ResourceBundleMessageSource.java at line 150: The resolveBundle() method at line 169 inserts into bundleCache with no eviction policy: The attack path requires: 1. The application registers a…
Recommended action: Upgrade to 4.10.22, 3.10.6 or 3.8.14 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.