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. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →