CVE-2026-44242: Micronaut has Unbounded `bundleCache` in `ResourceBundleMessageSource` that Allows Memory Exhaustion via `Accept-Language` Header
(updated )
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.
References
- github.com/advisories/GHSA-3rfq-4wpf-qqw3
- github.com/micronaut-projects/micronaut-core/releases/tag/v3.10.6
- github.com/micronaut-projects/micronaut-core/releases/tag/v3.8.14
- github.com/micronaut-projects/micronaut-core/releases/tag/v4.10.22
- github.com/micronaut-projects/micronaut-core/security/advisories/GHSA-3rfq-4wpf-qqw3
- nvd.nist.gov/vuln/detail/CVE-2026-44242
Code Behaviors & Features
Detect and mitigate CVE-2026-44242 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →