CVE-2026-44242Micronaut Framework 在 4.10.22 之前的版本中存在安全漏洞。由于 bundleCache 使用 (Locale, baseName) 作为键,且 Locale 源自 HTTP Accept-Language 请求头,攻击者可以通过发送大量具有唯一 Accept-Language 值的请求,导致未限制的 bundleCache 堆积,从而耗尽堆内存。该漏洞影响显式注册 ResourceBundleMessageSource bean 并提供 HTML 错误响应的应用程序。攻击者无需认证即可利用此漏洞。
该漏洞的核心在于 Micronaut Framework 处理国际化资源时的缓存机制缺乏边界检查。当应用显式注册了 ResourceBundleMessageSource Bean 并配置了 HTML 错误响应视图时,框架会尝试解析请求头中的 Accept-Language 字段以确定 Locale。这个 Locale 与 baseName 组合后作为 bundleCache 的键。由于该缓存没有大小限制,攻击者可以通过构造包含海量唯一或随机 Accept-Language 值的 HTTP GET/POST 请求,迫使服务器为每个请求创建新的缓存条目并占用堆内存。随着攻击持续,JVM 堆内存将被耗尽,触发 OutOfMemoryError,导致应用崩溃或服务不可用。